Auteur Sujet: Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV  (Lu 975 fois)

0 Membres et 1 Invité sur ce sujet

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Hello,
Voici ma méthode pour configurer son routeur Ubiquiti UniFi Cloud Gateway Ultra pour bypasser la box SFR (Box SFR Plus dans mon cas).

Pré-requis:
Il faut également récupérer les fichiers XML suivants:
FichierURL
system.getInfo.xmlhttp://192.168.1.1/api/1.0/?method=system.getInfo
ftth.getInfo.xmlhttp://192.168.1.1/api/1.0/?method=ftth.getInfo
wan.getInfo.xmlhttp://192.168.1.1/api/1.0/?method=wan.getInfo
lan.getHostsList.xmlhttp://192.168.1.1/api/1.0/?method=lan.getHostsList
tv.getInfo.xmlhttp://192.168.1.1/api/1.0/?method=tv.getInfo
usb.getInfo.xmlhttp://192.168.1.1/api/1.0/?method=usb.getInfo

Configuration réseau:
Au niveau des interfaces, on branche simplement l'ONT sur l'interface WAN de l'UCG Ultra.
Se rendre dans Settings > Internet et sélectionner l'interface WAN 1. Configurer l'interface comme suit:

A partir de là vous avez normalement accès à Internet en IPv4.

Configuration TV:
Cette étape est nécessaire si vous utiliser le décodeur Plus de SFR (pas besoin pour le SFR Connect TV).
Pour la partie TV, il faut se rendre dans la partie OS Settings > Console Settings et activer le SSH.
Se connecter en SSH sur le routeur, l'utilisateur est root.
Dans un premier temps on installe php-fpm, cela permettra d'interpréter le fichier index.php qui sera requêté par le décodeur Plus:
# apt update && apt install php-fpmEnsuite on va paramétrer les bons droits sur la socket de php-fpm:
# vi /etc/php/7.4/fpm/pool.d/www.confOn modifie listen.owner et listen.group comme suit:
listen.owner = nginx
listen.group = nginx
Maintenant on copie dans /root le fichier de configuration nginx en charge de l'écoute sur le port 80 (le décodeur requête en HTTP, pas en HTTPS):
# cp /data/unifi-core/config/http/site-local-ip.conf  /rootOn édite le fichier pour qu'il ressemble à ça:
# vi /root/site-local-ip.confserver {
    listen 443 ssl http2 default_server;
    server_name _;

    include /data/unifi-core/config/http/local-certs.conf;

    include /usr/share/unifi-core/http/errors.conf;

    include /usr/share/unifi-core/http/shared-server-defaults.conf;
    include /usr/share/unifi-core/http/shared-post-setup-server.conf;
}

server {
    listen 80 default_server;
    index index.php;
    server_name _;
    root /var/www;
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        include /etc/nginx/snippets/fastcgi-php.conf;
    }
    location /api/1.0/ {
        rewrite ^(\?(.*)) index.php?$1 last;
    }
    location / {
        try_files $uri $uri/ =404;
    }
#    return 301 https://$host$request_uri;
}
Cela permettra de désactiver la redirection HTTP vers HTTPS (pas de souci, l'interface de configuration UniFi n'est de toute façon pas publiée en HTTP), et de faire la réécriture d'URL nécessaire au décodeur.
Ensuite on créé le dossier /etc/nginx/snippets et le fichier /etc/nginx/snippets/fastcgi-php.conf:
# mkdir /etc/nginx/snippets && vi /etc/nginx/snippets/fastcgi-php.confOn place ça dans le fichier:
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;
On crée aussi /etc/nginx/fastcgi.conf:
# vi /etc/nginx/fastcgi.conffastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

On n'oublie pas de créer le dossier /var/www/api/1.0:
# mkdir -p /var/www/api/1.0Dans /var/www/api/1.0 on place les fichiers XML récupérés de la box SFR, à transférer en SCP.
On crée le fichier /var/www/api/1.0/index.php:
# vi /var/www/api/1.0/index.phpOn met ce contenu dedans:
<?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.getInfo.xml&#39;);
                        
