IP6tables rejette tout mon trafic

Bonsoir,

Maintenant que mon server@home est disponible sur ipv6. Je m’attelle à essayer de gérer ip6tables.
Sans règles, on atteint le serveur sur les ports HTTP, HTTPS, et je peux pinguer sans problème.

Avec, ça passe directement dans le flux ICMPv6 pour être rejeté !
LE flux à destination du port 80, ou 443 ne rentre même pas …

Voici les règles :


*filter

# Base policy
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

:admins6 - [0:0]

#-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i em0 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT -i em0 -p tcp -m conntrack --ctstate RELATED -j ACCEPT
-A INPUT -i em0 -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT
# drop bad 
-A INPUT -m conntrack --ctstate INVALID -j DROP

-A INPUT -s ::1/128 ! -i lo -j DROP

# accept differents services.
-A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -j ACCEPT

# ICMPv6 
-A INPUT -i em0 -p icmpv6 -m limit --limit 3/s --limit-burst 7 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 100 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 101 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 127 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 129 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 130/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 131/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 132/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 133/0 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 134/0 -s fe80::/64 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 135/0 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 136/0 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 137/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 138/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 139/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 140/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 142/0 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 143 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 144/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 145/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 146/0 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 147 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 148 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 149 -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 151 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 152 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 153 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A INPUT -p icmpv6 --icmpv6-type 200 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 201 -j DROP
-A INPUT -p icmpv6 --icmpv6-type 255 -j DROP

-A INPUT -p icmpv6 -j REJECT --reject-with no-route

# OUTPUT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o em0 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -o em0 -p tcp -m conntrack --ctstate RELATED -j ACCEPT
-A OUTPUT -o em0 -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -o em0 -m conntrack --ctstate INVALID -j DROP

-A OUTPUT -p udp -m multiport --dports 53 -m conntrack --ctstate NEW -m comment --comment "UDP (DNS, mDNS) ports authorized" -j ACCEPT
-A OUTPUT -p udp -m multiport --dports 123 -m conntrack --ctstate NEW -m comment --comment "Others UDP ports authorized" -j ACCEPT

-A OUTPUT -p icmpv6 --icmpv6-type 1 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 100 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 101 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 127 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 128/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 129/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 130/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 131/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 132/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 133/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 134/0 -s fe80::/64 -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 135/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 136/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 137/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 138/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 139/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 140/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 142/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 143 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 144/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 145/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 146/0 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 147 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 148 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 149 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 151 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 152 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 153 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -p icmpv6 --icmpv6-type 200 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 201 -j DROP
-A OUTPUT -p icmpv6 --icmpv6-type 255 -j DROP

-A OUTPUT -p icmpv6 -j REJECT --reject-with no-route

COMMIT

Un oeil “neuf” , comme celui de @PascalHambourg, me sera assurément utile !

Le protocole NDP (équivalent d’ARP) envoie des sollicitations et des annonces spontanées en multicast, ce que le suivi de connexion ne sait pas gérer. Par conséquent les paquets ICMPv6 de types 133 à 136 sont classés dans l’état UNTRACKED par les noyaux actuel (et l’état INVALID par d’anciens noyaux mais il ne devrait plus y en avoir en circulation). Or tes règles ne les acceptent que dans l’état NEW.

Il y aurait bien d’autres choses à dire sur ce jeu de règles.

1 J'aime

Ok, merci pour le renseignement.

Mais, fais-toi plaisir … je n’ai pas à avoir honte à me faire “gronder” par tes remarques, loin s’en faut.
Bien au contraire, cela m’aidera à améliorer ce qui doit être.
D’autant que je n’ai surtout pas la prétention d’être un expert en la matière.

La seule chose que j’ai correctement “analysé” - du moins, je l’espère - est expliqué sur mon blog, à-propos d’icmpv6 :wink:
Mais, normalement, tu as déjà vu !

1 J'aime

Moi non plus. Je connais juste quelques trucs.

Je ferais un commentaire dès que j’aurai un peu de temps.

