Auteur Sujet: [FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax  (Lu 97077 fois)

0 Membres et 1 Invité sur ce sujet

tivoli

  • Toulouse (31)
  • Abonné Bbox fibre
  • *
  • Messages: 1 944
  • Toulouse (31)
# Remerciements et references utiles
D'abord un grand merci a c0mm0n pour ses recherches et surtout le partage d'infos sur ce merveilleux routeur

Les posts référence :
https://lafibre.info/remplacer-sfr/bypasser-la-neufbox/msg101223/#msg101223
https://lafibre.info/orange-tutoriels/en-cours-remplacer-sa-livebox-par-un-routeur-ubiquiti-edgemax/
https://lafibre.info/orange-tutoriels/en-cours-remplacer-sa-livebox-par-un-routeur-ubiquiti-edgemax/msg136801/#msg136801
http://community.ubnt.com/t5/EdgeMAX/dhcp-client-Tuning-vendor-class-identifier-dhcp-option-60/td-p/581069

Connections physique:
- eth0 : reseau local
- eth1 : ONT
- eth2 : Management (optionnel)

Configuration du routeur
Configurer son PC en 192.168.1.2 255.255.255.0 192.168.1.1
se connecter depuis un browser a http://192.168.1.1
login : ubnt
password : ubnt

Onglet Dashboard

eth0 / Actions / Config
Description : LAN
Reglages par default a part
Use DHCP a selectionner


eth1 / Actions / Config
Description : WAN-ONT
Reglages par default a part
Use DHCP a selectionner

Onglet Services

Add DHCP Server

Save

Toujours dans Services / DNS
Cache Size : 150
Interface : eth1
Save



# Configuration du client DHCP (wan) uniquement valable à partir de la version 1.5 beta 1
changez email@mail.com par votre email, ce n'est pas obligatoire techniquement mais aidera le technicien SFR a vous contacter si besoin
configure
set interfaces ethernet eth1 dhcp-options client-option "send vendor-class-identifier "neufbox6-email@mail.com";"
commit
save



Apres le reboot se reconnecter sur l'interface web onglet Firewall / NAT
Onglet NAT / Add Source NAT Rule

save

# Creer les regles de firewall par exemple en suivant le mode d'emploi suivant
http://community.ubnt.com/t5/EdgeMAX-Configuration-Examples/EdgeMAX-SOHO-Example/ta-p/413019
Vous pouvez aussi le faire en ligne de commande voici ma configuration simplifiee avec une redirection RDP, Minecraft et https
configure
set firewall name WAN_LOCAL description "packets from internet to the router"
set firewall name WAN_LOCAL default-action drop
set firewall name WAN_LOCAL enable-default-log
set firewall name WAN_LOCAL rule 10 description "allow established sessions"
set firewall name WAN_LOCAL rule 10 action accept
set firewall name WAN_LOCAL rule 10 state established enable
set firewall name WAN_LOCAL rule 10 state related enable
set firewall name WAN_LOCAL rule 10 state invalid disable
set firewall name WAN_LOCAL rule 10 state new disable
set firewall name WAN_LOCAL rule 10 protocol all
set firewall name WAN_LOCAL rule 20 description "drop invalid state"
set firewall name WAN_LOCAL rule 20 action drop
set firewall name WAN_LOCAL rule 20 state established disable
set firewall name WAN_LOCAL rule 20 state related disable
set firewall name WAN_LOCAL rule 20 state invalid enable
set firewall name WAN_LOCAL rule 20 state new disable
set firewall name WAN_LOCAL rule 20 protocol all
set interfaces ethernet eth1 firewall local name WAN_LOCAL

set firewall name WAN_IN description "packets from internet to LAN & WLAN"
set firewall name WAN_IN default-action drop
set firewall name WAN_IN enable-default-log
set firewall name WAN_IN rule 10 description "allow established sessions"
set firewall name WAN_IN rule 10 action accept
set firewall name WAN_IN rule 10 state established enable
set firewall name WAN_IN rule 10 state related enable
set firewall name WAN_IN rule 10 state invalid disable
set firewall name WAN_IN rule 10 state new disable
set firewall name WAN_IN rule 10 protocol all
set firewall name WAN_IN rule 20 description "drop invalid state"
set firewall name WAN_IN rule 20 action drop
set firewall name WAN_IN rule 20 state established disable
set firewall name WAN_IN rule 20 state related disable
set firewall name WAN_IN rule 20 state invalid enable
set firewall name WAN_IN rule 20 state new disable
set firewall name WAN_IN rule 20 protocol all
set firewall name WAN_IN rule 30 description "minecraft"
set firewall name WAN_IN rule 30 action accept
set firewall name WAN_IN rule 30 protocol tcp
set firewall name WAN_IN rule 30 destination port 25565-25566
set firewall name WAN_IN rule 30 destination address 192.168.1.2
set firewall name WAN_IN rule 40 description "RDP"
set firewall name WAN_IN rule 40 action accept
set firewall name WAN_IN rule 40 protocol rdp
set firewall name WAN_IN rule 40 destination address 192.168.1.2
set firewall name WAN_IN rule 50 description "Https web server"
set firewall name WAN_IN rule 50 action accept
set firewall name WAN_IN rule 50 protocol tcp
set firewall name WAN_IN rule 50 destination port 443
set firewall name WAN_IN rule 50 destination address 192.168.1.2
set interfaces ethernet eth1 firewall in name WAN_IN

set service nat rule 1 type destination
set service nat rule 1 description "RDP"
set service nat rule 1 destination port 3389
set service nat rule 1 inbound-interface eth1
set service nat rule 1 inside-address address 192.168.1.2
set service nat rule 1 inside-address port 3389
set service nat rule 1 log disable
set service nat rule 1 protocol tcp
set service nat rule 2 type destination
set service nat rule 2 description "Minecraft"
set service nat rule 2 destination port 25565-25566
set service nat rule 2 inbound-interface eth1
set service nat rule 2 inside-address address 192.168.1.2
set service nat rule 2 inside-address port 25565-25566
set service nat rule 2 log disable
set service nat rule 2 protocol tcp
set service nat rule 3 type destination
set service nat rule 3 description "web https"
set service nat rule 3 destination port 443
set service nat rule 3 inbound-interface eth1
set service nat rule 3 inside-address address 192.168.1.2
set service nat rule 3 inside-address port 443
set service nat rule 3 log disable
set service nat rule 3 protocol tcp
commit
save


Rebootez et vous devriez avoir le web maintenant !!!!

« Modifié: 17 octobre 2014 à 00:53:38 par tivoli »

tivoli

  • Toulouse (31)
  • Abonné Bbox fibre
  • *
  • Messages: 1 944
  • Toulouse (31)
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #1 le: 06 mai 2014 à 22:22:45 »
Partie TV / replay
cd /etc/lighttpd
cp  lighttpd.conf  lighttpd.conf.bak
sudo vi lighttpd.conf
Rechercher url.rewrite-once et ajouter les lignes suivantes (celles entre #Ligne ajoutee)
url.rewrite-once = (
#Ligne ajoutee
"^(/api/1.0.*)" => "$0",
#Ligne ajoutee
        "^(/(lib|media|ws|tests)/.*)" => "$0",
        "^/([^\?]+)(\?(.*))?$" => "/index.php/$1?$3"
)

$HTTP["scheme"] == "http" {
    $HTTP["url"] !~ "^/index.php/error/" {
#Ligne ajoutee
        $HTTP["url"] !~ "^/api/" {
#Ligne ajoutee
        $HTTP["host"] =~ "^(.*)$" {
                url.redirect = (
                        "^(.*)$" => "https://%1$1"
                )
        }
#Ligne ajoutee
    }
#Ligne ajoutee
    }
}



creer l'arborescence suivante
/var/www/api/1.0/
sudo mkdir api
cd api
sudo mkdir 1.0
cd 1.0

et dans ce dossier créer les fichiers suivants en tapant les commandes :

sudo -i
echo "<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
<system product_id="NB6-FXC-r2" mac_addr="aa:bb:cc:dd:ee:ff" net_mode="router" net_infra="ftth" uptime="99999999999999" version_mainfirmware="NB6-MAIN-R3.2.12" version_rescuefirmware="NB6-RESCUE-R3.1.8" version_bootloader="NB6-BOOTLOADER-R1.32.0" version_dsldriver="NB6-ADSL-A2pD030q" current_datetime="201310090017" refclient="[ref-client]"/>
</rsp>" > ./system.xml


Changez ce qu'il faut dans ce qui suit et creez le fichier en tapant la commande
sudo -i
echo "<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
<host type="stb" name="[nom-reseau-decodeur]" ip="[ip-decodeur]" mac="[adresse-mac-decodeur]" iface="lan1" probe="55" alive="725228" status="online"/>
</rsp>" > ./lan.xml

PS : pensez à fixer l'ip de votre décodeur pour correspondre à api

sudo -i
echo "<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
<wan status="up" uptime="999999" ip_addr="[ip-de-l-acces-wan]" infra="ftth"/>
</rsp>" > ./wan.xml

sudo -i
echo "<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
     <ftth status="up" />
</rsp>" > ./ftth.xml

Creer le fichier index.php
<?php
header
('Content-Type: application/xml; charset=utf-8');
if (isset(
$_GET['method'])){
        
$method $_GET['method'];
        switch (
$method) {
                case 
"system.getInfo":
                        echo 
file_get_contents('system.xml');
                        break;
                case 
'lan.getHostsList':
                        echo 
file_get_contents('lan.xml');
                        break;
                case 
'wan.getInfo':
                        echo 
file_get_contents('wan.xml');
                        break;
                case 
'fttp.getInfo':
                        echo 
file_get_contents('ftth.xml');
                        break;
                }
return;
}
?>


Configuration IGMP
Ceci est la configuration avec eth0 et eth2 : LAN eth1 : ONT
set protocols igmp-proxy interface eth0 alt-subnet 0.0.0.0/0
set protocols igmp-proxy interface eth0 role downstream
set protocols igmp-proxy interface eth0 threshold 1

set protocols igmp-proxy interface eth1 alt-subnet 0.0.0.0/0
set protocols igmp-proxy interface eth1 role upstream
set protocols igmp-proxy interface eth1 threshold 1

set protocols igmp-proxy interface eth2 alt-subnet 0.0.0.0/0
set protocols igmp-proxy interface eth2 role downstream
set protocols igmp-proxy interface eth2 threshold 1
« Modifié: 21 septembre 2014 à 22:02:41 par tivoli »

tivoli

  • Toulouse (31)
  • Abonné Bbox fibre
  • *
  • Messages: 1 944
  • Toulouse (31)
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #2 le: 06 mai 2014 à 22:23:22 »
Note :
documenter le index.php (discussion page 8)

le ntp ? : set service  dhcp-server shared-network-name LAN subnet 192.168.1.0/24 ntp-server 192.168.1.1
« Modifié: 21 septembre 2014 à 18:15:10 par tivoli »

Haldir

  • Abonné Free fibre
  • *
  • Messages: 74
  • FTTH sur Paris
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #3 le: 06 mai 2014 à 23:48:27 »
Je suis en train de regarder pour récupérer le lighttpd utilisé pour l'interface web pour générer les API pour la TV. J'essaye d'exclure le dossier API des règle de rewrite mais dès que je rajoute "api" dans la règle, ça fait sauter l'interface d'admin  :'(

url.rewrite-once = (                                       
"^(/(lib|api|media|ws|tests)/.*)" => "$0",

Une idée ?

tivoli

  • Toulouse (31)
  • Abonné Bbox fibre
  • *
  • Messages: 1 944
  • Toulouse (31)
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #4 le: 07 mai 2014 à 00:28:03 »
De mon cote aucune idee desole on va voir ce que repondent les pros

c0mm0n

  • Invité
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #5 le: 07 mai 2014 à 12:56:40 »
Flag.

Haldir je dois pouvoir t'aider pour la TV, t'en es ou ? API et http ?

Haldir

  • Abonné Free fibre
  • *
  • Messages: 74
  • FTTH sur Paris
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #6 le: 07 mai 2014 à 14:19:02 »
Je suis en train de configurer le fichier lighttpd.conf afin de permettre l'accès au dossier api créer dans /var/www/htdocs et empêcher le rewrite en essayer d'exclure le dossier api comme les autres dossiers. La syntaxe me semble bonne mais dès que j'enlève le api| , j'ai de nouveau accès à l'interface d'admin.

Autrement, une fois loggé j'ai ce message "Fatal Error
Unable to load the router configuration"

c0mm0n

  • Invité
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #7 le: 09 mai 2014 à 21:09:07 »
Re, désolé j'avais zappé.

Le but du jeu est simplement de servir des fichiers statiques ?

Si oui, j'aurais tendance à mettre nginx sur le port 80, il va renvoyer toutes les requêtes a lighthttpd sauf les quelques fichiers static de notre dossier ?

Dis moi, je ferai de tests, ca me semble vraiment pas compliqué.


c0mm0n

  • Invité
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #8 le: 09 mai 2014 à 21:27:17 »
Bon, j'ai réussi à faire fonctionner cette url :
http://192.168.2.1/api/test.html

Pour cela, j'ai modifié la conf comme ca pour qu'il n'envoie pas au php les requêtes vers /api/
Citer
url.rewrite-once = (
   "^(/(lib|media|ws|tests|api)/.*)" => "$0",
   "^/([^\?]+)(\?(.*))?$" => "/index.php/$1?$3"
)

Puis pour enlever la redirection https sur le dossier api, modifier la partie juste après comme ca :
$HTTP["scheme"] == "http" {
    $HTTP["url"] !~ "^/index.php/error/" {   
$HTTP["url"] !~ "^/api/" {       
$HTTP["host"] =~ "^(.*)$" {
url.redirect = (
"^(.*)$" => "https://%1$1"
)
}
    }
    }
}

(Je mets une 2e condition pour ne pas rediriger en https les requêtes vers /api/)

Enfin tuer, et relancer le serveur a la main (pas trouvé mieux) :
kill <PID>
/usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

Résultat :


c0mm0n

  • Invité
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #9 le: 09 mai 2014 à 21:37:40 »
Ca marche aussi avec le php.


Haldir

  • Abonné Free fibre
  • *
  • Messages: 74
  • FTTH sur Paris
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #10 le: 09 mai 2014 à 22:00:02 »
Merci c0mm0n pour ton aide mais j'ai tjs la même erreur une fois lighttpd redémarré avec le fichier modifier, je ne peux plus accéder à l'interface web du routeur.

Voici le fichier que j'ai
server.modules = (
"mod_access",
"mod_alias",
  "mod_redirect",
  "mod_fastcgi",
"mod_rewrite",
"mod_websocket",
)

server.document-root        = "/var/www/htdocs"
server.upload-dirs          = ( "/var/tmp" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.tag                  = "Server"

index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                               " index.lighttpd.html" )

url.access-deny             = ( "~", ".inc" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

server.dir-listing          = "disable"

include "mime.conf"
include "conf-enabled/10-ssl.conf"
include "conf-enabled/15-fastcgi-php.conf"

url.rewrite-once = (
"^(/(lib|media|ws|tests|api)/.*)" => "$0",
"^/([^\?]+)(\?(.*))?$" => "/index.php/$1?$3"
)

$HTTP["scheme"] == "http" {
    $HTTP["url"] !~ "^/index.php/error/" {
    $HTTP["url"] !~ "^/api/" {   
$HTTP["host"] =~ "^(.*)$" {
url.redirect = (
"^(.*)$" => "https://%1$1"
)
}
   }
   }
}

websocket.server = (
    "/ws/stats" => ( "host" => "/tmp/ubnt.socket.statsd",
                     "port" => "1" ),
    "/ws/cli" => ( "host" => "/tmp/ubnt.socket.cli",
                   "port" => "1",
                   "type" => "bin" )
)

Est ce que tu vois ce que j'aurais oublier :) ?

Merci

c0mm0n

  • Invité
Bypasser la neufbox avec un routeur ubiquiti Edgemax
« Réponse #11 le: 09 mai 2014 à 22:01:45 »
Pareil chez moi :D