Iptables en service sous Debian
Malgré l’émergence de nouveaux outils de gestion du pare-peu netfilter intégré à Linux tels que ufw ou firewalld, iptables reste la référence. Il existe sous Debian une solution pour qu’il s’exécute en service.
Installation des paquets
Deux paquets seulement sont nécessaires à l’exécution de iptables en tant que service.
apt install iptables iptables-persistent
Création des fichiers de configuration
Vous pouvez les créer à partir de la configuration existante à l’aide des deux commandes suivantes :
iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6
Exemple type de la configuration d’un serveur Web Apache s’exécutant sous Debian
Ajoutez au fichier /etc/iptables/rules.v4 les quelques lignes suivantes, sachant que la règle en sortie pour le DHCP ne se justifie pas pour un serveur de production :
*filter :INPUT DROP [0:0] :OUTPUT DROP [0:0] :FORWARD ACCEPT [0:0] # #Retour des paquets # -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # #Loopback # -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT # #Ouverture des ports en entrée (services SSH, APACHE) # -A INPUT -m state --state NEW -p tcp -m tcp --dport 47543 -j ACCEPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 443 -j ACCEPT # #Ouverture des ports en sortie (apt) # -A OUTPUT -m state --state NEW -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -m state --state NEW -p tcp -m tcp --dport 443 -j ACCEPT #DHCP -A OUTPUT -p udp --dport 67 -j ACCEPT #NTP -A OUTPUT -p udp --dport 123 -j ACCEPT #DNS -A OUTPUT -p udp --dport 53 -j ACCEPT COMMIT
Ce qui change en IPv6 concerne l’ajout du NDP (Neighbour Discovery Protocol) et le changement de port pour le DHCP :
*filter :INPUT DROP [0:0] :OUTPUT DROP [0:0] :FORWARD ACCEPT [0:0] # #Retour des paquets # -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #Loopback -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT # #NDP # -A INPUT -s fe80::/64 -p ipv6-icmp -j ACCEPT -A OUTPUT -s fe80::/64 -p ipv6-icmp -j ACCEPT # #Ouverture des ports en entrée (services SSH, APACHE) # -A INPUT -m state --state NEW -p tcp -m tcp --dport 47543 -j ACCEPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 443 -j ACCEPT # #Ouverture des ports en sortie (apt) # -A OUTPUT -m state --state NEW -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -m state --state NEW -p tcp -m tcp --dport 443 -j ACCEPT #DHCP -A OUTPUT -p udp --dport 546 -j ACCEPT #NTP -A OUTPUT -p udp --dport 123 -j ACCEPT #DNS -A OUTPUT -p udp --dport 53 -j ACCEPT COMMIT
Redémarrage du service
Pour que ces quelques règles soient prises en compte, vous devez redémarrer le service netfilter-persistent.
systemctl restart netfilter-persistent
Le contrôle des règles Iptables s’effectue par ces deux commandes :
iptables -L ip6tables -L