Auteur Sujet: [FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt  (Lu 126991 fois)

0 Membres et 2 Invités sur ce sujet

megas

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 5
  • Paris 75
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #372 le: 02 mai 2025 à 11:07:38 »
Merci pour ce tuto j'ai pu bypasser totalement la neufbox. Pour la partie TV ce tuto n'est plus d'actualité et j'ai crée un compte exprès pour vous donner la solution car j'ai bien galéré en suivant les instructions de la page 1 pour au final avoir le message d'erreur sur la box : votre décodeur n'est pas connecté à un modem compatible ...

Si quelqu'un peut maj la page 1 :

Il faut faire l'install de igmpproxy et activer Enable IGMP snooping mais aussi avoir un serveur web sur le routeur sur le port 80 qui distribue les fichiers xml du routeur SFR. C'est cette vérification qui fait que la box TV SFR détecte que votre décodeur n'est pas connecté à un modem compatible si vous n'avez pas ces fichiers sur l'adresse du routeur en http.

J'ai pu le faire sur le routeur SANS installer lighttpd et en conservant du coup le port 80 du serveur web uhttpd livré de base avec OpenWRT.

Procéder comme suit (via ssh / putty), notez que c'est désormais apk pour gérer les package et la page 1 doit etre remis à jour :

apk add igmpproxy
etc/init.d/igmpproxy restart

Aller dans l'interface web Luci en allant dans l'onglet "Réseau" (Network) puis "Interfaces" puis  "Devices" puis faire Configure sur "br-lan" puis aller dans "Advanced device options" puis cocher "Enables IGMP snooping". Puis "Sauvegarder et appliquer".

La page 1 parle de modifier dans la section interface mais cela ne fonctionne plus comme ca, c'est dans device que cela se passe. Si vous voulez éditer vous meme le fichier /etc/config/network voici un extrait ce que j'ai, notez l'emplacement correct de " option igmp_snooping '1' " :

...
config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        option igmp_snooping '1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'

...

Pour faire fonctionner la BOX TV (exemple STB7 fourni par SFR) avant de débrancher votre routeur SFR neufbox (ou rebranchez le temporairement), récupérez les fichiers suivants (seuls certains sont nécessaire mais bon on ne sait jamais ca ne coute pas plus cher de tous les récupérer et remettre) :
http://192.168.1.1/api/1.0/?method=ftth.getInfo
http://192.168.1.1/api/1.0/?method=lan.getHostsList
http://192.168.1.1/api/1.0/?method=system.getInfo
http://192.168.1.1/api/1.0/?method=system.getInfo
http://192.168.1.1/api/1.0/?method=tv.getInfo
http://192.168.1.1/api/1.0/?method=usb.getInfo
http://192.168.1.1/api/1.0/?method=wan.getInfo

remettre le routeur OpenWRT
faire (sous ssh/putty/winSCP) :

pour la suite 2 solutions :

SOLUTION 1 avec PHP (testé OK)
=====================
apk add php8 php8-cgi
vi /etc/config/uhttpd

aller dans la section :

config uhttpd 'main'
    ...

ajouter à la fin :
   
    option interpreter '.php=/usr/bin/php-cgi'
    list index_page 'index.php'

Redémarrer le service uhttpd :

/etc/init.d/uhttpd restart   
aller dans /www créer les sous répertoires "api" et "1.0" et copier tous les fichiers (ou les recréer avec vi) comme suit, dans "/www/api/1.0/" :

-rw-r--r--    1 root     root           124 May  1 22:23 ftth.xml
-rw-r--r--    1 root     root           953 May  2 00:10 index.php
-rw-r--r--    1 root     root          1005 May  1 22:23 lan.xml
-rw-r--r--    1 root     root           514 May  1 22:22 system.xml
-rw-r--r--    1 root     root           475 May  1 22:27 tv.xml
-rw-r--r--    1 root     root            81 May  1 22:24 usb.xml
-rw-r--r--    1 root     root           258 May  1 22:23 wan.xml

Le fichier index.php doit contenir le code de redirection suivant :
   
<?php
header
(&#39;Content-Type: application/xml; charset=utf-8&#39;);
if (isset($_GET[&#39;method&#39;])){
        
$method $_GET[&#39;method&#39;];
        
switch ($method) {
                case 
"system.getInfo":
                        echo 
file_get_contents(&#39;system.xml&#39;);
                        
break;
                case &
#39;lan.getHostsList&#39;:
                        
echo file_get_contents(&#39;lan.xml&#39;);
                        
break;
                case &
#39;wan.getInfo&#39;:
                        
echo file_get_contents(&#39;wan.xml&#39;);
                        
break;
                case &
#39;ftth.getInfo&#39;:
                        
echo file_get_contents(&#39;ftth.xml&#39;);
                        
break;
                case &
#39;tv.getInfo&#39;:
                        
echo file_get_contents(&#39;tv.xml&#39;);
                        
break;
                case &
#39;usb.getInfo&#39;:
                        
echo file_get_contents(&#39;usb.xml&#39;);
                        
break;
                }
return;
}
?>

SOLUTION 2 simple et consomme moins de ressource (pas testée mais surement OK)
=====================================================
Aller dans /www créer les sous répertoires "api" et "1.0" et copier tous les fichiers xml (ou les recréer avec vi) dans "/www/api/1.0/".
Créer un fichier /www/api/1.0/index.cgi avec dedans :

#!/bin/sh

case "$QUERY_STRING" in
    method=ftth.getInfo) FILE="ftth.xml" ;;
    method=lan.getHostsList) FILE="lan.xml" ;;
    method=system.getInfo) FILE="system.xml" ;;
    method=tv.getInfo) FILE="tv.xml" ;;
    method=usb.getInfo) FILE="usb.xml" ;;
    method=wan.getInfo) FILE="wan.xml" ;;
    *) echo "Status: 404 Not Found"; echo; exit 0 ;;
esac

echo "Content-type: application/xml"
echo
cat "/www/api/1.0/$FILE"

taper sous ssh :

chmod +x /www/api/1.0/index.cgi

vi /etc/config/uhttpd

aller dans la section :

config uhttpd 'main'
    ...

ajouter à la fin :
   
    option cgi_prefix '/api/1.0'

Redémarrer le service uhttpd :

/etc/init.d/uhttpd restart
Voila la BOX TV SFR fonctionne PARFAITEMENT avec le routeur totalement by-pass par la Xiaomi AX3000T (mais ca marche sur les autres routeurs OpenWRT si pas trop vieille) et la vieille neufbox est remise dans le carton !
« Modifié: 10 mai 2025 à 01:43:19 par megas »

megas

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 5
  • Paris 75
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #373 le: 02 mai 2025 à 11:52:30 »
Sinon pour le tuto rapide de flash du Xiaomi AX3000T en OpenWRT en 3 etapes :

1) Récuperer les snapshot et firmware les plus compatibles (le moins de risque de brique pour les versions RD23 récentes, compatible avec toutes les anciennes versions RD23) sur https://github.com/dimfishr/openwrt/releases/tag/filogic-2025-04-18
prendre UNIQUEMENT :
openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi
openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-squashfs-sysupgrade

Récupérer xmir-patcher-main (https://github.com/openwrt-xiaomi/xmir-patcher) pour appliquer simplement l'exploit et flash

2) Brancher votre pc/portable sur le routeur xiaomi
Notez qu'il faut adopter les emplacement des ports RJ45 comme suit :
[alimentation] [WAN] [LAN1] [LAN2] [LAN3] [bouton WPS]

Brancher la sortie RJ45 du petit boiter fibre au port WAN a cote de l'entrée d'alim.

3) Copiez le snapshot openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-initramfs-factory.ubi dans le répertoire firmware de xmir-patcher-main.
Exécutez !START.bat (ou run.sh sur une machine *nix).
Exécutez l’option 2.
Exécutez l’option 7.
Attendez 40 à 70 secondes.
Ouvrez un navigateur et allez à l’adresse 192.168.1.1 (interface web LUCI)
Utilisez LuCI pour flasher l’image sysupgrade : openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-squashfs-sysupgrade.bin.
Attendez 40 à 70 secondes.
Vous avez gagné !
« Modifié: 02 mai 2025 à 12:41:45 par megas »

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 2 692
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #374 le: 03 mai 2025 à 09:35:35 »
@megas
un truc qui serait interessant ce serait de faire cette redirection d'url, pour simuler la box sfr, sans l'installation de package supplémentaire. on devrait pouvoir y arriver sans PHP. Ce qui économiserait de la RAM et du stockage pour les routeurs qui n'en ont pas trop.
uHTTPd sait le faire avec des scripts cgi.
il suffit de demander a ChatPGT comment faire sous openwrt, avec uHTTPd, une redirection d'url :
http://192.168.1.1/api/1.0/?method=ftth.getInfo ----> http://192.168.1.1/api/1.0/ftth.xml
il va tout expliquer et faire le script ;)

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 1 969
  • Montignac Lascaux (24)
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #375 le: 03 mai 2025 à 12:58:16 »
Et voilà :
<VirtualHost *:80>
        ServerName 10.0.0.1
        ServerAlias decodeurtv
        DocumentRoot /var/www/sfr/

        <Directory "/var/www/sfr/">

                LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

                RewriteEngine On

                RewriteCond %{QUERY_STRING} ^(.*&)?method=ftth\.getInfo[^&]*
                RewriteRule ^.*$ ftth.getInfo.xml [L]

                RewriteCond %{QUERY_STRING} ^(.*&)?method=lan\.getHostsList[^&]*
                RewriteRule ^.*$ lan.getHostsList.xml [L]

                RewriteCond %{QUERY_STRING} ^(.*&)?method=system\.getInfo[^&]*
                RewriteRule ^.*$ system.getInfo.xml [L]

                RewriteCond %{QUERY_STRING} ^(.*&)?method=tv\.getInfo[^&]*
                RewriteRule ^.*$ tv.getInfo.xml [L]

                RewriteCond %{QUERY_STRING} ^(.*&)?method=usb\.getInfo[^&]*
                RewriteRule ^.*$ usb.getInfo.xml [L]

                RewriteCond %{QUERY_STRING} ^(.*&)?method=wan\.getInfo[^&]*
                RewriteRule ^.*$ wan.getInfo.xml [L]

                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog /var/www/sfr/apache.error.log
        CustomLog /var/www/sfr/apache.access.log common
</VirtualHost>
Ce fichier, chez moi, se nomme "decodeurtv.conf" et je le mets dans le répertoire "/etc/apache2/sites-enabled/" sous le même nom.
Pas besoin d'avoir PHP pour faire la même chose, puisqu'Apache sait déjà le faire.


toz

  • Abonné SFR fibre FttH
  • *
  • Messages: 16
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #376 le: 03 mai 2025 à 15:20:11 »
Voila la BOX TV SFR fonctionne PARFAITEMENT avec le routeur totalement by-pass par la Xiaomi AX3000T (mais ca marche sur les autres routeurs OpenWRT si pas trop vieille) et la vieille neufbox est remise dans le carton !

Trop fort merci pour ce tuto !

Est-ce que quelqu'un sait si ça fonctionne aussi avec l'appli SFR TV ?
« Modifié: 06 mai 2025 à 14:26:08 par toz »

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 2 692
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #377 le: 04 mai 2025 à 13:50:53 »
@artemus24
Apache n'est pas le serveur web utilisé par Openwrt, c'est uHTTPd. Ca impliquerait l'installation du package Apache, l'idée serait justement d'éviter l'installation d'un package supplémentaire  ;)

Selon DeepSeek  ;D

Créer la structure de répertoire :
mkdir -p /www/api/1.0
Créer un script CGI /www/api/1.0/gateway.cgi :
#!/bin/sh

# Extraire la méthode depuis le query string
METHOD=$(echo "$QUERY_STRING" | sed -n 's/.*method=\([^&]*\).*/\1/p')

# Définir les correspondances valides
case "$METHOD" in
    ftth.getInfo)   FILE="ftth.xml" ;;
    lan.getHostsList) FILE="lan.xml" ;;
    system.getInfo) FILE="system.xml" ;;
    tv.getInfo)     FILE="tv.xml" ;;
    usb.getInfo)    FILE="usb.xml" ;;
    wan.getInfo)    FILE="wan.xml" ;;
    *)
        echo "Status: 404 Not Found"
        echo "Content-type: text/html"
        echo
        echo "Method not found"
        exit 0
        ;;
