web-dev-qa-db-fra.com

Plusieurs appareils avec un IPv6 sur Internet?

Je souhaite connecter plusieurs appareils (dans le LAN) à Internet via une seule adresse IPv6 publique.

Malheureusement, je n'ai pas trouvé de bonne façon de procéder. La seule idée que j'ai eue était de tout faire passer du PF/OPNsense via OpenVPN à un Raspberry Pi ou similaire avant le Sense, puis d'aller sur Internet avec l'IPv6 du Pi.

La configuration prévue serait Internet (WAN) - Fritzbox (LAN1) - PFSense/OPNsense (avec WAN) - LAN2

Y a-t-il d'autres possibilités? La solution VPN n'est pas vraiment sympa.

Pourquoi? L'attribution à chaque appareil (privé) de sa propre adresse IP publique (également avec extension de confidentialité) simplifie le suivi. De plus, certains appareils n'ont pas d'extension de confidentialité ou elle n'est pas active.

5
Hannes

IPv6 est conçu pour ne pas faire cela. Essayer le style IPv4 NAT avec IPv6 va casser les choses. Cela dit, je suis presque sûr que vous pouvez faire NAT IPv6 avec iptables Linux, donc ce n'est pas impossible. Mais je recommanderais fortement de ne pas le faire.

36
Sander Steffann

IPv6 n'a pas de standard NAT comme IPv4. Il y a n RFC EXPERIMENMTAL pour un à un NAT (une adresse extérieure pour chaque adresse intérieure) sur IPv6, mais interdit explicitement ce que vous voulez faire (je l'ai mis en évidence ci-dessous):

6. Une note sur le mappage des ports

En plus d'écraser les adresses IP lorsque les datagrammes sont transférés, les périphériques NAPT44 remplacent le numéro de port source dans le trafic sortant et le numéro de port de destination dans le trafic entrant. Ce mécanisme est appelé "mappage de port".

Le principal avantage du mappage de ports est qu'il permet à plusieurs ordinateurs de partager une seule adresse IPv4. Un grand nombre d'adresses IPv4 internes (généralement à partir de l'un des espaces d'adressage privés [RFC1918]) peuvent être mappées en une seule adresse IPv4 externe, routable globalement, avec le numéro de port local utilisé pour identifier le nœud interne qui doit recevoir chaque datagramme entrant. Cette caractéristique d'amplification d'adresse n'est généralement pas prévue comme une nécessité à l'heure actuelle.

Étant donné que le mappage de port nécessite la réécriture d'une partie de l'en-tête de la couche de transport, il nécessite que les périphériques NAPT44 soient conscients de tous les protocoles de transport qu'ils transmettent, étouffant ainsi le développement de nouveaux protocoles de transport améliorés et empêchant l'utilisation du chiffrement IPsec. La modification de l'en-tête de la couche de transport est incompatible avec les mécanismes de sécurité qui chiffrent la charge utile IP complète et restreint le NAPT44 à la transmission des couches de transport qui utilisent des algorithmes de somme de contrôle faibles qui sont facilement recalculés dans les routeurs.

Étant donné que la modification des en-têtes de la couche de transport entraîne un préjudice important et que très peu d'avantages, le cas échéant, profitent de l'utilisation du mappage de port dans IPv6, les traducteurs NPTv6 qui respectent cette spécification NE DOIVENT PAS effectuer le mappage de port.

En outre, vous constaterez que NAT casse certaines fonctionnalités IPv6.

IPv6 possède de nombreuses adresses afin que vous n'ayez pas besoin d'utiliser NAPT comme vous le faites avec IPv4. NAPT sur IPv4 rompt le paradigme IP où chaque hôte se voit attribuer une adresse unique afin que les connexions soient de bout en bout, sans que les périphériques intermédiaires n'aient besoin de maintenir l'état sur les connexions. IPv6 restaure le paradigme IP, autorisant des protocoles autres que TCP, UDP et ICMP *, et il corrige les applications et les protocoles de couche application qui sont rompus par NAPT.

