Auteur Sujet: [FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn  (Lu 64639 fois)

0 Membres et 2 Invités sur ce sujet

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #72 le: 03 avril 2019 à 09:10:21 »
hello,

tu saurais me dire comment mettre cette directive en place ? il faut toujours agir dans le fichier lighttpd.conf ou alors il faudra également modifier le fichier 10-ssl.conf ?

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #73 le: 03 avril 2019 à 09:36:07 »
Fallait pttre aussi regarder sur le mod_rewrite était activé.
C'est quoi le contenu du 10-ssl ?

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #74 le: 03 avril 2019 à 09:43:53 »
le contenu du fichier lighttpd.conf (j'ai mis ton code tout à la fin, est-ce que ça joue ? y a un ordre à respecter ?) :
server.modules = (
"mod_access",
"mod_alias",
  "mod_redirect",
  "mod_fastcgi",
"mod_rewrite",
"mod_websocket",
)

server.document-root        = "/var/www/htdocs"
server.upload-dirs          = ( "/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", ".py" )

server.dir-listing          = "disable"

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

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

$HTTP["scheme"] == "http" {
    $HTTP["url"] !~ "^/api/1.0" {
                        url.rewrite = ( "^/?method=(.*)$" => "/$1.xml")
    }
}
                                   

le contenu du fichier 10-ssl (c'est celui par défaut, j'ai rien touché dedans) :
# /usr/share/doc/lighttpd-doc/ssl.txt
#
# Do not edit, auto generated by ubnt-gen-lighty-conf.sh
server.port = 80

$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine  = "enable"
ssl.use-sslv3 = "disable"
ssl.pemfile = "/etc/lighttpd/server.pem"
ssl.dh-file = "/etc/lighttpd/dhparam.pem"
ssl.cipher-list = "ECDSA aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK !NULL !RC4"
}

$SERVER["socket"] == "[0::0]:80" { }

$SERVER["socket"] == "[0::0]:443" {
ssl.engine  = "enable"
ssl.use-sslv3 = "disable"
ssl.pemfile = "/etc/lighttpd/server.pem"
ssl.dh-file = "/etc/lighttpd/dhparam.pem"
ssl.cipher-list = "ECDSA aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK !NULL !RC4"
}

$HTTP["scheme"] == "http" {
    # IPv4 redirect
    $HTTP["host"] !~ "\[.*\]" {
        $HTTP["host"] =~ "^([^\:]+)(\:.*)?$" {
            url.redirect = (
                "^(.*)$" => "https://%1:443$1"
            )
        }
    }
    # IPv6 redirect
    $HTTP["host"] =~ "\[.*\]" {
        $HTTP["host"] =~ "^([^]]+)(.)(\:.*)?$" {
            url.redirect = (
                "^(.*)$" => "https://%1%2:443$1"
            )
        }
    }
}

Sinon, où est-ce qu'on active le mod_rewrite ?

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #75 le: 03 avril 2019 à 09:48:05 »
d'après mes recherches, le simple fait d'écrire le bloc ci-dessous active le mod_rewrite, il n'y a pas d'autres actions à effectuer, tu confirmes ?

server.modules = (
"mod_access",
"mod_alias",
  "mod_redirect",
  "mod_fastcgi",
"mod_rewrite",
"mod_websocket",
)

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #76 le: 03 avril 2019 à 09:52:30 »
Le mod_rewrite est activé :

Citer
server.modules = (
   "mod_access",
   "mod_alias",
    "mod_redirect",
    "mod_fastcgi",
   "mod_rewrite",
   "mod_websocket",
)

En suite, il faut modifier la partie ipv4 du bloc ci-dessous, avec un truc comme ça :
Citer
$HTTP["scheme"] == "http" {
    # IPv4 redirect
    $HTTP["url"] !~ "^/api/1.0" {
                url.rewrite = ( "^/?method=(.*)$" => "/$1.xml")
    }

    $HTTP["host"] !~ "\[.*\]" {
        $HTTP["host"] =~ "^([^\:]+)(\:.*)?$" {
            url.redirect = (
                "^(.*)$" => "https://%1:443$1"
            )
        }
    }
    # IPv6 redirect
    $HTTP["host"] =~ "\[.*\]" {
        $HTTP["host"] =~ "^([^]]+)(.)(\:.*)?$" {
            url.redirect = (
                "^(.*)$" => "https://%1%2:443$1"
            )
        }
    }
}


Mais ça ne marchera plus après un redémarrage, puisque :

# Do not edit, auto generated by ubnt-gen-lighty-conf.sh

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #77 le: 03 avril 2019 à 10:17:15 »
je viens de faire la modif, mais maintenant lorsque je redémarre lighttpd, j'ai ce message d'erreur :

Duplicate config variable in conditional 5 global/HTTPscheme==http/HTTPurl!~^/api/1.0: url.rewrite
2019-04-03 10:12:44: (configfile.c.957) source: /etc/lighttpd/lighttpd.conf line: 43 pos: 5 parser failed somehow near here: (EOL)

en effet, c'est presque un doublon ce qu'on vient de faire, puisqu'on s'appuie sur "/api/1.0" des 2 côtés (10-ssl.conf et lighttpd.conf) pour lui faire faire 2 choses différentes, je pense qu'on s'approche du but malgré tout :)

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #78 le: 03 avril 2019 à 10:30:30 »
en fait je viens de comprendre ce que tu viens de faire, au lieu de modifier le lighttpd.conf, il ne faut modifier que le 10-ssl.conf (et pas les 2 fichiers comme j'avais fait), je viens de refaire la modif (en ne conservant que la modif du 10-ssl.conf), maintenant lighttpd redémarre sans souci, mais par contre il me sort toujours une URL en HTTPS....  :-\  et ça ne fonctionne pas du coup...

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #79 le: 03 avril 2019 à 11:24:39 »
1. Attention au cache du navigateur.
2. Pense à activer le debug
3. Ce qu'on a fait est d'indiquer le rewrite des url du type /api/1.0 vers xml, pour le reste c'est normal d'avoir une redir https.
4. Il faut s'assurer qu'on ne redirige pas d'abord vers le fichier xml puis vers https (e.g priority des règles et voir avec url.rewrite-once si ça fait le job)
Ou bien il faut ajouter une condition à la redir https
5. il faut remplacer !~ par =~ dans $HTTP["url"] !~ "^/api/1.0" {6. Si ce n'est pas suffisant, il faut voir avec la variable $HTTP["querystring"]

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #80 le: 03 avril 2019 à 17:46:47 »
merci encore pour ton aide, c'est vraiment chouette de ta part :)

alors j'ai beau tout essayer, quand ça ne veut pas, ça ne veut pas... par contre j'ai avancé un peu malgré tout, je viens de me rendre compte que quoique je mette dans le répertoire :
/var/www/htdocs/api/1.0/...même un pauvre fichier test.html, ça me donne une 404 (file not found), du coup il faut déjà que ce truc simple fonctionne avant de pouvoir faire des redirections ou de la réécriture...

le seul endroit où je peux faire fonctionner mes fichiers de test c'est à cet emplacement :
/var/www/htdocs/media/...mon même fichier test.html est bien interprété.

Conclusion, pourquoi est-ce que les fichiers se trouvant dans api/1.0/ retournent une 404 ? pourtant dans le fichier lighttpd.conf on a bien ça :
server.document-root        = "/var/www/htdocs"c'est pas logique tout ça...

ça me rend complètement dingo ce truc  ???



nextgens

  • Abonné SFR fibre FttH
  • *
  • Messages: 55
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #81 le: 03 avril 2019 à 20:28:00 »
Regardes ton /etc/lighttpd/conf-enabled/15-fastcgi-python.conf

$HTTP["url"] =~ "^/(?!lib|media|ws|tests)" {
fastcgi.debug = 0
fastcgi.server = (
"/" => (
"python-fcgi" => (
"check-local" => "disable",
"bin-path" => var.gui.bin + var.gui.flags + var.gui.debugflag,
"socket" => "/var/run/ubnt-rtr-ui/fastcgi.gui.socket",
"fix-root-scriptname" => "enable",
"max-procs" => 1
)
)
)
}

Il faut soit exclure "api" du fastcgi soit faire la re-ecriture avant dans la config.

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #82 le: 03 avril 2019 à 22:59:45 »
Effectivement, j'avais oublié ce fichier.
$HTTP["url"] !~ "^(/api/1.0/.*)" {
$HTTP["url"] =~ "^/(?!lib|media|ws|tests)" {
fastcgi.debug = 0
fastcgi.server = (
"/" => (
"python-fcgi" => (
"check-local" => "disable",
"bin-path" => var.gui.bin + var.gui.flags + var.gui.debugflag,
"socket" => "/var/run/ubnt-rtr-ui/fastcgi.gui.socket",
"fix-root-scriptname" => "enable",
"max-procs" => 1
)
)
)
}
}
et ajout du url.rewrite-once en dessous.

url.rewrite-once = ( "^/api/1.0/\?method=(.*)$" => "/api/1.0/$1.xml")
Il reste à ajouter des xml dans le dossier /api/1.0/.

Enfin pour être sur que la redirection https ne s'effectue pas, tu peux aussi l’imbriquer dans $HTTP["url"] !~ "^(/api/1.0/.*)" {
}

Après, il va falloir nettoyer la config :)
« Modifié: 03 avril 2019 à 23:22:19 par kazyor »