esac

# Envoyer le fichier XML correspondant
echo "Content-type: application/xml"
echo
cat "/www/api/1.0/$FILE" 2>/dev/null || echo "XML file not found"

Rendre le script exécutable :
chmod +x /www/api/1.0/gateway.cgi
Modifier la configuration uHTTPd dans /etc/config/uhttpd :
# Ajouter cette section pour activer le CGI
config uhttpd secondary
    list listen_http        0.0.0.0:80
    list listen_http        [::]:80
    option home            /www
    option cgi_prefix      /api/1.0
    option script_timeout  60
    option max_requests    3

Redémarrer le service uHTTPd :
/etc/init.d/uhttpd restart
Maintenant les URLs fonctionneront comme souhaité :
Citer
http://192.168.1.1/api/1.0/?method=ftth.getInfo servira ftth.xml

http://192.168.1.1/api/1.0/?method=wan.getInfo servira wan.xml

etc...

Points importants :
Citer
Placez bien tous vos fichiers XML (ftth.xml, wan.xml, etc) dans /www/api/1.0/

Le script vérifie les méthodes autorisées et retourne une erreur 404 pour les méthodes inconnues

Les réponses sont au format XML avec le bon Content-Type

Aucun package supplémentaire n'est requis (seul le shell BusyBox est utilisé)

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 1 969
  • Montignac Lascaux (24)
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #378 le: 04 mai 2025 à 17:48:26 »
Citation de: Rooot
l'idée serait justement d'éviter l'installation d'un package supplémentaire  ;)
Je veux bien mais je te rappelle que je n'utilise pas OpenWRT mais "systemd-networkd" sous Debian BookWorm.

