À partir de Red Hat® Enterprise Linux® (RHEL) 7 et CentOS® 7, firewalld est disponible pour gérer iptables. Par conséquent, vous devez soit utiliser firewall-cmd
ou désactivez firewalld et activez iptables. Cet article vous montre comment utiliser la configuration classique d'iptables.
Arrêter et masquer le service firewalld
Exécutez les commandes suivantes pour arrêter et masquer le service firewalld que vous ne souhaitez pas utiliser :
$ systemctl stop firewalld
$ systemctl mask firewalld
Installer et configurer iptables
Utilisez les étapes suivantes pour installer et configurer iptables :
-
Installez les
iptables-services
package (s'il n'est pas déjà installé) en exécutant la commande suivante :$ yum install iptables-services
-
Activez le service pour qu'il démarre au démarrage en exécutant les commandes suivantes :
$ systemctl enable iptables $ systemctl enable ip6tables
-
Ensuite, ajoutez des règles iptables. Vous pouvez le faire de l'une des manières suivantes :
-
Depuis l'interface de ligne de commande (CLI), en exécutant des commandes similaires à
iptables -I INPUT ...
-
En créant ou en éditant votre
/etc/sysconfig/iptables
ressemble à l'exemple de base suivant, qui laisse les ports 22 et 80 ouverts :$ cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT $cat /etc/sysconfig/ip6tables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT
-
-
(Facultatif ) Si vous enregistrez vos règles dans les
/etc/sysconfig/ip{,6}tables
fichiers, vous devez également exécuter les commandes suivantes :$ systemctl restart iptables $ systemctl restart ip6tables
-
Ensuite, vérifiez que le service iptables est actif en exécutant les commandes suivantes :
$ systemctl status iptables $ systemctl status ip6tables
-
Vérifiez vos règles iptables en exécutant les commandes suivantes :
$ iptables -L $ ip6tables -L
-
Vérifiez que votre serveur écoute sur les ports que vous avez ouverts (22 et 80 dans l'exemple ci-dessus) en exécutant la commande suivante :
$ netstat -plant
-
Interroger le
systemd
journal pour un journal des modifications que vous avez apportées au service iptables en exécutant les commandes suivantes :$ journalctl -f -u iptables.service $ journalctl -f -u ip6tables.service
-
Redémarrez le serveur. Les règles iptables doivent être enregistrées et rechargées automatiquement.