break;
                case &
#39;lan.getHostsList&#39;:
                        
echo file_get_contents(&#39;lan.getHostsList.xml&#39;);
                        
break;
                case &
#39;wan.getInfo&#39;:
                        
echo file_get_contents(&#39;wan.getInfo.xml&#39;);
                        
break;
                case &
#39;ftth.getInfo&#39;:
                        
echo file_get_contents(&#39;ftth.getInfo.xml&#39;);
                        
break;
                case &
#39;usb.getInfo&#39;:
                        
echo file_get_contents(&#39;usb.getInfo.xml&#39;);
                        
break;
                case &
#39;tv.getInfo&#39;:
                        
echo file_get_contents(&#39;tv.getInfo.xml&#39;);
                        
break;
        }
        return;
}
?>
Et enfin on place les bons droits:
# chown -R www-data:www-data /var/wwwL'OS va écraser le fichier /data/unifi-core/config/http/site-local-ip.conf à chaque boot, il faut donc mettre en place un script pour mettre le bon contenu.
On crée le script /root/restore_nginx_conf.sh
# vi /root/restore_nginx_conf.sh#!/bin/bash
/bin/sleep 120
/bin/cp /root/site-local-ip.conf /data/unifi-core/config/http/site-local-ip.conf
/bin/systemctl restart nginx
exit 0
Le sleep 120 est là pour être sûr d'écraser le contenu du fichier après les routines de démarrage de l'UCG Ultra.
On ajoute les droits d'exécution au script:
# chmod +x /root/restore_nginx_conf.shEt on ajoute le script dans la crontab à chaque redémarrage:
# crontab -e@reboot /root/restore_nginx_conf.shEnfin on peut redémarrer le routeur, attendre 5 minutes et tester le bon fonctionnement en tentant d'accéder aux pages suivantes avec son navigateur (remplacer l'IP par celle du routeur):
http://192.168.1.1/api/1.0/?method=system.getInfo
« Modifié: 15 mars 2024 à 14:56:14 par fl0w »

Romain

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 319
  • Issy-les-Moulineaux (92)
Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV
« Réponse #1 le: 15 mars 2024 à 14:02:22 »
Bravo !

Je suppose que c'est transposable à 100% aux autres routeurs UniFi modernes, car j'ai un Dream Router et je ne vois pas de différence dans notre interface UniFi Network.

En revanche, chez moi l'IPv4 fonctionne avec seulement l'option 60 du client DHCP. Je n'ai pas besoin d'option 61 et pas besoin d'usurper l'adresse MAC de ma NB6VAC. J'ai un abonnement RED by SFR Série spéciale fibre, je n'ai pas la TV par SFR. Par acquis de conscience, peux-tu par hasard essayer sans ces 2 réglages ?

Et sais-tu comment faire fonctionner l'IPv6 via l'interface web UniFi Network ?

fl0w

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 823
Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV
« Réponse #2 le: 15 mars 2024 à 14:22:43 »
Bravo !

Je suppose que c'est transposable à 100% aux autres routeurs UniFi modernes, car j'ai un Dream Router et je ne vois pas de différence dans notre interface UniFi Network.

En revanche, chez moi l'IPv4 fonctionne avec seulement l'option 60 du client DHCP. Je n'ai pas besoin d'option 61 et pas besoin d'usurper l'adresse MAC de ma NB6VAC. J'ai un abonnement RED by SFR Série spéciale fibre, je n'ai pas la TV par SFR. Par acquis de conscience, peux-tu par hasard essayer sans ces 2 réglages ?

Et sais-tu comment faire fonctionner l'IPv6 via l'interface web UniFi Network ?

A 100% pas sûr, tout dépend du type de serveur web qui tourne en local sur un UDM.
Pour l'option 61 j'avais repris ça d'un tuto orienté Dream Machine, idem pour la MAC, mais je vais tester pour les retirer, et je mettrai à jour ;)
A ce jour pas moyen d'avoir d'IPv6, j'ai soumis le problème sur le forum d'Ubiquiti: https://community.ui.com/questions/Missing-DHCPv6-options-on-UCG-Ultra/4f5619cc-15b5-41af-b1d0-771c5f0e22b5

Je viens de voir ton profil dans la catégorie restreinte, c'est bien toi: https://twitter.com/RomainHeuillard ? :D

Edit: je confirme, pas besoin d'option 61 ni de reprendre la MAC, j'ai édité le post initial.
« Modifié: 15 mars 2024 à 14:56:45 par fl0w »

Romain

  • Professionnel des télécoms
  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 319
  • Issy-les-Moulineaux (92)
Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV
« Réponse #3 le: 15 mars 2024 à 19:17:24 »
A 100% pas sûr, tout dépend du type de serveur web qui tourne en local sur un UDM.
Je n'ai pas de décodeur TV SFR et je n'ai pas très envie de bricoler mon routeur, mais je peux confirmer que j'ai moi aussi un fichier de configuration Nginx à l'emplacement /data/unifi-core/config/http sur mon UniFi Dream Router.

Edit: je confirme, pas besoin d'option 61 ni de reprendre la MAC, j'ai édité le post initial.
Cool, merci pour l'info !

A ce jour pas moyen d'avoir d'IPv6, j'ai soumis le problème sur le forum d'Ubiquiti: https://community.ui.com/questions/Missing-DHCPv6-options-on-UCG-Ultra/4f5619cc-15b5-41af-b1d0-771c5f0e22b5
On croise les doigts ! Je suis tenté de basculer chez MikroTik, mais je suis frustré par leurs solutions Wi-Fi, à cause du manque d'IPv6 sur mon UniFi.

g4fa

  • Abonné SFR fibre FttH
  • *
  • Messages: 1
Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV
« Réponse #4 le: 15 mars 2024 à 21:45:54 »
Bonjour ,

La  procédure TV peut elle fonctionner sur UDM SE sans avoir bypasser le routeur SFR ?
Comment récupérer vous les fichiers XML ?

Merci d'avance

A noter que des erreurs figurent dans le fichier index.php. Ci-dessous fichier corrigé

<?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.getInfo.xml");
                        break;
                case "lan.getInfo":
                        echo file_get_contents("lan.getHostsList.xml");
                        break;
                case "wan.getInfo":
                        echo file_get_contents("wan.getInfo.xml");
                        break;
                case "ftth.getInfo":
                        echo file_get_contents("ftth.getInfo.xml");
                        break;
                case "usb.getInfo":
                        echo file_get_contents("usb.getInfo.xml");
                        break;
                case "tv.getInfo":
                        echo file_get_contents("tv.getInfo.xml");
                        break;
        }
        return;
}
?>
 

Stellar4983

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 2
Remplacer sa box SFR par un routeur UniFi Cloud Gateway Ultra + TV
« Réponse #5 le: 30 mars 2024 à 16:08:52 »
Bonjour à tous et merci d'accueillir un nouveau membre sur ce forum. Je viens de m'abonner à la fibre SFR et dans le cadre de mes configurations réseaux, j'ai intégré un routeur DD-WRT ainsi que deux UDM Pro / Pro SE pour gérer trois de mes connexions fibre. J'ai également tenté de configuré 2 box TV. Toutefois, après une récente mise à jour de l'UDM, le système a cessé de fonctionner correctement : je me retrouve avec certains fichiers qui ont été conservés, alors que d'autres ont été effacés. En essayant de réinstaller les fichiers nécessaires, l'UDM a planté, me forçant à procéder à un reset complet. Malgré une nouvelle tentative, pensant avoir initiallement fait une erreur, le problème persiste et mon UDM est de nouveau inutilisable.

Je sollicite vos conseils et vous remercie par avance pour votre aide. C'est un plaisir de faire partie de ce forum formidable !