Citation de: Rooot
Selon DeepSeek  ;D
Tu es passé du coté obscure chinois ;)

Ton répertoire "/www/api/1.0/" se nomme chez moi "/var/www/sfr/". J'ai placé tous les fichiers ".xml" dans ce répertoire.

Merci de nous avoir donné la solution OpenWRT pour éviter d'alourdir par des installations inutiles. :)

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 2 692
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #379 le: 04 mai 2025 à 19:14:31 »
Je veux bien mais je te rappelle que je n'utilise pas OpenWRT mais "systemd-networkd" sous Debian BookWorm.
oui, mais le topic et la conversation concernent Openwrt  ;)

Tu es passé du coté obscure chinois ;)
j'alterne de temps en temps  ;D

megas

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 5
  • Paris 75
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #380 le: 09 mai 2025 à 09:41:22 »
Malheureusement uhttpd est trop rudimentaire (mais super léger) et n'a pas de urlrewriting mod_rewrite) comme Apache ou Lighttpd et tu dois passer par CGI php ou Lua. Suis pas tres lua et php la c'est juste pour la redirection, pas de traitement lourd. Ca marche du tonnerre donc je reste comme ca. Si vous avez un code de redirection web avec uhttpd dites moi. ChatGPT, Gemini Pro et cie confirment que y a pas sans passer par CGI Lua ou Php :D Et Lua c'est interprété aussi comme PHP donc à chaque appel  ton CPU travaille pareil :D

