- État Nouveau
- Pourcentage achevé
- Type Anomalie
- Catégorie Freebox OS → API
- Assignée à Personne
- Système d'exploitation Tous
- Sévérité Moyenne
- Priorité Très Basse
- Basée sur la version 4.8.16
- Due pour la version Non décidée
-
Échéance
Non décidée
- Votes
- Privée
Ouverte par nbanba - 11/11/2024
FS#39821 - L'API n'est pas joignable en IPv6 en local
Bonjour
La box résout en local en IPv6 sur fd0f:ee:b0::1 pour le domaine mafreebox.freebox.fr
host -6 mafreebox.freebox.fr mafreebox.freebox.fr has address 212.27.38.253 mafreebox.freebox.fr has IPv6 address fd0f:ee:b0::1 mafreebox.freebox.fr is an alias for freeplayer.freebox.fr.
Sauf erreur de ma part, l'API n'est pas joignable sur cette IPv6 locale associée au nom de domaine mafreebox.freebox.fr :
La requête :
curl -k https://[fd0f:ee:b0::1]/api_version curl: (7) Failed to connect to fd0f:ee:b0::1 port 443: Couldn't connect to server
arrive en timeout (sur le même segment L2, sans blocage ni firewall)
alors qu'en IPv4, une requête sur l'IPv4 associée à mafreebox.freebox.fr (212.27.38.253) fonctionne:
curl -k https://212.27.38.253/api_version {"box_model_name":"Freebox v7 (r1)","api_base_url":"\/api\/","https_port":2xxx,"device_name":"ZZZ-ZZZZZ","https_available":true,"box_model":"fbxgw7-r1\/full","api_domain":"fxxxxxxx.fbxos.fr","uid":"537xxxxxxxxxxxxxxxxxxxxxxxxxxxx5","api_version":"12.0","device_type":"FreeboxServer7,1"}
Ce comportement asymétrique entre IPv4 et Ipv6 est gênant pour le maintient d'applications se connectant à la freebox en local sur l'URL mafreebox.freebox.fr et utilisant les certificats TLS de la PKI FreeboxOS :
Issuer: CN=Freebox Root CA,O=Freebox,L=Paris,ST=France,C=FR
Pourriez vous SVP rendre cet accès valide lors d'une prochaine mise à jour ?
En vous remerciant d'avance
Cordialement
nbanba
Chargement...
Activer les raccourcis clavier
- Alt + ⇧ Shift + l Se connecter/Se déconnecter
- Alt + ⇧ Shift + a Ouvrir une tâche
- Alt + ⇧ Shift + m Mes recherches
- Alt + ⇧ Shift + t Rechercher par ID de tâche
Liste des tâches
- o Ouvrir la tâche sélectionnée
- j Déplacer le curseur vers le bas
- k Déplacer le curseur vers le haut
Détails de la tâche
- n Tâche suivante
- p Tâche précédente
- Alt + ⇧ Shift + e ↵ Enter Modifier cette tâche
- Alt + ⇧ Shift + w Surveiller
- Alt + ⇧ Shift + y Fermer cette tâche
Édition de la tâche
- Alt + ⇧ Shift + s Enregistrer la tâche
sur une vm installée sur une ultra j'ai:
il y a bien une adresse ipv6 sur la machine sur laquelle vous faites la requête ?
Bonjour
Oui :
idem sur une autre machine :
Les machines ont des IPv6 sur le vlan 20 dans la plage fd00:20::1 ←→ fd00:20::ffff
Sur le firewall j'ai un magic any/any en v4 + v6 (mis pour l'occasion):
idem pour la table de routage v6 qui à pour next hop la freebox avec la static suivante :
Pour info la freebox est sur le vlan 100 (v100 = INTERCO-INTERNET) d'ou l'interface dans la règle 244 ci dessus et dans la table de routage.
Et ça ne fonctionne pas, depuis mon laptop qui à une pate sur le vlan 20 par exemple :
idem depuis tous les serveurs du LAN (quelque soit le vlan, les règles de routage et de firewalling sont OK)
Pourtant la même requête sur l'IPv6 publique de la box fonctionne :
PS : je constate également le souci sur une VM de la freebox qui elle à directement une IPv6 sur le vlan 100 (celui de la freebox)
En vous remerciant encore pour votre aide
Cordialement
nbanba
Bonjour
@mmakassikis merci encore pour votre réponse et pour votre aide.
J'ai poussé le debug et en effet, l'API écoute bien, mais je note un comportement surprenant (anormal ?):
Le truc c'est que pour arriver à joindre cette IPv6 local, j'ai du ajouter sur la patte du firewall une IPv6 dans le même subnet et forcer le source nat au travers de cette IP (la dernière de la liste "config ip6-extra-addr" : "edit fd0f:ee:b0::2/64") !!
Cela signifie donc que la FREEBOX n'apprend pas les RA du Firewall sur le segment L2 connectant la Freebox au firewall.
Ce comportement est surprenant pour les subnets locaux lorsque TOUS les subnets IPv6 de la box ont pour next-hop le firewall (en gros la Freebox ne gère plus l'IPv6) et que le firewall s'annonce correctement sur le subnet local présent sur le L2
Pour illustrer, voici ce que je capture dans une VM de la DELTA avec 'radvdump'.
On voit clairement que le subnet local du segment est bien annoncé, le firewall aussi pour le prefix fd00:100::/64 (=segment local IPv6 du vlan 100 faisant la jonction entre la Freebox et le firewall)
À défaut de monter une IPv6 sur le subnet fd00:100::/64, la Freebox devrait normalement ajouter une route pour ce subnet dans sa table de routage avec pour gateway le firewall, et donc je n'aurais pas du faire le bricolage consistant à ajouter l'IP fd0f:ee:b0::2 sur la pate du firewall et de source nat le trafic par cette IP lorsque la destination est fd0f:ee:b0::1
Pour tous ceux qui ont une infra 'standard' avec un firewall, il serait bien que quand la gestion globale de l'IPv6 est gérée par le firewall, la Freebox ait un comportement normal, à savoir apprendre la route du segment privé dans sa table de routage avec pour gateway le firewall pour ce subnet (ou se peer en BGP sur le link local et apprendre le subnet de cette manière).
En vous remerciant encore et d'avance
Cordialement
nbanba
PS:
la tâche avec son objet original peut être fermé. Il serait quand même bien que la Freebox ait un comportement standard au niveau des IPv6 local quand un autre routeur gère l'IPv6 sur le réseau (nécessite d'ouvrir une autre tâche ?)
dans votre setup, est-ce que les machines n'ont pas d'adresse IPv6 globale ? Si oui, pas besoin de bricoles en principe …
Bonjour
Merci pour votre retour.
Oui aucune globale, que des ULA sur fc00/7 (plutôt sur fd00/8 d'ailleurs)
fd00:10:: L3 vlan 10
fd00:20:: L3 vlan 20
fd00:30:: L3 vlan 30
… fd00:100:: L3 vlan 100 (VLAN du segment L2 Freebox ⇔ Firewall)
Je suis également surpris d'avoir du faire tout ça …
Cordialement
nbanba
mon dernier message est ambigüe. je voulais dire: adresse globale ⇒ en principe pas de problème.
si je comprends bien, vous utilisez des subnets ULA donc la box n'a aucune connaissance. Effectivement, pas moyen que cela fonctionne.
Par curiosité: pourquoi ne pas utiliser d'adresses GUA ?
Bonsoir
Encore une fois, merci pour votre retour.
La box devrait en avoir connaissance car dans sa position de routeur n'aillant pas le contrôle de ces subnets locaux, elle devrait faire comme tous les routers ipv6 du marché , à savoir apprendre la route et la gateway (depuis les RA du router maître les controlant) pour chaque subnet de fd00/7 qu'elle ne gère pas afin de les ajouter à sa table de routage avec comme gateway le routeur/firewall maître sur le segment L2.
Pour répondre non aucune adresse GLA, à cause de la dualité publique/privée sur les segments L2 locaux présent derrière la freebox (problème de sécurité, les machines se retrouvent avec 1 ipv4 privée + 1 ipv6 publiques sur le même segment ethernet, de faite exposés à internet..!!)
Les machines portent des ULA
Les firewalls (qui font routers) sont exposés à internet et portent les GLA, puis filtrent le trafic pour passer d'internet aux réseaux rfc1918 (en v6) sur fc00/7, ce qui permet d'analyser le trafic au passage, tant au niveau logique que physique (impossible sur le même L2, donc impossible avec des GLA sur un segment L2 local)
Le tout histoire d'avoir un minimum de sécurité et de rupture de flux car la dualité ipv4 privée / ipv6 publiques sur le même segment L2 est en réalité une exposition directe à internet de toutes les machines qui historiquement étaient "cachées" par un router nat en ipv4 (du pain béni pour tous les kiddies du darknet qui jouent des exploits sans même savoir ce qu'ils font)
Le protocole Ethernet (OSI-L2) ne possède en lui même aucune sécurité et seul l'escalade des couches OSI permet d'ajouter des fonctionnalités de sécurité.
IPv6 à été conçu pour apporter à minima la même sécurité qu ipv4, ce qui n'est pas le cas quand on mélange ipv6 publiques et ipv4 privéees sur le même segment OSI-L2 (particulièrement lorsque ce segment est présent entre 2 routers et qu'en ipv4 le segment est privé alors qu'il est publique en ipv6).
À noter que la segmentation logique n'est réellement efficace que sur des segments physiques isolés/dédiés, et un simple tcpdump sur n'importe quel L2 permet de TOUT capturer, donc si sur un même L2 sont montés des subnets privés et publiques, une capture promiscuous casse instantanément la pseudo isolation L3 et permet de tout voir…
Dans le cas des Freebox cela peut être assez catastrophique car de l'IOT comme un frigo connectés présent sur le LAN ipv4 se retrouve dans cette configuration directement accessible en ipv6 sur le WAN … alors vous me direz à raison que sur un serveur on met un firewall local et on ressert les policies pour se protéger d'internet, mais aujourd'hui je ne sais pas installer nftables ou équivalent sur un asic de 10 millimètres cubes possédant une norme 802.qqch transformant n'importe quel objet du quotidien en un objet connecté ⇒ ces IOT ne doivent jamais et en aucun cas porter des GLA les rendant accessible sur internet, mais ils doivent porter des ULA et être physiquement inaccessible depuis internet (en v4 comme en v6)
Il faudrait que la Freebox apprenne depuis les RA les routes v6 annoncée sur le L2 local lorsque ce n'est pas la freebox qui est le routeur maître (ou qu'on puisse monter une session BGP entre la freebox et le(s) routeurs/firewalls pour populer la table de routage de la box avec la bonne gateway pour les subnets de fc00/7 qu'elle ne gère pas).
Merci encore
Bien cordialement
nbanba
Bonsoir
PS: d'où mon insistance il y a quelques années pour le développement de la tic box "Firewalls IPv6" lorsque avait été retiré de FreeboxOS la possibilité pour l'utilisateur de désactiver complètement l'IPv6
Cordialement
nbanba
Et désolé pour les 'GLA' au lieu de 'GUA' dans mon précédent message.
Je n'avais pas relu avant de poster et ça a été modifié par la correction automatique du téléphone ! Sorry !
Cordialement
nbanba