1 J'aime

@PascalHambourg: je tiens à te remercier … cela m’a vraiment débloqué.

De plus j’ai installé ‘iptables-persistent’ … je n’ai plus qu’à gérer mes règles directement dans les fichiers relatifs ; je trouve cela très simple, très pratique.
(enfin directement, après avoir testé le bon support)

Je suppose que tu as lu l’excellent travail de Seb-ksl là :
Tuto iptables
Moi je le suis à la lettre et j’en suis fort content.

1 J'aime

Je crains que @PengouinPdt ne souhaite aller bien plus loin que notre petit pare-feu basique, auquel il a d’ailleurs contribué :wink:

C’est bien ce qui me semblait.
Moi, je reste un “basique”. :wink:

C’est même une des premières choses que j’ai vérifié quand j’ai remarqué que malgré tout rien ne sortait !
@seb-ksl: d’ailleurs, tu peux légèrement corrigé/retouché/modifié la règle suivante :
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
par :
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
Et, idem pour la sortie …

Surtout sur la version serveur, car dans l’état, si vous arrivez à communiquer, cela me surprendrait !

C’est spécifique à IPv6 ? Si oui, comme malheureusement mon serveur n’a plus d’IPv6 (foutue zone non-dégroupée…), je te ferai confiance car je ne peux pas tester.

Non, l’Etat “UNTRACKED” existe aussi pour ipv4 :wink:
cf: https://inetdoc.net/guides/iptables-tutorial/userlandstates.html

Merci, je potasse ça et je me corrige dès que j’ai 5 minutes ! :slight_smile:

1 J'aime

Certes l’état UNTRACKED existe aussi pour les paquets IPv4, mais contrairement à l’IPv6, un paquet IPv4 ne peut être mis dans cet état que par une règle iptables avec la cible NOTRACK.

Personnellement j’aime bien l’idée de règles explicites pour accepter les paquets ICMPv6 de types 133 à 136 du protocole NDP, avec les spécificités de ces paquets (hop limit à 255). Cela a le mérite de rappeler que si IPv4 peut marcher plus ou moins bien si on bloque tous les paquets ICMP, ce n’est pas le cas d’IPv6 si on bloque tous les paquets ICMPv6 sur un réseau ethernet : pas d’autoconfiguration si on bloque les paquets Router Solicitation/Advertisement, et pas de résolution d’adresse si on bloque les paquets Neighbour Solicitation/Advertisement. A noter que ces paquets ne sont pas nécessaires sur une interface de type point à point (ppp, tun…).

2 J'aime

Comme je l’ai indiqué sur mon blog, cela tient des recommandations de travail publiées par l’IETF … la RFC 4890
Donc, c’est une base de réflexion, que j’espère avoir correctement traduit !

Mais j’ai quelques doutes, et surtout à-propos de ce genre d’écriture :

tous les codes dits ND, de 133 à 137 - doivent être envoyés avec un hop-limit à 255 - définis par la RFC 4861. Quelques précisions concernant ces codes :

le code 133 - Router Solicitation - doit être envoyé par une source ayant forcément une adresse IP assignée, ou depuis une adresse non spécifiée si l'interface réseau n'a pas encore d'adresse IP assignée, vers tout routeur..
le code 134 - Router Advertisement - doit ABSOLUMENT être envoyé par une adresse IP assignée, lien local IPv6, à destination de routeur ou de tout noeud multicast.
le code 135 - Neighbor Solicitation - doit être envoyé par une source ayant forcément une adresse IP assignée, ou depuis une adresse non spécifiée si l'interface réseau n'a pas encore d'adresse IP assignée, vers tout noeud multicast.
le code 136 - Neighbor Advertisement - doit ABSOLUMENT être envoyé par une adresse IP assignée, vers l'adresse source invoquant le code 135, ou vers tout noeud multicast, s'il n'y a pas d'adresse assignée.
le code 137 - Redirect Message - doit ABSOLUMENT être envoyé par une adresse IP assignée, lien local IPv6, vers l'adresse source qui a demandé la redirection du message.