Et là tout tourne dans le routeur ie pas besoin de monter un serveur linux à coté. Tu économises en alim, en encombrement, et c'est tres pratique. Je n'ai pas noté de perte de vitesse et le wifi 6 tourne bien sans interruption.

@megas
un truc qui serait interessant ce serait de faire cette redirection d'url, pour simuler la box sfr, sans l'installation de package supplémentaire. on devrait pouvoir y arriver sans PHP. Ce qui économiserait de la RAM et du stockage pour les routeurs qui n'en ont pas trop.
uHTTPd sait le faire avec des scripts cgi.
il suffit de demander a ChatPGT comment faire sous openwrt, avec uHTTPd, une redirection d'url :
http://192.168.1.1/api/1.0/?method=ftth.getInfo ----> http://192.168.1.1/api/1.0/ftth.xml
il va tout expliquer et faire le script ;)
« Modifié: 09 mai 2025 à 11:28:37 par megas »

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 2 692
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #381 le: 09 mai 2025 à 10:37:35 »
Je crois que tu as raté un épisode, j'ai posté plus haut ce qu'il fallait faire.
Ce n'est pas plus compliqué que la solution que tu as postée, et avec l'avantage de ne rien avoir avoir à installer de plus.

megas

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 5
  • Paris 75
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #382 le: 10 mai 2025 à 00:44:51 »
Effectivement c'est du CGI de base c'est plus simple. J'ai ajouté à mon post merci. Après c'est plus puissant PHP pour faire plus de choses si nécessaire, ca ne prend que qq ko de plus sur le disque mais tu as raison je n'avais pas vu que l'on pouvait faire sans PHP et LUA. Ca va aider beaucoup de monde. Bizarre que Deepseek ait trouvé ça et ChatGPT o4 et Gemini Pro n'aient pas trouvé car j'avais pensé à leurs demander si uhttpd pouvait faire de la redirection sans package additionnel mais c'était négatif, ils ont du apprendre depuis puisque je suis revenu sur le prompt pour les insulter :)

