web-dev-qa-db-fra.com

Comment autoriser les sous-réseaux IPv6 locaux dans ufw?

J'ai récemment eu la connectivité IPv6 à la maison et maintenant j'aimerais autoriser les connexions à mon serveur domestique via IPv6 à partir du réseau local uniquement. L'astuce est que l'adresse/le préfixe IPv6 attribué au serveur est dynamique. Existe-t-il un moyen d'écrire une règle UFW qui n'autorise que les sous-réseaux directement connectés?

6
user96232

N'oubliez pas qu'il n'y a pas de "plages locales" IPv6 - chaque "plage locale" IPv6 est son propre (au moins)/64 segment d'adresses v6 dans un préfixe spécifiquement défini. En tant que telle, toute adresse "de plage privée" que vous recevrez sera spécifique au sous-réseau sur lequel votre routeur vous configure, plutôt qu'à l'adresse externe v6 que vous avez (il existe une logique à l'intérieur des routeurs pour configurer les sous-réseaux automatiquement, mais lorsque vous entrez Routage de niveau entreprise avec pare-feu, routeurs, commutateurs, etc. avancés, IPv6 doit être configuré manuellement, à la main.

Lorsque vous ajoutez à l'équation que vous aurez probablement (souvent) fréquemment un sous-réseau changeant tout le temps, il n'y a aucun moyen de les accepter tous de manière dynamique sans accepter toutes les connexions entrantes IPv6 - du moins sur une configuration réseau grand public (avec pare-feu beaucoup plus compliqué et beaucoup plus coûteux, vous pouvez explicitement séparer VLAN pour empêcher les communications de communiquer avec l'extérieur et n'accepter que la version 6 interne, mais vous ne pouvez pas le faire pour le consommateur technologies de routeur de niveau supérieur).

De plus, les règles de pare-feu sont conçues dans ufw (et les technologies sous-jacentes iptables et netfilter avec lesquelles ufw fonctionne) pour avoir des règles spécifiques (telles que ALLOW aaaa:bbbb:cccc:dddd::dead:beef INBOUND TO dddd:eeee:ffff:0000::dead:beef PORT 22/tcp (évidemment pas une règle, mais juste un exemple) et si vous avez toujours des adresses différentes sur différents sous-réseaux v6 (en interne ou en externe, mais surtout en interne), les exigences des pare-feu pour ces types de règles.

Vous devez donc connaître tous les sous-réseaux que vous obtiendrez et ajouter une règle ufw correspondant à chaque sous-réseau. Si ce sous-réseau est en constante évolution et que vous ne savez pas quel sous-réseau vous obtiendrez, vous ne pouvez pas créer de manière fiable une règle de pare-feu dans une configuration pouvant faire ce que vous cherchez à accomplir sur une base dynamique en constante évolution.

Ceci s'applique également au transfert de port à domicile - vous ne pouvez pas configurer de manière fiable un transfert de port SAUF SI l'adresse IP interne (v4 ou v6) ne change pas. (Le routeur gère de manière transparente INBOUND à partir d'Internet, à condition que vous configuriez la v6 interne dans une configuration statique, mais vous ne pouvez pas garantir que cela se produira sans une configuration et des configurations réseau beaucoup plus longues et éventuellement plus d'équipement de niveau entreprise pouvant coûter cher)

4
Thomas Ward

Vieille question, mais Google m'a fait venir ici alors je pense qu'il est intéressant de noter que vous pouvez ajouter la plage de liens locaux IPv6 avec:

ufw allow from fe80::/64

Si vous vous connectez via le réseau local, l'adresse de lien local doit être utilisée à la place de votre adresse IPv6 globale.

3
gaddman