Ainsi, les codes 133, 135, 136 - si l’on veut être au plus fin, doivent avoir au moins deux règles distinctes.
Je ne maîtrise pas assez pour être aussi fin :wink:

Pour ce qui est des Hop-Limit, c’est clairement la RFC 4861 qui en parle :wink:


De fait, j’ai corrigé l’écriture ci-dessus, de telle manière :

-A INPUT -i em0 -p ipv6-icmp -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT

-A INPUT -i em0 -p ipv6-icmp -m limit --limit 3/sec --limit-burst 7 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 100 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 101 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 127 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 129 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 130/0 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 131/0 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 132/0 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 133/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 134/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 135/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 136/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 137/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 138/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 139/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 140/0 -j DROP
-A INPUT -d ff02::1/128 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 141/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 143 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 144/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 145/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 146/0 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 147 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 151 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 152 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s fe80::/64 -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 153 -m hl --hl-eq 1 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 200 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 201 -j DROP
-A INPUT -i em0 -p ipv6-icmp -m icmp6 --icmpv6-type 255 -j DROP
-A INPUT -p ipv6-icmp -j REJECT --reject-with icmp6-no-route

-A OUTPUT -o em0 -p ipv6-icmp -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT

-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 1 -m conntrack --ctstate NEW -m limit --limit 3/sec --limit-burst 7 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -m limit --limit 3/sec --limit-burst 7 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -m limit --limit 3/sec --limit-burst 7 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -m limit --limit 3/sec --limit-burst 7 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 100 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 101 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 127 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 128/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 129/0 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 130/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 131/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 132/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 133/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -d fe80::/64 -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 134/0 -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 135/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 136/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 137/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 138/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 139/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 140/0 -j DROP
-A OUTPUT -d ff02::1/128 -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 141/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 143 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 144/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 145/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 146/0 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 147 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 148 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 149 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 151 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 152 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 153 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 200 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 201 -j DROP
-A OUTPUT -o em0 -p ipv6-icmp -m icmp6 --icmpv6-type 255 -j DROP
-A OUTPUT -p ipv6-icmp -j REJECT --reject-with icmp6-no-route

Super Puissant ce tutoriel. Merci @PengouinPdt

:wink: Romain

//---------

Perso sur un dédié Online.net (j’viens d’motiver le support ^^ :slight_smile: ) j’ai du mal avec l’ICMPV6… çà bloque :confused: config net.ipv6.conf.all.accept_ra ou un truc lié aux DHCP routeur de chez eux ; sûrement :confused: ^^ Est-ce possible !?

Alors que sur un “dédié” AT Home sur le réseau SFR çà fonctionne… ou bien :wink:

Merci encore pour toutes ces infos.

Gardes en mémoire, quand même que l’écriture de telles règles n’est peut-être pas pleinement conforme.
Interpréter la RFC 4890 n’est pas forcément aisé, mais elle reste un bon référentiel à cette démarche !

Tu devrais vérifier que la pile IPv6 soit active !
Que te restitue :

cat /proc/sys/net/ipv6/conf/all/disable_ipv6
et:
cat /proc/sys/net/ipv6/conf/default/disable_ipv6

Si c’est ‘0’, c’est bon … :wink:
Sinon, il te faut l’activer :

sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0

IL peut y avoir d’autres raisons pour lequel cela ne fonctionne pas, mais à moins que je ne me trompe, sur ton serveur, tu devrais avoir une ip statique … de fait, les communications RA, voire DHCPv6 ne devraient pas être nécessaire !

Humm… c 1 ccomme true ^^

NON !
Si tu mets ‘1’, ça le désactive … !

Si tu mets 1 à disable, ça te fais quoi ?!

Sinon @PengouinPdt comme tu as écris sur le tuto si je comprend bien pour les régles de 133-136 ils faut mettre une source correspondante aux IPv6 de nos serveurs virtuels… en plus de l’adresse du bloc ? c’est çà !?