Peck

  • Abonné SFR fibre FttH
  • *
  • Messages: 32
  • Paris
[FTTH] Bypasser la neufbox avec un routeur ubiquiti Edgemax en 5mn
« Réponse #83 le: 05 avril 2019 à 10:18:12 »
Coucou,

merci pour votre aide à tous les 2 :) alors ça ne marche toujours pas la TV, mais y a du mieux, maintenant j'accède bien à ces 4 fichiers et j'arrive à voir leur contenu XML :
http://192.168.1.1/api/1.0/?method=system.getInfo
http://192.168.1.1/api/1.0/?method=ftth.getInfo
http://192.168.1.1/api/1.0/?method=wan.getInfo
http://192.168.1.1/api/1.0/?method=lan.getHostsList

ce qui ne marchait pas jusqu'à présent, donc une vraie avancée !! :)

je vous fais un résumé de ce que j'ai fait pour en arriver à ce stade :
  • j'ai supprimé toutes mes modifs des fichiers lighttpd.conf et 10-ssl.conf pour revenir aux fichiers d'origines
  • en définitive je n'ai modifié que le fichier 15-fastcgi-python.conf en rajoutant la première et la dernière ligne :
$HTTP["url"] !~ "^(/api/1.0/.*)" {
$HTTP["url"] =~ "^/(?!lib|media|ws|tests)" {
fastcgi.debug = 0
fastcgi.server = (
"/" => (
"python-fcgi" => (
"check-local" => "disable",
"bin-path" => var.gui.bin + var.gui.flags + var.gui.debugflag,
"socket" => "/var/run/ubnt-rtr-ui/fastcgi.gui.socket",
"fix-root-scriptname" => "enable",
"max-procs" => 1
)
)
)
}
}
url.rewrite-once = ( "^/api/1.0/\?method=(.*)$" => "/api/1.0/$1.xml")

  • dans mon repértoire /api/1.0/ j'ai dû renommer mes fichiers xml comme suit :
ftth.xml       ->  ftth.getInfo.xml
system.xml     ->  system.getInfo.xml
wan.xml        ->  wan.getInfo.xml
lan.xml        ->  lan.getHostsList.xml

si je ne faisais pas ça, ça me sortait une erreur 404 (file not found), je pense que ça vient de la règle de réécriture qui n'est pas parfaite.


Donc voilà, où j'en suis, mais malheureusement toujours pas de TV :/ qu'est ce que j'ai loupé comme étape ? le point positif c'est que je ne suis plus loin du but grâce à vous :) Si vous avez d'autres idées je suis preneur, merci encore !!