« Ip6tables » : différence entre les versions

De wiki jackbot
Aller à la navigation Aller à la recherche
(Page créée avec « Category:InformatiqueCategory:SecuriteCategory:Administration Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour… »)
 
Aucun résumé des modifications
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour le protocole IPv6.
Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour le protocole IPv6.


Comme d'habitude pour des raisons de sécurité, la première étape consiste à tout bloquer. Attention toute fois à ne pas se tirer une balle dans le pied en se coupant sa propre connexion !
'''Attention !!''' Le changement des règles de filtrage peut dans certains cas engendrer une coupure de connexion. Il est judicieux de ne pas les inclure tout de suite dans un script exécuté au démarrage, mais de les tester au moins une fois avant. Il ne faudrait pas se tirer une balle dans le pied en se coupant sa propre connexion !
 
Comme d'habitude pour des raisons de sécurité, la première étape consiste à tout bloquer.


  #purges de toutes les règles
  #purges de toutes les règles
Ligne 15 : Ligne 17 :
  ip6tables -X OUTPUT
  ip6tables -X OUTPUT
  ip6tables -X
  ip6tables -X
 
  #pareil pour la table nat et mangle
  #pareil pour la table nat et mangle
  ip6tables -t nat -F
  ip6tables -t nat -F
Ligne 26 : Ligne 28 :
  ip6tables -P FORWARD DROP
  ip6tables -P FORWARD DROP
  ip6tables -P OUTPUT DROP
  ip6tables -P OUTPUT DROP
Les règles suivantes vont permettre de ne pas casser les connexions déjà établie et autoriser le loopback.
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT # trafic local
ip6tables -A OUTPUT -o lo -j ACCEPT # trafic local
Maintenant, on jette les paquets qualifiés d'invalide :
ip6tables -A INPUT -m state --state INVALID -j DROP
ip6tables -A OUTPUT -m state --state INVALID -j DROP
ip6tables -A FORWARD -m state --state INVALID -j DROP
Le protocole ICMPv6 va se charger de découvrir ses voisins, il est donc nécessaire pour un routeur d'autoriser certaines entrées :
ip6tables -I INPUT -p icmpv6 --icmpv6-type 133/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 134/0 -j ACCEPT
Toujours dans le cas d'un routeur, pour vérifier l'unicité des adresses :
# Multicast Listener Report Message v2
ip6tables -A INPUT -p icmpv6 --icmpv6-type 143/0 -j ACCEPT
# Neighbor Solicitation/Advertisement
ip6tables -A INPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT
Règles pour le ping :
#Ping
ip6tables -A INPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
ip6tables -A FORWARD -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
'''Source''' :
*https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMFHS-041/Netfilter-et-le-filtrage-du-protocole-IPv6
*https://resources.sei.cmu.edu/tools/downloads/vulnerability-analysis/assets/IPv6/ip6tables_rules.txt
*https://debian-facile.org/viewtopic.php?id=24227

Version actuelle datée du 26 juillet 2021 à 13:05

Il s'agit de la même chose que iptables pour le protocole IPv6.

Attention !! Le changement des règles de filtrage peut dans certains cas engendrer une coupure de connexion. Il est judicieux de ne pas les inclure tout de suite dans un script exécuté au démarrage, mais de les tester au moins une fois avant. Il ne faudrait pas se tirer une balle dans le pied en se coupant sa propre connexion !

Comme d'habitude pour des raisons de sécurité, la première étape consiste à tout bloquer.

#purges de toutes les règles
ip6tables -F INPUT
ip6tables -F FORWARD
ip6tables -F OUTPUT
ip6tables -F

#suppression des chaînes écrites par l'utilisateur
ip6tables -X INPUT
ip6tables -X FORWARD
ip6tables -X OUTPUT
ip6tables -X

#pareil pour la table nat et mangle
ip6tables -t nat -F
ip6tables -t nat -X
ip6tables -t mangle -F
ip6tables -t mangle -X

#changement de la politique des chaînes INPUT, FORWARD et OUTPUT, qui sera DROP par défaut
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP

Les règles suivantes vont permettre de ne pas casser les connexions déjà établie et autoriser le loopback.

ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

ip6tables -A INPUT -i lo -j ACCEPT # trafic local
ip6tables -A OUTPUT -o lo -j ACCEPT # trafic local

Maintenant, on jette les paquets qualifiés d'invalide :

ip6tables -A INPUT -m state --state INVALID -j DROP
ip6tables -A OUTPUT -m state --state INVALID -j DROP
ip6tables -A FORWARD -m state --state INVALID -j DROP

Le protocole ICMPv6 va se charger de découvrir ses voisins, il est donc nécessaire pour un routeur d'autoriser certaines entrées :

ip6tables -I INPUT -p icmpv6 --icmpv6-type 133/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 134/0 -j ACCEPT

Toujours dans le cas d'un routeur, pour vérifier l'unicité des adresses :

# Multicast Listener Report Message v2
ip6tables -A INPUT -p icmpv6 --icmpv6-type 143/0 -j ACCEPT

# Neighbor Solicitation/Advertisement
ip6tables -A INPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT

Règles pour le ping :

#Ping
ip6tables -A INPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
ip6tables -A FORWARD -p icmpv6 --icmpv6-type 128/0 -j ACCEPT


Source :