Sinon la Box TV SFR j'ai réussi à la faire marcher en WIFI avec le bypass : il suffit de bien remettre le meme SSID et mdp WIFI initial de la box SFR avant de la remplacer par le routeur OpenWRT (rebrancher la box SFR pour mettre le meme SSID et code WIFI et faire la synchro Box TV / Box SFR).

Je crois que tu as raté un épisode, j'ai posté plus haut ce qu'il fallait faire.
Ce n'est pas plus compliqué que la solution que tu as postée, et avec l'avantage de ne rien avoir avoir à installer de plus.
« Modifié: 10 mai 2025 à 01:48:32 par megas »

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 1 969
  • Montignac Lascaux (24)
[FTTH] Tuto bypass complet neufbox avec un routeur OpenWrt
« Réponse #383 le: 31 mai 2025 à 13:08:50 »
Salut à tous.

J'ai demandé à Vivien de détruire mon sujet qui a créé de la polémique. Je me suis lancé dans la grande aventure de la configuration d'OpenWRT en l'installant dans ma raspberry Pi 4B sous OpenWRT (version 24.10.0.). Ca fonctionne et j'obtiens bien les adresses publiques IPv4 & IPv6, en étant derrière l'ONU Huawei Smart AX MA5671a qui a été déjà configuré pour mon précédent projet.

Je tiens à remercier tous les contributeurs qui m'ont permis de résoudre la configuration d'OpenWRT installé dans le réseau SFR, en particulier Rooot avec ses retours d'expériences qui m'ont bien aidé.

J'ai découvert que l'on ne peux pas obtenir une délégation du préfixe IPv6 quand on est derrière la BOX 8 SFR. Cela ma surpris et j'ai vérifié si j'avais le même problème sous "systemd-networkd" installé dans Debian BookWorm, en étant derrière ma BOX 8 SFR. Et bien oui, même problème. Comme je n'arrivais pas à trouver la solution, j'ai laissé tombé cette approche qui devenait un peu trop polémique dans mon sujet.

Je n'ai pas compris pourquoi, en installant le micrologiciel, je me suis retrouvé avec une partition de 104M, ce qui est très petit et ne permet pas d'installer plusieurs utilitaires ou applications. Habituellement, dans Raspberry Pi OS, je rencontre le même problème et il suffit d'utiliser la commande "resize2fs" pour agrandir la partition "RootFS", mais sous OpenWRT, la partition est un "overlay" et cette astuce ne fonctionne pas. J'ai dû bidouiller les partitions et le faire manuellement car je dispose d'une carte micro SD de 8Go.

Ce qui m'a surpris sous OpenWRT est la façon dont est géré le nommage des interfaces dans OpenWRT. Physiquement, j'ai une interface éthernet (mon unique prise RJ45) et quatre prises USB (deux en USB 2.0. et deux en USB 3.0.). Le port éthernet est toujours en ETH0. Quand j'insère un dongle éthernet, il prend automatiquement le premier nom disponible après ETH0, donc il va se nommer ETH1, et ainsi de suite. Je n'avais pas du tout ce comportement sous "systemd-networkd" puisque je peux mettre le nom que je veux. Dans les routeurs vendus dans le commerce, les ports RJ45 sont figés physiquement et on ne peut pas changer leur nom.
--> résolu en utilisant hotplug, déjà installé dans OpenWRT.

Maintenant, je me m'attaque aux baux statiques (option host) que l'on configure dans le fichier "/etc/config/dhcp". Autant, je n'ai eu aucun problème pour le dhcpv4 puisque cela se fait à partir d'une adresse MAC qui est unique dans mon réseau local. Autant avec le dhcpv6, et en particulier les adresses de type GUA (Global Unicast Addresses), j'ai rencontré des problèmes lorsque j'ai deux interfaces réseaux (éthernet et wifi) et un seul DUID, comme dans le cas de mon PC sous Windows. OpenWRT ne sait pas gérer les IAID (Identity Association Identifier) ce qui aurait permis de faire la distinction entre ces deux interfaces. Et c'est là que je me retrouve avec des comportements erratiques, du genre pas d'IPv6 sur le WiFi et le suffixe (interface identifier) attribué pour le WiFi, je le retrouve dans l'interface éthernet. Il est recommandé de n'avoir qu'une seule interface par DUID et aussi de faire des compromis. Du genre attribuer une adresse IPv6 statique dans la seconde interface coté client mais pas dans OpenWRT. Un vrai casse-tête ! Comment avez vous résolu ce problème ?
« Modifié: 31 mai 2025 à 19:03:09 par artemus24 »