Surtension POE sur AP Unifi

Le POE c’est très pratique, mais il ne faut pas perdre du vu qu’il y a plusieurs normes, actif et passif, 24 V et 48 V, pour faire simple (plus d'infos ici). Si certains switches peuvent détecter l’équipement et son besoin en alimentation, certains plus anciens ont juste une config 24 V ou 48 V, et ne conviendront pas à certains équipements récents.

Donc si comme j’en ai fait l’expérience vous branchez un AP Unifi LR conçu pour fonctionner en 24 V sur un POE 48 V, c’est le drame. Ensuite il clignotera rapidement et le code d’erreur correspondant (A12) indique un retour SAV, ce qui équivaut à la corbeille pour cet équipement un peu ancien.

Heureusement il y a Internet et en cherchant un peu on découvre que cet équipement (comme bien d’autres) et pourvu d’une diode Zener de protection contre les surtensions qui jouera un rôle de fusible (en fait ce n’est pas vraiment le même principe). Et l’on apprend qu’en supprimant cette diode notre équipement redevient fonctionnel ! L’idéal serait bien sûr de la remplacer par une équivalence du genre 1N4749A (1W, 24V). On peut aussi uniquement la dessouder, n’étant pas un as du fer à souder je me suis contenté de dessouder une patte afin de ne pas créer de surchauffe, mais dans ce cas je n’aurais pas droit à une seconde chance !

Sources :

https://elio3c.wordpress.com/reparar-ubiquiti-nanostation-picostation-bullet-m-y-mas/
https://community.ubnt.com/t5/UniFi-Wireless/AP-broken-by-owerpowering-with-48V/td-p/1734879

SSL mi amor… & pfSense

On ne vantera jamais assez les mérites d’un reverse proxy en termes de sécurité. Mais au-delà de la sécurité, un reverse proxy peut aussi nous faciliter la vie pour la publication de services web en mode sécurisé, et donc la gestion des certificats.

Si selon le niveau de protection et d’assurance il faudra continuer à acheter des certificats hors de prix, dont la sécurité a parfois été corrompue même chez les soi-disant plus sérieux fournisseurs, pour bien des services l’utilisation de certificats Let’s Encrypt fera parfaitement l’affaire.

Au passage vous noterez que si j’étais fan de Sophos XG, je suis en train de m’orienter vers pfSense que je trouve bien plus simple et mieux documenté par la communauté.

Il y a plusieurs façons d’utiliser Let’s Encrypt :

  • Via un script ou un logiciel installé sur le backend (le serveur web) qui génère le certificat, il faudra ensuite l’exporter manuellement ou via un script vers le reverse proxy si on en utilise un en frontal, mais on peu aussi passer en direct, en NAT ou une simple redirection de ports.
  • Via un script géré par le firewall / reverse proxy. C’est ce que je vais décrire ici en utilisant pfSense ou j’installerais les paquets Acme et HAProxy.

Acme

Automated Certificate Management Environment, for automated use of LetsEncrypt certificates.

Cette implémentation très complète va nous permettre de générer et renouveler automatiquement des certificats Lets’s Encrypt (Standard, Wilcard ou San) et de les installer dans pfSense. Cette implémentation sait s’appuyer sur les API des principaux DNS, ce qui nous évitera d’avoir à ouvrir un port 80 comme cela était nécessaire auparavant. Le plus simple sera de générer un wilcard : *.domaine.tld.

Il sera également possible d’exporter ces certificats, manuellement, ou via un script vers un serveur web si nécessaire (par exemple, un script PowerShell sur un serveur Exchange pour récupérer les certificats, les installer et les activer).

Dans notre exemple on n’exporte rien car on va se servir de HA Proxy comme Frontend, c’est à lui qu’incombera la gestion du SSL (le SSL Offloading consiste à déporter la gestion du SSL sur le reverse proxy / load balancer, et donc sur le serveur web on ne laisse que le service HTTP, les sessions HTTPS n'étant cryptées qu'entre l'internaute et le reverse proxy qui peut également jouer un rôle d’équilibreur de charge si nécessaire).

HA Proxy

The Reliable, High Performance TCP/HTTP(S) Load Balancer.

Il s’agit ici d’un reverse proxy moderne qui permet également d’équilibrer la charge vers plusieurs Backends.

On aurait pu utiliser le paquet Squid, mais je lui reproche de ne pas gérer SNI (à vérifier) et donc de ne pouvoir servir plusieurs domaines en SSL. Squid est toutefois plus simple et fera l’affaire pour une installation simple ou domestique. A noter également que tant HA Proxy que Squid permettent de publier un serveur Exchange, et donc de remplacer avantageusement de vieux ISA ou TMG que Microsoft nous a tant vanté avant de les oublier…

Je ne vais pas reprendre un fastidieux steep by steep de publication il y en a de très bien faits… mais juste résumer :

  1. Installation de pfSense (il y a des VM toutes prêtes) avec un lien WAN et un lien LAN. On peut éventuellement ajouter des IP virtuelles (VIP) coté WAN si on en dispose.
  2. On crée une règle sur le firewall ou on autorise le port 443 (HTTPS) en entrant sur le WAN.
  3. Sur HA Proxy on crée un Backend avec l’IP interne sur le port 80 (ou autre) et sans SSL (sans car on pourrait également sécuriser le flux interne). Dans les options de LoadBalancing on choisit None si on a qu’un Backend, et dans ce cas on n’oublie pas de choisir également None au niveau Health checking. Et c’est tout, le reste si on ne sait pas, on ne touche pas.
  4. Sur HA Proxy on crée un Frontend qui écoute sur le port WAN (ou VIP), on coche SSL Offloading et plus bas dans SSL Offloading on choisit le certificat lié au domaine que l’on va utiliser (une règle Frontend par domaine géré). Dans Default backend, access control lists and actions on va gérer nos serveurs en utilisant l’expression Host Matches et la valeur, par exemple canaletto.fr que l’on nomme www (inutile si on n’a qu’un seul serveur à sécuriser). Ensuite plus bas dans Actions on va dire que la condition www est redirigée vers le Backend idoine. Ici aussi, c’est tout, le reste si on ne sait pas, on ne touche pas, car comme vous pourrez l’observer HA Proxy dispose d’une multitude d’options qui ne seront utiles que dans certains cas.

Test

Pour tester ce genre de configuration l’idéal est de disposer une machine connectée sur l’internet en dehors de votre réseau. La machine d’un ami en remote (TS, TeamViewer, NoMachine ou AnyDesk) ou encore une machine connectée en 4G.

Comme à ce stade on n’a probablement pas encore renseigné le DNS public, le plus simple est de créer une entrée dans le fichier hosts (sous Windows le plus simple est d’utiliser HostMan). 

Ensuite on lance une session dans le navigateur et on vérifie que c’est vert et que le certificat est valide et correspond bien à celui utilisé. Si c’est le cas il n’y a plus qu’à s’occuper du DNS public.

Info

Vous imaginez bien que je n’ai pas creusé ce sujet uniquement pour publier un Jeedom. Au départ il s’agissait de publier des serveurs Microsoft Exchange avec des certificats SAN classiques et couteux, et quand on publie de l’Exchange on peut faire à peu près tout. Ensuite j’ai trouvé la gestion Let’s Encrypt tellement simple dans pfSense que je me suis dit que finalement cet outil embarqué dans une VM ou un petit Appliance pouvait d’adapter à toutes les situations, même les plus simples. Du coup je vais probablement remplacer Sophos XG et pourquoi pas également chez moi à la place ou à côté de l’USG qui est très bien pour le trafic sortant mais n’évolue pas trop et ne permet pas de faire du reverse proxy.

Sources

https://pixelabs.fr/installation-configuration-pfsense-virtualbox/https://www.aide-sys.fr/exchange-2016-haproxy-pfsense/
https://docs.netgate.com/pfsense/en/latest/virtualization/virtualizing-pfsense-with-vmware-vsphere-esxi.html

https://www.aide-sys.fr/exchange-2016-haproxy-pfsense/
https://pixelabs.fr/installation-role-transport-edge-2016-partie-2/
https://www.moh10ly.com/blog/pfsense/publishing-exchange-on-pfsense
https://www.supinfo.com/articles/single/6326-mise-place-serveurs-web-haute-disponibilite-avec-haproxy-pfsense
https://www.itwriting.com/blog/9592-publishing-exchange-with-pfsense.html
https://www.moh10ly.com/blog/pfsense/publishing-exchange-on-pfsense
https://forum.netgate.com/topic/99804/squid-reverse-proxy-for-multiple-internal-hosts
https://tecattack.ch/index.php/2018/12/10/pfsense-2-4-4-haproxy-reverse-proxy-multiple-http-server-ubuntu-16-04/
https://all-it-network.com/pfsense-reverse-https/
https://blog.devita.co/pfsense-to-proxy-traffic-for-websites-using-pfsense/

Jeedom : Shelly

On en découvre tous les jours ! Je vais vous parler des équipements Wi-Fi Shelly. Il s’agit de micro-modules, avec un ou deux contacts, des modules au format DIN à insérer dans un tableau électrique, des contrôleurs RGBW ainsi qu’un capteur de température et d’humidité. Rien de bien neuf sur le soleil me direz-vous, mais contrairement aux équipements asiatiques habituels (Sonoff par exemple) qu’il faut flasher ou hacker en perdant au passage le mode de fonctionnement original, les équipements Shelley sont totalement ouverts, et si on souhaite les flasher en ESP Easy le constructeur fournit tout ce qui est nécessaire pour le faire. 

De base on dispose d’une application mobile qui permet la configuration et le pilotage. Un cloud (optionnel) pour un pilotage à distance sans box, la comptabilité MQTT, une API REST et il est bien sur possible de les piloter avec Google Home ou Alexa. Cerise sur le gâteau, ces produits fabriqués en Roumanie sont vraiment certifiés CE et les tarifs sont très attractifs (10 € le relais simple). 

Attention, c’est du Wi-Fi, donc il est impératif d’avoir un réseau Wi-Fi stable.

L’appairage se fait en quelques secondes avec l’application idoine, et des lors que les modules sont reconnus sur le réseau il est possible de terminer la configuration sur le serveur web intégré à ceux-ci. Etant donné que l’on va les exploiter avec une solution domotique externe, Jeedom en l’occurrence, je ne saurais trop conseiller de leur attribuer une IP fixe. Si cela est possible dans la configuration web de chaque module, personnellement je préfère me servir de mon serveur DHCP.

Pour exploiter ces modules en domotique il y a la possibilité MQTT, il doit être également possible de passer des commandes http aux modules, mais je n’ai pas testé car il y a un plugin qui fait très bien le job et qui permet de conserver la compatibilité avec l’application mobile du constructeur. Ce plugin est simple et efficace, pour chaque équipement il suffit de renseigner l’adresse IP et ensuite d’utiliser l’équipement.

Attention toutefois au module capteur de température et humidité, il fonctionne sur pile et se mets en veille, le plugin n'est de ce fait pas toujours capable de récupérer les valeurs et les relevés sont donc trop espacés.

Je trouve ces modules intéressants à plusieurs titres. La simplicité, des tarifs attractifs pour un matériel de qualité, le format DIN et une puissance admissible compatible avec la plupart des radiateurs. A prendre en compte pour remplacer par exemple des équipements Chacon au comportement parfois aléatoire, bref un pas de plus pour l’élimination du RFPLayer…

Sources :

https://lunarok-domotique.com/2019/01/shelly-1-domotiser-prise-10-euros/

Zerotier VPN / SDN et sécurité

Dans le précédent article on a vu comment créer facilement un SDN avec Zerotier qui de part ses possibilités explose les deux autres possibilités dont j’avais parlé. Un VPN SDN c’est un réseau étendu qui peu s’intégrer dans un LAN existant ou être totalement virtuel. Dès lors se pose la question de la sécurité des accès et il convient de considérer principalement à deux niveaux :

  • Sécurité d’accès aux ressources au niveau machine assurée par celle-ci ou une solution globale comme Active Directory. Dans un petit réseau local les utilisateurs ont tendance à laisser pas mal de choses ouvertes, voire très peu protégées. Dès lors que l’on ouvre un réseau à un SDN il conviendra de renforcer la sécurité des équipements.
  • Sécurité d’accès au niveau IP. Sur un LAN ou plusieurs LAN interconnectés via des VPN cette sécurité est assurée au niveau des routeurs et des switches afin d’isoler les départements, entremises, etc…

Dès lors que l’on étend un réseau à un SDN comme Zerotier on va se retrouver avec des devices isolés et il faudra définir ce que ces devices auront le droit de faire. Cela est rendu possible de façon centralisée via un système de règles relativement puissant qui se base sur l’ID de chaque client ZT qui va interagir avec des règles basées sur des tags, les adresses IP ZT ou internes aux réseaux, les ports et les protocoles. Je vais me contenter de donner ici quelques exemples que chacun adaptera à ses besoins.

On se base principalement sur 3 expressions

  • DROP, on supprime le paquet et on termine l’évaluation de la règle.
  • BREAK, on termine l’évaluation de la règle mais on accepte l’évaluation par une autre capacité.
  • ACCEPT, on autorise.

On va se servir de la règle de base et l'améliorer

Pour autoriser uniquement les trames Ethernet IPv4, IPv4 ARP.

drop
    not ethertype ipv4
    and not ethertype arp
    and not ethertype ipv6;

Pour éviter toute forme d’IP spoofing, mais ça bloque également les IP non ZT. Donc à exclure si on utilise des ponts vers des réseaux existants.

drop
    not chr ipauth;

Pour autoriser à tout le monde par exemple SSH, HTTP et HTTPS

accept
    ipprotocol tcp
    and dport 22 or dport 80 or dport 443;

Ici on va créer un TAG “department” que l’on va associer à des clients, et à partir de là on définira des possibilités. Ces TAG peuvent permettre de faire communiquer ensemble des clients d’un même service en comparant leur niveau (tdiff department 0 ou 0 est la différence acceptable entre deux clients pour être valide), mais on peut aussi utiliser ces TAG avec TSEQ pour affecter des droits.

tag department
    id 1000 #ID est arbitraire mais unique
    enum 100 Archi
    enum 200 Dev
    enum 300 Services
    enum 400 Finances
    enum 500 Ventes;

Autoriser Windows CIFS et Netbios aux clients d'un même groupe (différence = 0)

accept
    ipprotocol tcp
    and tdiff department 0
    and dport 139 or dport 445;

Autoriser les clients tagués 300 (to_LAN1_LAN2) à accéder à des réseaux internes spécifiques via un pont :

accept tseq department 300 and ipdest 192.168.1.0/24;
accept tseq department 300 and ipdest 192.168.2.0/24;

Pour supprimer les paquets TCP SYN,!ACK qui ne sont pas explicitement autorisés

break
  chr tcp_syn             # TCP SYN (TCP flags will never match non-TCP packets)
  and not chr tcp_ack     # AND not TCP ACK;

Pour interdire les destinations qui ne sont pas explicitement autorisées ci-dessus

break ipdest 192.168.1.0/24;
break ipdest 192.168.2.0/24;
break ipdest 192.168.3.0/24;

Si restreindre les IP est utilisé pour contrôler l’accès à des machines accessibles via un bridge, Il faut également pouvoir rendre inaccessibles certains clients ZT sensibles. Le modèle utilisé pour le contrôle d'accès ressemble à la façon dont les organisations militaires classifient les données. Les informations sont considérées classifiées et seules les personnes disposant du niveau de classification requis sont autorisées à y accéder. Il ne s'applique hélas pas aux clients non ZT

Au départ, les membres se verront attribuer un tag classified par défaut de 0 ("no"). Ceux-ci peuvent communiquer puisque leur étiquette de classification sera zéro. Pour restreindre l'accès à un membre, définissez son tag de classification sur secret (1) ou top (2). (Dans cet exemple, il n'y a pas de différence, mais deux niveaux sont inclus au cas où vous voudriez mettre en œuvre une sorte de segmentation plus détaillée basée sur ceux-ci.). Ainsi, la première correspondance (not tor classified 0) sera vraie et le paquet sera abandonné, à moins que les deux membres en communication aient au moins un flag (équipe) en commun grâce au bit clearance (tand clearance 0). (et si vous n’avez pas compris allez voir la doc en anglais…).

# Is this member classified?
tag classified
  id 2
  enum 0 no
  enum 1 secret
  enum 2 top
  default no
;

# Clearance flags (a bit like groups)
tag clearance
  id 1
  default 0
  flag 0 staging
  flag 1 production
  flag 2 financial
  flag 3 security
  flag 4 executive
;

# If one party is classified, require at least one overlapping clearance bit
break
  not tor classified 0
  and tand clearance 0
;

Pour ne pas être en reste, on va bien sur se créer une capacité "superuser" que l’on pourra affecter à des clients ZT pour passer outre les interdictions…

cap superuser
  id 2000
  accept;

Et enfin on accepte ce qui n’est pas interdit….

accept;

Ce ne sont que quelques exemples et en parcourant la documentation disponible on s’apercevra que les possibilités sont énormes. Je vais essayer de compléter cet article au fil de l'eau, et vos commentaires sont comme toujours les bienvenus.

Sources

http://www.zerotier.com/manual.shtml#3 (la documentation officielle) 
https://www.reddit.com/r/zerotier/comments/958c3d/flow_rule_for_allowing_only_rdp_traffic/ 
https://gist.github.com/adamierymenko/7bcc66b5f7627699236cda8ac13f923b 
https://blog.reconinfosec.com/build-a-private-mesh-network-for-free/ 
https://docs.opnsense.org/manual/how-tos/zerotier.html (d'autres idées à creuser)

Zéro VPN !

On va parler aujourd’hui d’une approche un peu différente des VPN (Virtuel Private Network).

Le principe d'un VPN est de créer un tunnel de données sécurisé dans lequel on routera des réseaux privés en IPV4 ou IPV6. On peu aborder les VPN en plusieurs usages :

  • VPN Remote : il s’agit pour un utilisateur itinérant de se connecter au réseau de son entreprise ou de son domicile depuis un terminal itinérant. On configure généralement ce service au niveau du routeur ou du firewall, plusieurs protocoles sont possibles selon le niveau de sécurité souhaité (PPTP, OpenVPN, L2TP, SSL VPN, etc). Ensuite on utilise soit le logiciel intégré à l’OS client, soit un logiciel spécifique, le tout étant plus ou moins compliqué à mettre en œuvre selon les protocoles. PPPT est le plus simple, c’est aussi le moins sécurisé.
  • VPN Site to Site : il s’agit ici d’interconnecter deux réseaux d’entreprise (le siège et un bureau distant par exemple) afin de rendre transparent l’accès aux équipements. C’est souvent fait en IPSec, mais il est possible d’utiliser d’autres protocoles (SSL VPN, OpenVPN, etc.), ça reste une affaire de spécialistes réseaux et ça se complique quand les deux extrémités utilisent des équipements hétérogènes.
  • VPN Internet : il s’agit ici de masquer son adresse IP afin de se cacher ou simplement laisser croire au service distant qu’on se situe sur une autre partie du globe. Il suffit généralement de contracter un abonnement et d’installer le logiciel fourni.

Tous ces VPN utilisent peu ou prou les mêmes technologies et commencent dater. Vu qu’elles sont massivement utilisées par les entreprises elles sont sures et fiables dès lors qu’elles sont mises en œuvre par de vrais spécialistes. Vous l’aurez compris, la chose n’est pas toujours des plus simples. Si le grand public amateur de DIY parviendra généralement à mettre en œuvre ces solution avec un peu de perspicacité et quelques nuits blanches, il existe des solutions alternatives qui peuvent s’avérer plus simple.

ZERO !

Zéro, comme zéro configuration. Un nouveau type de logiciels voit le jour depuis quelques temps, ils comportent généralement un petit client propriétaire à installer sur les devices (Windows, Mac, Linux, mobiles, etc…) et une interface de gestion quelque part dans un cloud privé ou public. Au niveau du device on ne fait que se connecter, alors que depuis l’interface de gestion on décidera de qui voit quoi. Cela va permettre la création de réseaux point à point et multipoints en mode peer to peer, les échanges se faisant toujours de point à point, le site central ne servant qu’à la gestion. Je vais en citer 3 selon les usages, mais il en existe d’autres et Google est votre ami !

Wirelends

C’est le plus simple, il fonctionne en deux clics mais il offre out of the box la possibilité de se connecter à l’ensemble des équipements du réseau distant, voire même d’accéder à Internet via le réseau distant. Cependant c’est du point à point et uniquement entre deux points en même temps. C’est la solution la plus simple que je n’ai jamais trouvée et bien sûr c’est gratuit. Je ne l’ai testé que sous Windows, mais il est possible d’installer le service Linux sur un équipement existant afin de s’en servir de passerelle. C’est gratuit, mais pas Open Source, donc quid possible au niveau sécurité. Dans le même genre très facile et sous Windows seulement on trouve également RAdmin VPN.

NeoRouter

Celui là je l’utilise depuis quelques années, pour par exemple donner accès à des serveurs aux développeurs. Il comporte deux parties, un client multi plateformes très basic et un peu daté, et un logiciel d’administration que l’on peu installer n’importe ou si on ne choisit pas la version commerciale ou ce service peut être fourni par l’éditeur. On peu définir des utilisateurs et des autorisations par machines et par utilisateurs. Chaque client obtiendra une adresse IP privée supplémentaire qui lui permettra de joindre les autres machines de ce réseau privé multipoint. C’est simple, basic et ça fait le job mais ce n’est pas Open Source et il sera pour certains usages nécessaire de passer à la caisse. Impossible également de bridger un client qui pourrait servir de passerelle pour accéder aux autres équipements du réseau.

Zerotier

Et enfin, celui qui me semble le plus intéressant, Zerotier. Ici on est face à un projet Open Source sous licence GPL. Si la philosophie rappelle celle de NeoRouter, le projet semble bien plus moderne et aboutit. Je me suis contenté au départ de créer un tunnel entre deux PC, en fait je l’ai fait entre trois postes et ça c’est très simple à mettre en place. C’était l’objectif de mon test et c’est réussi. Il est cependant possible de créer des réseaux multipoints complexes et de grande ampleur avec des possibilités de routage vers d’autres réseaux grâce à des bridges et de gérer très finement les autorisations, mais là il va falloir y passer un peu de temps. On est face à un produit intégrable en entreprise, mais il existe une version communautaire avec très peu de restrictions qui est disponible gratuitement.

Pour faire du point à point c’est donc simple et facile, il suffit de se créer un compte, de créer un réseau et de choisir un range d’IP, installer le client, sous Windows il n’y a qu’à cliquer et se connecter ou rentrer la clé API. A partir de là les deux points communiquent, le ping est ok.

Pinging 10.147.20.28 with 32 bytes of data:
Reply from 10.147.20.28: bytes=32 time=32ms TTL=64
Reply from 10.147.20.28: bytes=32 time=31ms TTL=64
Reply from 10.147.20.28: bytes=32 time=30ms TTL=64
Reply from 10.147.20.28: bytes=32 time=30ms TTL=64

Mais là ou ce logiciel devient intéressant c’est qu’il est possible de le configurer une machine du LAN en passerelle. Entendons par là qu’une machine sur mon LAN servira de passerelle et rendra accessible toutes les autres machines.

Sous Windows

On part du principe que Zerotier est installé et fonctionne entre deux points comme vu ci-dessus. Sur la console d’administration on coche Do Not Auto-Assign IPs sur l’interface virtuelle de la machine qui va servir de passerelle et on lui affecte une IP fixe dans le range choisit, ici 10.147.20.28. 

Sur cette même console on défini une Managed Routes pour définir que le LAN 192.168.210.0/24 sera accessible via 10.147.20.28.

EDIT : en fait il vaut mieux faire du /23 ce qui permettra de voir le réseau local quand on est localement connecté sur un réseau appartenant à une route managée.

Il faut ensuite activer le routage IP entre les interfaces, routage qui n'est pas actif par défaut. Pour ça on lance regedit et on cherche la clé IpEnableRouter qui se trouve sous:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.

On la passe la valeur de 0 à 1 pour activer le TCP/IP forwarding pour toutes les connections actives sur la machine. Et surtout on relance la machine. A partir de là on peu depuis la machine distante faire un ping sur l’IP LAN de la machine passerelle.

Pinging 192.168.210.28 with 32 bytes of data:
Reply from 192.168.210.28: bytes=32 time=63ms TTL=64
Reply from 192.168.210.28: bytes=32 time=36ms TTL=64
Reply from 192.168.210.28: bytes=32 time=30ms TTL=64
Reply from 192.168.210.28: bytes=32 time=30ms TTL=64

Si l’on veut rendre accessible d’autres machines, il faudra bien sur définir une route statique sur celles-ci (avec un -p si on veut que cette route soit persistante :

C:\route add 10.147.20.0 mask 255.255.255.0 192.168.210.28 -p

Et on pourra depuis la machine distante faire un ping sur l’IP LAN de la machine située sur le LAN en passant par la passerelle.

Pinging 192.168.210.24 with 32 bytes of data:
Reply from 192.168.210.24: bytes=32 time=33ms TTL=127
Reply from 192.168.210.24: bytes=32 time=31ms TTL=127
Reply from 192.168.210.24: bytes=32 time=30ms TTL=127
Reply from 192.168.210.24: bytes=32 time=30ms TTL=127

Sous Linux

Une VM linux deviendra une bonne passerelle. Mais on peu aussi installer ça sur un Raspberry ou une autre machine existante, un Jeedom par exemple... On part du principe que Linux est installé avec une IP LAN fixe et que vous êtes connecté en root.

Pour installer Zerotier on se servira de ce script (et on hésite pas à aller lire les informations disponible sur le site de Zerotier, notamment les faqs et leur communauté et aussi sur Redit) :

[[email protected] /]# curl -s https://install.zerotier.com/ | sudo bash

Ça va nous retourner une ID client que l’on rentre manuellement dans le manager.

Ensuite on découvre quelques commandes

[[email protected] /]# /usr/sbin/zerotier-one -d < pour faire un bind, mais pas toujours utile…
[[email protected] /]# /usr/sbin/zerotier-cli join 8044c2551c550881 < ID Réseau que l’on trouve dans le manager
[[email protected] /]# /usr/sbin/zerotier-cli listnetworks

Pour activer la passerelle

On édite le fichier /etc/sysctl.conf (avec nano par exemple) pour supprimer le # devant la ligne net.ipv4.ip_forward=1

Avec un ip a on repère le nom de l’interface virtuelle Zerotier (ici : zt7erf5fdc)

Ensuite on édite le fichier /usr/local/sbin/firewall.sh et on lui colle ce qui suit en renseignant correctement le nom de l’interface virtuelle (attention, selon les configurations il faut parfois remplacer eth0 par ensXX)

/usr/local/sbin/firewall.sh

# !/bin/sh
# A very basic IPtables / Netfilter script /etc/firewall/enable.sh
# PATH='/sbin'
# service networking restart > /dev/null 2>&1

# Flush the tables to apply changes
iptables -F

# Default policy to drop 'everything' but our output to internet
iptables -P FORWARD ACCEPT
iptables -P INPUT   ACCEPT
iptables -P OUTPUT  ACCEPT

# Allow established connections (the responses to our outgoing traffic)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow local programs that use loopback (Unix sockets)
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i zt7erf5fdc -o ens32 -j ACCEPT

sleep 4
service networking restart

sleep 4
service ssh restart

exit 0

Un petit reboot et on peut maintenant depuis la machine distante faire un ping vers n’importe quelle machine du LAN dont la route idoine aura été renseignée.

Pour activer le pont (mode Bridge)

Pour l’instant on parlait de routage, ce qui implique que les machine à joindre aient une route statique vers celle qui va servir de routeur vers le réseau Zerotier. Mais il y a une autre option expliquée ici, faire un bridge. Comme vu plus haut on prépare une petite machine Linux sur laquelle on installe Zerotier, on y colle une IP Zerotier fixe + l’option Bridge et on la définie dans Managed Route en tant que celle qui va nous permettre de joindre le réseau local. On édite le fichier /etc/sysctl.conf (avec nano par exemple) pour supprimer le # devant la ligne net.ipv4.ip_forward=1 et un sysctl -p pour recharger la configuration. Avec un ip a on repère le nom de l’interface virtuelle Zerotier (ici : zt7erf5fdc) et on lance les commandes suivantes :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o zt7erf5fdc -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i zt7erf5fdc -o eth0 -j ACCEPT

Pour rendre ces commandes persistantes (j'apprends Linux en même temps...) :

apt-get install iptables-persistent

Et si tout ça se passe dans une VM autant installer les Open VMware Tools (ça aidera notamment pour les sauvegardes) :

apt-get install open-vm-tools

reboot

Voilà comment depuis une machine itinérante ou un VPS je peux joindre n'importe quelle machine de mon réseau local de façon simple et sécurisée. Et si ce réseau comporte d'autres routes, il sera également possible d'y accéder, pour peu qu'on les définisses dans la manager... Ce qui veut concrètement dire que je peux me passer des routeurs IPSec qui gèrent des VPN entre plusieurs sites et les remplacer par un bête Raspberry à deux balles...

J'ai parlé ici de Windows et Linux, mais ça existe aussi pour Mac, IOS et Android.

Qu'en faire ?

En substance Wirelends rendra service dans un cadre DIY, NeoRouter, un peu daté se situe entre les deux, en revanche Zerotier propose une approche d’entreprise décentralisée intéressante. Traditionnellement les collaborateurs travaillent dans l’entreprise et accèdent aux ressources locales ou distantes vie des VPN point à point. Quant ils sont itinérants on colle sur leur terminal un client VPN configuré localement par l’IT qui devra repasser si des modifications sont à effectuer.

L’idée des VPN, je dirais plutôt SDN, tels que Zerotier est d’installer un client générique, pas incompatible avec d’autres clients, et entièrement configurable d’un point central. De plus, contrairement à NeoRouter, l’approche de Zerotier est multi réseaux, l’utilisateur pourra ainsi faire partie de plusieurs réseaux privés en même temps. Certains sur des forums on même imaginé qu’il découle de cette approche une standardisation car il n’est pas impossible que de plus en plus d’internautes auront besoin d’accéder simultanément à plusieurs réseaux privés correspondant à plusieurs activités à sécuriser… Et ici on va justement parler sécurité autour de Zerotier.

Sources

https://gist.github.com/ort163/787000d371dae49a4a399b0f6a7aab56 
https://www.digitalocean.com/community/tutorials/getting-started-software-defined-networking-creating-vpn-zerotier-one 
https://zerotier.atlassian.net/wiki/spaces/SD/pages/7536656/Running+ZeroTier+in+a+Docker+Container 
https://zerotier.atlassian.net/wiki/spaces/SD/pages/7438339/Layer+2+Bridging+with+LEDE+OpenWRT 
https://zerotier.atlassian.net/wiki/spaces/SD/pages/7471125/Layer+2+Bridging+of+Ethernet+and+ZeroTier+Networks+on+Linux 
https://www.reddit.com/r/zerotier/ 
https://news.ycombinator.com/item?id=16329046 
https://blog.reconinfosec.com/build-a-private-mesh-network-for-free/ 
https://github.com/cormacrelf/terraform-provider-zerotier 
https://0wned.it/2017/12/04/building-a-zerotier-bridged-network/ 
https://mangolassi.it/topic/8566/zerotier-bridging-configuration 
http://espressobin.net/ 
https://gist.github.com/adamierymenko/7bcc66b5f7627699236cda8ac13f923b 
https://ngrok.com/ (pas exploré mais ça peut être intéressant dans certains contextes)

Cher Free,

Tous les geeks de France attendaient tes annonces avec au moins autant d’impatience que tes investisseurs. Tu as enfin sorti ta plus belle chemise blanche pour nous présenter le fruit de tes cogitations. Enfin, moi je me suis contenté de lire ce que d’ex collègues et confrères on put en écrire (OlivierArnaud, et bien d'autres) car il y a longtemps que, retiré dans ma province verdoyante, je ne fréquente plus ce genre de show !

Bref, tu as mis le focus sur ta nouvelle bête de course, un peu comme quand Renault courait en F1, mais tu as aussi pensé à une formule plus populaire pour ne pas oublier le peuple en ces temps de révolte jaune ! Je n’ai pas eu l’occasion d’avoir en main tes nouveaux jouets et je ne pense pas troquer ma box actuelle qui me sert uniquement de modem. M’enfin Free, il me semblait t’avoir entendu dire il y a quelques années que l’avenir n’était plus aux box et qu’il fallait se concentrer sur le métier de FAI ? C’était juste pour désorienter tes concurrents ou tu le pensais vraiment ? Là ou j’attendais que tu te concentre sur le transport, ce qui est ton métier, tu viens nous noyer dans une multitude de services qui, ne nous voilons pas la face, sont avant tout là pour contenir dans le temps l’érosion de tes clients en les maintenant dans ton écosystème. Franchement pas toi, pas toi qui a longtemps dénoncé les ventes couplées des autres !

Ton fond et ta forme

Disons-le tout de suite je déteste tes formes arrondies et incasables. Déjà que ta révolution avec ses trois pieds ne me plaisait pas, là franchement c’est le bouquet. C’est juste mon avis, la seule box qui vaille est la 4K, là au moins le serveur est carré (en fait une révolution dans une jolie boite) et le player ouvert, même si à l’époque on aurait aimé qu’il n’arrive pas avec tous ses bugs. Quant fond, pourquoi vouloir nous imposer un player propriétaire et nous limiter dans nos choix ? Tu l’as pourtant bien compris en Suisse en proposant un Apple TV ! Je, nous, voulons pouvoir installer, comme nous le faisons sur nos smartphones, n’importe quelle application sur nos players, et pour cela tu sais très bien qu’il y a que deux choix possibles, Apple TV ou Android TV. Laisse donc le choix au peuple sans chercher à les orienter, tu as longtemps refusé le méchant Netflix, et maintenant tu veux nous imposer Netflix, dis-toi bien que ceux qui voulaient Netflix n’ont pas attendu ta bénédiction ! Pareil pour le son, tu crois vraiment que ceux pour qui le son compte ont attendu que Free démocratise Devialet. Je ne doute pas que Devialet offre un bon son, mais d’une part c’est moche, cher et encombrant, mais surtout le marché regorge de bonnes offres (Sonos, Bose, etc), et tant qu’à investir, car tu ne fais que revendre du Devialet, je préfère avoir le choix et ne pas m’enfermer dans un objet lié à ton écosystème dont je ne sais même pas ce qu’il en restera le jour où mon désamour à ton égard aura atteint son apogée.

Quant au serveur, avec son NAS, sa connectivité et ses gadgets, là aussi tu es un peu hors du temps ! Ceux qui jadis empilaient des disques dans des NAS sont en train de s’envoyer en l’air dans les nuages, ou alors c’est qu’ils ont besoin de vrais NAS, ce que tu n’es pas. 10 Go en fibre c’est bien pour le futur, je ne commenterais pas car je sais bien que je ne verrais jamais la moindre fibre dans ma campagne. Par contre j’aimerais que tu détaille un peu la technologie liée au couplage avec la 4G, même si elle ne me servira à rien ici car tu te reposes encore et toujours sur l’agrume ! Alors, DualWAN ou MPTCP ? Je pose la question car ce n’est pas du tout pareil, le DualWAN tout le monde sait faire, mais du coup tu te retrouve avec deux IP publiques ce qui n’est pas sans poser des problèmes, ou du MPTCP cher à OVH, c’est plus compliqué, plus élégant, mais pas toujours la panacée. Mais peut être as-tu inventé, ou plus probablement déniché, quelque chose de révolutionnaire ? Dis-nous, mais profites en pour nous expliquer s’il faut ajouter une SIM et si tu as prévu une limitation en volume ? Dans ta grande bonté tu nous as ajouté de la domotique et un système d’alarme. Sérieux, tu crois vraiment que je vais te confier ma domotique ? Tu crois vraiment que j’ai envie de me peler les miches quand ce sera rideau et qu’il me faudra attendre quinze jours ton technicien qui finira par me dire que le problème se situe chez l’agrume ? Sinon, j’aime bien l’idée de ta petite box du peuple, la One faite pour les petits espaces citadins, dommage qu’elle ne soit pas sous Android TV et que tu aies oublié de lui coller l’option 4G. Cependant à la campagne, ou le serveur est souvent déporté, voire dans le garage à côté de l’arrivée du fil du téléphone, ça sera plus compliqué pour aller regarder le match !

Bref, tu l’auras compris, ton offre ne correspond pas à ce qu’attendais le geek Free de la première heure que je suis. Mais avoue, tu t’en fous car ce n’est pas moi que tu cherches à séduire aujourd’hui, je te suis déjà acquis ! Je ne consomme que ta bande passante, la box bien carrée de la 4K que j’ai passée en mode bridge pour qu’elle ne serve que de modem me vas bien, pour le reste je gère mon infrastructure comme un chef et mes TV sont équipées d’un Shield que je n’échangerai jamais pour ta Devialet à tout faire ! Moi j’aimerais juste que tu proposes une offre nue au meilleur prix et que tu me laisse choisir tout le reste. Ne cherche pas à m’assister, je n’ai pas envie de finir sur un rond-point !

EDIT du 19/12 : Face aux critiques Free n'a pas tardé à réagir, ça démontre que l'entreprise est toujours agile et que son capitaine sait changer rapidement de cap face aux critiques ! Une offre Delta S orientée "modem" ne comprenant que le e serveur est  maintenant disponible pour 40 € par mois. 

MPTCP vs Dual WAN

L’inconvénient des routeurs Dual/Multi WAN est de présenter plusieurs adresses publiques. Cela peut poser des problèmes d’identification sur certains schémas d’authentification en mode client mais également un casse-tête pour les connections entrantes. Pour y remédier tout le monde (dans notre monde…) a entendu parler de la solution OTB proposée par OVH, qui n’est jamais que l’intégration de technologies existantes mais qui permet de travailler avec une IP publique unique. Depuis la mise en production commerciale le projet semble assez stable, il ne bouge plus trop, par contre les tarifs ont explosés.

Il existe une alternative, openMPTCProuter qui s’appuie sur les mêmes technologies mais en version open et va permettre l’agrégation de 8 liens (xDSL, fibre et 4G) tout en utilisant une seule IP, celle du serveur VPS sur lequel elle s’appuie. Il faut bien comprendre que pour utiliser cette solution vous aurez besoin d’un serveur VPS pour supporter le serveur de relai et votre nouvelle IP publique. Il existe des VPS à partir de quelques euros (OVH, Online), ce qui sera important ici c’est d’une part la latence, il faut donc un VPS proche, et d’autre part que la bande passante du VPS soit supérieure à la bande passante agrégée, tout du moins si vous cherchez à atteindre un débit supérieur. Mais cette tecno peut aussi être déployée dans le but de sécuriser un site, auquel cas le débit importe moins…

Déploiement

On va commencer à installer le serveur sur un VPS ou une VM Linux disposant d’une IP publique, je ne vais pas recopier, tout se trouve ici. Attention à bien respecter les versions minimales des distributions.

Ensuite on passe du côté du routeur. J’ai bêtement beaucoup galéré en voulant installer le routeur dans une VM ESXi, il semblerait que cette image comporte quelques bugs non résolus.(voir plus bas). Le plus simple pour tester est donc de le faire sur un Raspbery, dans mon cas un PI3, j’ai gravé l’image que l’on trouve ici avec Etcher et configuré en me laissant guider avec les infos du VPS, le tout en 10 minutes avec un résultat parfait. Attention toutefois à penser de désactiver le DHCP des box pour ne laisser actif que celui du routeur MPTCP.

En mode production la question du DHCP pourra se poser si l’on dispose déjà d’un DHCP sur un serveur ou un NAS, mais on peut aussi envisager plusieurs modes de fonctionnement, dont un qui consisterait à faire fonctionner le routeur MPTCT en mode bridge et le coller sur le port WAN du routeur existant sur le site. Ainsi on ne perdrait pas les bénéfices de son routeur préféré, un USG dans mon cas, tout en m’affranchissant des contraintes du Dual WAN.

On notera que cette solution fonctionne dans les deux sens, il sera ainsi possible d’utiliser la nouvelle IP publique pour publier des services et ainsi résoudre la problématique de ceux qui ne disposent pas d’une IP fixe.

Pour l’instant openMPTCProuter n’est qu’une succession de betas, la mise en production semble donc hasardeuse. La solution semble stable, les débits en download sont très bons par contre l’upload reste en retrait. Des tests plus approfondis s’imposent et la mise en commun des expériences de tous est bienvenue ! 

Remarques et astuces

ESXi : Pour que le routeur (coté client) puisse fonctionner sur ESXi, il faut simplement accepter le mode Promiscuous dans les options de sécurité du vSwitch0 dans la configuration réseau du serveur ESXi. Par contre rien de spécial à faire si le VPS est sur un serveur ESXi. Coté VPS sur ESXi, il est possible d'installer les VM-Ware tools.

DHCP : Il est tout à fait possible de désactiver le serveur DHCP sur le LAN du routeur openMPTCP si on a déjà un tel serveur (AD ou Synology par exemple).

IPV6 : Si pas d'IPV6 sur le VPS ou IPV6 mal configuré il vaut mieux désactiver, surtout pour les premiers tests.

Performances : Sur un Raspberry 3 qui n'a qu'une interface Ethernet 100 : 85 Mb/s Max. Sur un ESXi j'ai fait 150 Mb/s avec deux lignes vDSL.

Sources

https://www.multipath-tcp.org/
https://openwrt.org/
https://github.com/Ysurac/openmptcprouter/wiki
http://blogwifi.fr/openmptcprouter-vs-overthebox/

Télécoms : Fiabiliser et économiser

Alors que le marché télécom des particuliers jouit d’une concurrence effrénée, qui tourne globalement à l’avantage du consommateur, le marché des professionnels reste lui bien souvent sous la coupe de l’opérateur historique ou de quelques alternatifs qui pratiquent les mêmes méthodes tarifaires.

Exemple vu récemment : 1 ligne analogique pour l’ADSL : 31.29 € + 1 ADSL Pro : 107.00 € + 1 formule fourre-tout pour deux canaux fixe sur RNIS à 142.95 € auquel il fallait ajouter les frais d’un prestataire pour installer et maintenir le PBX local (on parle de factures mensuelles hors taxes).

Quelle est la différence entre la ligne ADSL d’un particulier et celle d’un professionnel dite Pro ? Techniquement aucune. Ah si, une IP fixe chez Orange car ils ne la fournissent pas aux particuliers, et surtout ils imposent des abonnements Pro dont le tarif est au minimum le double pour les professionnels, aux motif d’une GTR. Une garantie souvent illusoire car en cas de panne elle jouera peut être mieux sur un incident local mais pas vraiment pour un incident généralisé ou la pression du grand public est généralement plus importante et forcera l’opérateur à réagir rapidement. Quant aux compensations…

Bref, le budget des télécoms est un budget récurent, un poste important dans une petite structure. Donc soyez malins et surtout fuyez les abonnements tout compris qui n’ont d’autre but que d’enfermer le client dans un package plus difficile à migrer.

Attention toutefois, il n’y a pas de règles toutes faites, en matière de télécoms chaque situation est un cas unique. Je cite des exemples mais il faudra s’adapter à chaque situation particulière (ville, campagne, contraintes, taille de l’entreprise, volumes échangés, sécurité, etc…).

Internet

Pour n’importe quel professionnel Internet est devenu stratégique. Alors que faire ? Croire un opérateur qui va vous dire qu’il est meilleur que l’autre ou organiser sa propre continuité de service ? Personnellement je ne leur fait pas confiance et je préfère m’organiser. La bonne stratégie consiste à mon sens à utiliser deux médias, l’un filaire (Adsl ou fibre, 30 €) et l’autre radio (4G). Sauf quand on n’a pas le choix (pas de 4G) on évitera deux medias filaires car il y a des chances qu’ils partagent des infrastructures communes, ce qui risque de les rendre tous deux inopérants vis-à-vis de de certaines pannes. Quant au secours en 4G il faudra bien sur opter pour l’opérateur qui dispose d’un bon réseau sur le site, Free propose de l’illimité, mais à condition de se trouver à proximité d’un de ses relais. Ce n’est pas très important car on parle de secours, et 20 ou 50 GO seront suffisants dans la majorité des contextes professionnels pour assurer cette fonction. Ce qui compte c’est la qualité de la 4G sur le site, et pour le savoir il n’y a pas d’autre solution que de tester avec 4 abonnements différents avant de choisir.

Une fois ce choix effectué il faudra adapter le matériel et opter pour un routeur Dual WAN. Certains proposent le support natif d’une SIM de secours en 4G alors que d’autres disposent de plusieurs ports WAN sur lesquels on connectera les divers modems (TP-Link, Cisco RV, Unifi, etc… auquel on ajoutera un modem 4G Ethernet, Netgear ou Zyxel par exemple). On peut également opter pour une solution de type MPTCP (OTB d’OVH en version commerciale) ou le but premier est l’agrégation mais qui gère également le secours.

Dans tous les cas l’objectif est double. Faire des économies sur les abonnements et assurer une continuité de service immédiate. Je parle d’immédiateté car la meilleure des GTR imposera toujours le passage par un call center pour signaler l’incident et un temps de réaction. Donc du temps de perdu qui peut rapidement couter très cher à un professionnel.

La téléphonie

Pendant longtemps France Télécom a déployé du RNIS chez les professionnels en louant des lignes et des PBX. L’arrivée d’une timide concurrence n’a pas changé grand-chose, l’objectif premier des opérateurs étant avant tout d’assurer leurs marges. On ne va pas le leur reprocher, c’est le principe de l’économie de marché, il faut juste être plus malin.

Si le téléphone fixe d’un pro a longtemps été stratégique, cela s’est un peu atténué à l’heure où tous les collaborateurs disposent d’un mobile.

La solution pour un professionnel, et surtout pour un petit professionnel, est de s’affranchir de cette artillerie lourde d’un autre âge et d’opter pour de la téléphonie IP ou l’infrastructure est hébergé par le fournisseur. On trouve sur le marché plusieurs offres, je prendrais ici l’exemple de l’offre d’OVH ou l’on peut facilement remplacer un PBX et sa ligne RNIS par une offre à 5 à 15 € / mois pour deux communications simultanées sur 6 postes DECT (Gigaset N510IP) et une importante valeur ajoutée en terme de services inclus. Pour une installation plus conséquente, il est également possible de déployer de postes d’entreprises et un standard. Un poste téléphonique IP n’est pas lié à un lieu, ainsi le télétravailleur pourra disposer d’un poste d’entreprise à son domicile en toute transparence.

La téléphonie sur IP fonctionne via le réseau Internet qui sera sécurisé grâce au Dual WAN. Quant à savoir si ces solutions sont mures, la réponse est oui, pour preuve, Orange a récemment décidé de ne plus installer de lignes classiques mais uniquement de la VOIP.

Vos idées et vos expériences sont bien sur les bienvenues !

USG et Dual WAN

 

L’USG d'Ubiquiti est un routeur qui offre de nombreuses possibilités. De versions en versions il se bonifie, mais il reste encore pas mal de choses à faire à la main. Si le Dual WAN en sortie répartit bien la charge entre les deux ports ou utilise le second en secours, il reste encore des choses simples, qui se font par l’interface de gestion sur la plupart des routeurs, mais qui nécessiteront ici de se plonger dans Linux comme on le ferait sur un vieux gros Cisco… Tant qu’à se plonger dans le CLI, il serait peut-être temps d’en finir avec les techniques de Dual WAN et de s’orienter vers des implémentations libres de MPTCP (et je ne parle pas de l’OTB d’OVH qui s’avère au final une solution commerciale coûteuse, bugs compris !). De par son architecture il y a d’ailleurs plus de chances que cette technologie intéresse d’autres opérateurs que des constructeurs.

Mais revenons à l’USG. Les développeurs avancent mais il reste pas mal de choses qui ne sont pas implémentées dans leur magnifique interface. C’est le cas par exemple si l’on veut qu’un trafic spécifique (ports, ip, source, destination) passe par une liaison spécifique, comme par exemple forcer le flux TV vers le port WAN sur lequel est installée la ligne Free, alors qu’au premier abord on aurait pu penser qu’une simple route statique dans cette magnifique interface de gestion aurait suffit, et bien non :

configure
set protocols static table 5 route 0.0.0.0/0 next-hop WANx_IP_Gateway
set firewall modify LOAD_BALANCE rule 2500 action modify
set firewall modify LOAD_BALANCE rule 2500 modify table 5
set firewall modify LOAD_BALANCE rule 2500 destination address 212.27.38.0/24
set firewall modify LOAD_BALANCE rule 2500 protocol all
commit;exit

Un autre "piège" se situe au niveau de port forwarding. Dans l’interface on configure cela facilement et ça crée automatiquement les règles de firewall associés. Normal, sauf qu’à l’utilisation on s’aperçoit que ça ne fonctionne que pour le WAN1. Et c’est repartit pour un peu de SSH… Attention toutefois, l’interface WAN2 peut aussi être PPPOE1 selon votre connexion…

configure
set service nat rule 4000 description "WAN2 tcp 80"
set service nat rule 4000 destination address WAN2_IP
set service nat rule 4000 destination port 80
set service nat rule 4000 inbound-interface pppoe1
set service nat rule 4000 inside-address address 192.168.210.18
set service nat rule 4000 inside-address port 80
set service nat rule 4000 protocol tcp
set service nat rule 4000 type destination
commit;exit

Pensez aussi à noter les règles ainsi crées (on peut aussi les retrouver avec un show service nat et les effacer avec un delete service nat rule RULE_NUMBER). Il va falloir rendre cette configuration pérenne au reboot grâce à un fichier config.gateway.json, le sujet a été largement abordé dans la communauté Unifi et ailleurs (voir les liens ci-dessous).

Il me reste à explorer le comportement des liens VPN IPSEC en cas de passage en mode secours sur le WAN2, mais ça sera pour une autre fois, à moins que vous ayez des idées et astuces, elles sont bienvenues dans les commentaires !

Sources

https://help.ubnt.com/hc/en-us/articles/235723207-UniFi-USG-Port-Forwarding-Configuration-and-Troubleshooting
https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-How-to-further-customize-USG-configuration-with-config-gateway-json
https://help.ubnt.com/hc/en-us/articles/360005460813-UniFi-USG-Advanced-Policy-Based-Routing
https://help.ubnt.com/hc/en-us/articles/360002668854-UniFi-Verifying-and-Troubleshooting-IPsec-VPN-on-USG

USG, Android TV et les chaines des FAI

Tous les possesseurs de Freebox 4K le savent, ce n’est pas le pied ! Avec sa télécommande indomptable, ses bugs audio à répétitions. Même avec la dernière mise à jour, cette box TV ne cesse d’être capricieuse. Mais il parait que c’est bien mieux que la box Android TV de son conçurent BT. Bref, même les box génériques chinoises font mieux, mais je ne conseillerais pas ces produits pour qui veut un bon player Android TV.

En fait à mon sens il y a deux produits qui tiennent la route sous Android TV. La Nvidia Shield est la reine ou même la v1 est toujours excellente et mise à jour régulièrement, l’outsider étant la Mi Box 3 de Xiaomi en attendant le v4 annoncée il y a un mois avec des améliorations qui semblent cosmétiques. Il y a deux alternatives viables, un ChromeCast ou un Apple TV pour ceux qui ne se sentent bien qu’avec les produits d’Apple, mais ce n’est pas le propos ici.

Pour revenir à Android TV, et si l’on ne dispose pas d’un HD HomeRun ou l’intégration est parfaite, il va se poser le problème de l’intégration des chaines TV de son opérateur en IPTV à partir du fichier .M3U fournit par les FAI. Si l’on exclut certaines applications douteuses, il existe une solution qui permet une intégration parfaite : TVIrl. TVIrl est une application Android TV qui va permettre d’utiliser la playlist fournie par le FAI ainsi qu’un lien vers une source EPG. Le soucis c’est que si les FAI fournissent bien le fichier de leurs chaines en IPTV, il n’en est rien pour l’EPG et les logos.

Internet fourmille de fournisseurs d’EPG dans différents formats, notamment XMLTV ou même des acteurs comme Télérama s’y sont mis, ou encore çainternet est vote ami). Mais la vraie question sera d’agréger ces informations avec les chaines dans la bonne numérotation avec leur EPG et leurs logos. Si la première solution, notamment pour comprendre est Notepad, on atteindra rapidement ses limites en matière de patience. Il existe des logiciels plus ou moins bugées et des sites. Pour ma part j’ai testé avec X.Tream qui a l’inconvénient d’être payant mais l’avantage de fournir un résultat impeccable et durable. On peut tester avec un trial de 7 jours et ensuite partager les frais à plusieurs.

Le principe est simple, on insère son fichier .m3u, ici freebox.m3u et ensuite on va faire le tri dans les chaines afin d’écarter celles qui ne nous intéressent pas, les versions SD ou certaines chaines étrangères par exemple. On les trie dans l’ordre souhaité pour finir dans le section EPG afin de faire coller une source EPG à chacune des chaines retenues (il y a un doc ici qui décrit le processus. Le menu Picons servira à associer les logos de façon automatique.

Dans la section downloads de X.Tream Editor on obtiendra deux url, la première sera la playlist formatée et la seconde l’EPG. Il va falloir coller ces deux url dans TVIrl sous Android TV. Sachant que TeamViewer ne fonctionne pas très bien sous Android TV, le plus simple sera de se servir de la télécommande Android pour faire un copié / collé. Une fois l’opération terminée on va dans les options de Chaines en direct pour sélectionner les canaux souhaités. L’avantage de cette solution c’est qu’elle est pérenne. A tout moment on peut aller dans X.Tream Editor et y faire des modifications qui seront répercutées dans les Chaines en direct d’Android TV via TVIrl.

Unifi et dual WAN

Il reste un cas particulier qui n’a rien à voir avec ce que j’exposais précédemment. Si on utilise un routeur dual WAN avec deux FAI (ADSL, fibre et 4G) il va falloir indiquer au routeur par ou doit passer le ou les flux TV. En effet le flux Free ne sera accessible que via la ligne Free tout comme le flux Orange devra passer par la ligne Orange. Si sur certains routeurs le réglage est accessible dans l’interface de configuration il n’en est bizarrement rien pour l’USG d’Unifi ou il va falloir y aller en dur via SSH :

configure
set protocols static table 5 route 0.0.0.0/0 next-hop 1.2.3.4
set firewall modify LOAD_BALANCE rule 2500 action modify
set firewall modify LOAD_BALANCE rule 2500 modify table 5
set firewall modify LOAD_BALANCE rule 2500 destination address 212.27.38.0/24
set firewall modify LOAD_BALANCE rule 2500 protocol all
commit;exit

Ou 1.2.3.4 est l’ip de la passerelle de la ligne Freebox que l’on peut retrouver avec un show ip route. Il va falloir rendre cette configuration pérenne au reboot grace à un fichier config.gateway.json, le sujet a été largement abordé dans la communauté Unifi et ailleurs (voir les liens ci dessous).

Si vous avez d'autres idées et astuces, elles sont bienvenues dans les commentaires !

Sources

https://help.ubnt.com/hc/en-us/articles/360005460813-UniFi-USG-Advanced-Policy-Based-Routing 
https://help.ubnt.com/hc/en-us/articles/215458888 
https://matthijs.hoekstraonline.net/2017/10/29/configuring-source-address-based-routing-on-my-unifi-usg/ 
https://www.reddit.com/r/AndroidTV/comments/6oo99t/guide_to_setting_up_live_channels_for_android_tv/ 
https://www.reddit.com/r/IPTV/comments/83keyw/tvirl_or_alternatives_android_tv_love_channels_w/