Je configurais ip6tables, après avoir configuré iptables avec succès.
ip6tables -F
ip6tables -X
ip6tables -t nat -F
ip6tables -t nat -X
ip6tables -t mangle -F
ip6tables -t mangle -X
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
# Autorise les connexions déjà établies et localhost
ip6tables -A INPUT -m state --state ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
#ip6tables -A OUTPUT -o lo -j ACCEPT
#TOR
ip6tables -A OUTPUT -p tcp -m tcp --dport 9050 -j ACCEPT
# ICMP (Ping)
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 -j ACCEPT
# DNS
ip6tables -A OUTPUT -p tcp --dport 53 -j ACCEPT
ip6tables -A OUTPUT -p udp --dport 53 -j ACCEPT
# HTTP
ip6tables -A OUTPUT -p tcp --dport 80 -j ACCEPT
#HTTPS
ip6tables -A OUTPUT -p tcp --dport 443 -j ACCEPT
# Mail SMTP
ip6tables -A INPUT -p tcp --dport 587 -j ACCEPT
ip6tables -A OUTPUT -p tcp --dport 587 -j ACCEPT
#Transmission
ip6tables -A INPUT -p udp --dport 51413 -j ACCEPT
ip6tables -A OUTPUT -p udp --sport 51413 -j ACCEPT
# NTP (horloge du serveur)
ip6tables -A OUTPUT -p udp --dport 123 -j ACCEPT
# On log les paquets en entrée.
ip6tables -A INPUT -j LOG
exit 0
Tout fonctionne… Sauf SMTP. Et je ne comprend juste pas pourquoi ! Pourtant, msmtp n’utilise pas d’autres ports que 25 ou 465 ou 587… Avec le traffic autorisé sur les 3 je ne comprend pas ce qui ne va pas. Des idées ?
EDIT : smtp refonctionne. Next question : peut-on faire mieux ? est-ce optimal ? “sécurisé” ?
Sauf erreur de ma part, si smtp fonctionne avec ip6tables tout en accept, et ne fonctionne pas avec ip6tables tout en drop, c’est qu’il est bien impacté par les règles ipv6, et par conséquent l’utilise, non ?
Mon FAI autorise ipv4 et ipv6.
iptable en acceptant 25 : smtp fonctionne
iptables en refusant 25 : smtp ne fonctionne pas.
iptables et ip6tables acceptant 25 : smtp ne fonctionne pas.
Je n’ai pas encore joué avec Postfix en IPV6 mais d’après une brèves recherches il semble que les distributions GNU/Linux ne sont pas systématiquement fourni avec le support IPV6 :
Supported Platforms
Postfix version 2.2 supports IPv4 and IPv6 on the following platforms:
AIX 5.1+
Darwin 7.3+
FreeBSD 4+
Linux 2.4+
NetBSD 1.5+
OpenBSD 2+
Solaris 8+
Tru64Unix V5.1+
On other platforms Postfix will simply use IPv4 as it has always done.
See below for tips how to port Postfix IPv6 support to other environments.
Le fait que Postfix permettent l’envoi de mail depuis un serveur configuré avec une double stack IPV4/IPV6 ne garantis pas que l’envoi soit fonctionnel en IPV6, le test le plus simple serait de couper l’IPV4 et sans iptables/IP6tables faire un tests de fonctionnement de l’envoi de mail.
On m’a récemment fait remarquer que je pouvais encore l’optimiser, et surtout que la méthode de placer le script dans `/etc/network/if-pre-up.d/iptables n’était pas optimale. Comment s’assurer que les règles soient appliquées avant même la connexion au réseau via le network manager ? Dans init.d ? Autre ?
Merci d’avance, et merci encore pour vos réponses.
Oui, tu pourrais mettre ton script en statique dés le boot, vu qu’aucune de tes règles ne dépend d’une interface autre que lo.
Mais ça marche en pre-up, donc avant que ton interface que tu léves avec le nm soit configurée, donc ça ne changerait rien de le mettre encore plus tôt, je ne vois pas en quoi ça serait plus optimal.
Donc placer mon script dans if-pre up convient ? On m’a fait remarquer qu’il ne serait pas appliqué avant la connection au réseau, avant les premiers paquet.
Oui. Je crois qu’on m’a bien embrouillé. On m’a fait remarquer que c’était le network manager de gnome qui gérais ma connexion, et que if-pre-up.d ne convenait pas.
Du coup, je me suis dit, mince, cette solution ne s’applique qu’avec une connexion manuelle avec ifop etc., pas avec le network-manager-gnome.
variante de if-pre-up : dans /etc/network/interfaces, après wlo1 : pre-up iptables-restore < /etc/iptables_rules (règles le problème des applications multiples)
Selon vous, quelle(s) option(s) sembles les plus appropriés ?
Mais je crois que je me prend la tête pour rien : d’après le man d’interface.
Il semblerait donc qu’avec if-pre-up tout soit bien appliqué avant même la configuration de l’interface.
Aussi, on m’a fait remarquer “et ton nat et mangle ?”. On est bien d’accord que sur une machine non routeur, je laisse tout à accept. le fait qu’une vérification m’indique des paquets en nat, c’est normal et pas un problème niveau sécurité ?
"Oui, if pre-up va lancer ton script avant la connexion au réseau, si celle-ci est configurée via interface, pas si elle est configurée par le network-manager de gnome.
Si, car même si effectivement network-manager court circuite ifupdown et ne déclenche aucun script pour les interfaces non déclarées dans /etc/network/interfaces, il y a au moins l’interface lo qui est gèrée par ifupdown et qui déclenche automatiquement les scripts if-*up.d .