Dois-je également configurer d'autres règles iptables pour ipv6 si je viens d'utiliser iptables?

21

Disons que j'ai un pare-feu configuré sur mon serveur linux avec iptables afin que j'accepte uniquement le trafic du port 22 et du port 80 et que je bloque l'accès à tous les autres ports.

Ces règles fonctionnent-elles uniquement si la machine cliente utilise une adresse IPv4? Donc, si une adresse ipv6 est utilisée, le client peut accéder aux ports que je ne veux pas? (c.-à-d. ports autres que les ports 22 et 80)

user230779
la source
Vous n'avez indiqué aucune réponse comme étant utile. Tu devrais faire ça. ;-)
Anders

Réponses:

21

iptablesfonctionne pour IPv4, mais pas IPv6. ip6tablesest le pare-feu IPv6 équivalent et est installé avec iptables.

En fin de compte, cependant, iptablesc'est pour les connexions IPv4, ip6tablesc'est pour les connexions IPv6. Si vous souhaitez que vos iptablesrègles s'appliquent également à IPv6, vous devez également les ajouter ip6tables.


Si vous essayez de répliquer votre ensemble de iptablesrègles ip6tables, toutes les règles qui iptablespeuvent le faire ne seront pas portées correctement ip6tables, mais la plupart le seront.

Reportez-vous à la page de manuel pour savoirip6tables si vous voulez vous assurer que les commandes que vous utilisez dans votre iptablesport seront parfaitement portées.


Si vous le souhaitez, nous pouvons vous aider à créer des ip6tablesensembles de iptablesrègles équivalents pour correspondre à vos règles, si vous fournissez votre liste de règles de pare-feu (en supprimant toute information qui pourrait identifier le système de coruse). Sinon, nous ne pouvons que répondre à votre question générale.

Thomas Ward
la source
10
N'est-ce pas ridicule alors? Pour clarifier, donc maintenant tous mes ports sur le serveur sont grands ouverts à toute personne qui se connecte avec une adresse IPv6?
user230779
3
@ user230779 Je suis d'accord pour dire que c'est "ridicule" mais c'est pourquoi ufwet d'autres gestionnaires de pare-feu existent, ils ajoutent eux-mêmes les règles aux deux, en conséquence. Le problème qui se pose ici, cependant, n'est pas "Est-ce que n'importe qui avec IPv6 peut voir mon site?" le plus gros problème est de savoir si votre système a des adresses IPv6. La plupart des connexions ont IPv4 et IPv6 à partir d'ordinateurs clients comme le mien. Mais si le serveur distant n'a pas d'IPv6 accessible au public, alors l'IPv4 est connecté. Si je comprends bien, cependant, si vous avez IPv6, vous devez également ajouter les règles ip6tables.
Thomas Ward
1
@ user230779 Je pourrais créer un script qui exécuterait la même commande pour iptablesAND ip6tables, et les règles générales comme -p tcp --dportfonctionneront toujours, mais les règles plus complexes pourraient ne pas ... (comme -j REJECT --reject-with [something])
Thomas Ward
Thomas pouvez-vous me lier à un exemple sûr d'ip6tables pour un serveur web apache?
user230779
1
@Braiam n'a jamais rien dit sur les drapeaux. Certaines commandes ne fonctionneront pas ( -j REJECT --reject-with icmp-host-prohibitedpar exemple, parce que le paquet de rejet est un nom différent dans IPv6)
Thomas Ward
3

Comme d'autres vous l'ont déjà dit, il existe différentes tables de pare-feu pour IPv4 et IPv6. Vous pouvez définir des règles pour IPv6 comme pour IPv4, mais il y a un grand risque que vous vous trompiez si vous ne connaissez pas IPv6. Comme, vous ne pouvez pas abandonner ICMPpour IPv6, car il y a des parties de poignée de main essentielles là-bas. Comme dire à l'expéditeur que les trames sont trop grandes, etc. Sans ces choses, IPv6 pourrait cesser de fonctionner pour certains utilisateurs.

Il est donc fortement recommandé d'utiliser ufwou le package shorewall6avec shorewall. Le iptablesfrontend ufwprend en charge IPv4 et IPv6 et fonctionne très bien sur les serveurs avec une ou deux interfaces mais n'achemine pas le trafic (fonctionne comme un routeur ou une passerelle). Si vous acheminez le trafic, vous avez besoin de quelque chose de mieux, comme shorewallou ajoutez manuellement des règles pour le transfert avec iptableset ip6tables.

N'oubliez pas que vous pouvez avoir plusieurs adresses IPv6 sur vos interfaces. Certains sont uniquement des liens locaux, certains sont globalement statiques et dynamiques. Vous devez donc configurer les règles en conséquence et les serveurs n'écoutant que sur les bonnes adresses.

Anders
la source