Vous pouvez mal comprendre le suivi et la fonction des extensions de confidentialité. Le fait est que le suivi que les extensions de confidentialité empêchent est de suivre un appareil lorsqu'il est connecté à différents réseaux, d'obtenir une nouvelle adresse sur chaque réseau connecté, et non de suivre les services que l'appareil utilise sur Internet. En utilisant uniquement le SLAAC d'origine, un périphérique aura toujours le même IID (Identifiant d'interface) sur la même interface, et il pourrait être corrélé, quel que soit le réseau auquel le périphérique a été connecté, en le suivant lorsque vous le déplacez du réseau vers réseau. Cela n'a pas d'importance si l'appareil n'existe que sur un seul réseau, vous n'avez aucun mouvement à suivre. Si vous déplacez l'appareil vers d'autres réseaux et que l'appareil ne prend pas en charge les extensions de confidentialité, vous pourrez être suivi, mais je dirais également que le logiciel de l'appareil est si vieux qu'il est criblé de problèmes de sécurité.

Si l'appareil ne se connecte qu'à un seul réseau, il n'y a pas de risque de suivi et vous pouvez également utiliser DHCPv6 pour attribuer l'adressage, ou vous pouvez attribuer manuellement une adresse, plutôt que d'utiliser SLAAC qui utilise un identifiant, tel qu'une adresse MAC.


* RFC 3022, Traducteur d'adresses réseau IP traditionnel (NAT traditionnel) explique IPv4 NAT, y compris NAPT dans la section 2.2:

Les sessions autres que les types de requête TCP, UDP et ICMP ne sont tout simplement pas autorisées à partir de nœuds locaux, desservis par un routeur NAPT.

20
Ron Maupin

Les adresses IPv6 ne sont pas le moyen le plus puissant de suivre. Le trafic DNS indique où vous allez sur Internet. Sur les ordinateurs et les mobiles, les identifiants de suivi des publicités et des réseaux sociaux suivent les utilisateurs sur tous les appareils et IP.

Les adresses IPv6 peuvent être modifiées fréquemment, ne laissant que le préfixe commun identifiant votre site, pas l'hôte. Sur les appareils sans extensions de confidentialité, envisagez d'implémenter vous-même quelque chose de similaire. Générez des identifiants d'hôte aléatoires et affectez-les statiquement comme adresse IP dans votre préfixe.

Chiffrez le trafic. Utilisez TLS pour toutes les applications.

Utilisez des superpositions sécurisées si nécessaire pour transiter par des réseaux auxquels vous ne faites pas confiance.

Évitez NAT. Chaque appareil peut choisir parmi des milliards d'adresses IP, pourquoi rompriez-vous la connectivité de bout en bout en en canalisant une?

8
John Mahowald

Comme d'autres l'ont noté, il existe de nombreuses façons de suivre vos appareils . Même si vous en aviez des milliers (au lieu de quelques dizaines) et les mappiez tous sur la même IP, cela ne ferait pas beaucoup de différence.

Voir par exemple https://panopticlick.eff.org/ si vous voulez l'essayer vous-même, et cliquez sur "Afficher les résultats complets". Essayez avec différents appareils, changez même votre IP via VPN ou redémarrez le routeur. C'est épouvantable. Donc, même avec un navigateur renforcé (qui ne serait guère disponible sur tous vos appareils) et en redémarrant le routeur après chaque connexion pour que votre IP change (espérons-le), vos appareils sont toujours assez bien identifiés.

Imaginez maintenant si vous traitez avec des trackers sans scrupules (dont la plupart sont problématiques) qui vont avoir accès à bien plus d'informations, et le fait que la plupart de vos accès proviendront d'une IP (ou d'une gamme IPv6, ne fait pas de différence).

L'utilisation de NAT-ing pour améliorer la confidentialité permet de "Je veux mettre une serviette humide autour de l'échappement de ma voiture diesel afin de réduire sa pollution". N'aidera pas de façon mesurable.

Si vous ne vous souciez pas de la connectivité de bout en bout, vous ne devriez pas du tout vous soucier de l'IPv6. Il est fort probable que vos appareils fonctionnent très bien sous IPv4 simple NAT pour le reste de leur durée de vie.

Cela étant dit, si vous insistez toujours sur l'idée que toutes vos connexions sortantes devraient provenir d'une seule adresse IPv6 , vous le feriez en désactivant le routage et en installant un proxy logiciel à la place. Il existe un protocole proxy SOCKS générique, mais pour HTTP vous seriez mieux servi avec des proxy améliorant la confidentialité comme Privoxy . Vous pouvez en outre lier l'amont de Privoxy à réseau Tor pour bénéficier de la modification des adresses source IP. Si vous ne pouvez pas utiliser de proxy, le VPN est votre meilleur moyen et le moins laid.

Cela pourrait en fait aider un peu avec la confidentialité, bien que pour de meilleurs résultats de nos jours, vous devez désactiver complètement Javascript (ou tout au moins installer Block Origin et NoScript dans des modes plus sécurisés et les configurer péniblement site par site) sur tous vos appareils (et bien sûr désactiver les horreurs comme Flash et autres plugins de navigateur!)

7
Matija Nalis

Si vous voulez faire des choses inhabituelles/désapprouvées, alors utiliser une "distribution de routeur" pré-réglée car votre routeur Edge n'est probablement pas la meilleure façon de procéder. De plus, pfsense est basé sur freebsd pf qui ne prend pas en charge le NAT ipv6 "un ​​à plusieurs".

Si vous voulez faire un à plusieurs ipv6 NAT je suggérerais d'utiliser une version récente d'une distribution linux générique comme routeur Edge. Linux a ajouté la prise en charge d'ipv6 nat dans 3.9.0 et son utilisation est fondamentalement aussi simple que son homologue ipv4, par exemple "ip6tables -A POSTROUING -t nat -o -j MASQUERADE".

5
Peter Green

Répondre à votre souci d'être suivi via une adresse IPv6: la possibilité d'utiliser des adresses temporaires existe. Je ne connais cela que par la théorie, mais je pense que cela doit être la configuration standard.

https://tools.ietf.org/html/rfc4941

aussi: https://tools.ietf.org/html/rfc7721

1
Nigel Nop

Vous pouvez faire IPv6 NAT très bien avec tout routeur prenant en charge iptables suffisamment moderne entre le réseau que vous cachez et le réseau sur lequel vous avez la seule IP. Il est en pratique utilisé pour mettre plusieurs machines derrière une passerelle sur le réseau de superposition cjdns IPv6, comme documenté ici .

En supposant que le transfert IPv6 soit configuré dans votre noyau et que votre routeur est déjà configuré pour être sur le chemin entre les deux réseaux, les règles iptables ressemblent à ceci:

ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
ip6tables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Ici, eth0 est l'interface du réseau que vous cachez et tun0 est l'interface qui a l'IP que vous voulez que tout apparaisse derrière.

Notez qu'avec ce type de NAT vous allez bousiller toutes les connexions entrantes ou le trafic qui ne fait pas partie d'une session établie. Les paquets adressés aux "vraies" adresses IPv6 des machines internes seront viennent bien, mais les réponses seront NAT-ed et semblent provenir d'une adresse différente. Seules les sessions lancées par derrière le NAT fonctionnera correctement. Vous voudrez peut-être ajouter des règles de pare-feu pour bloquer les entrées le trafic qui n'est pas lié à une session que le NAT connaît.

1
interfect