154 votes

Comment puis-je utiliser iptables sur CentOS 7?

J'ai installé CentOS 7 avec une configuration minimale (système d'exploitation + outils de développement). J'essaie d'ouvrir le port 80 pour le service httpd, mais il y a quelque chose qui ne va pas avec mon service iptables ... qu'est-ce qui ne va pas? Qu'est-ce que je fais mal?

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: Aucun fichier ou dossier de ce type

# /sbin/service iptables save
La commande service ne prend en charge que les actions LSB de base (démarrer, arrêter, redémarrer, essayer de redémarrer, recharger, forcer le rechargement, état). Pour d'autres actions, veuillez essayer d'utiliser systemctl.

# sudo service iptables status
Redirection vers /bin/systemctl status  iptables.service
iptables.service
   Chargé : introuvable (Raison : Aucun fichier ou dossier de ce type)
   Actif : inactif (mort)

# /sbin/service iptables save
La commande service ne prend en charge que les actions LSB de base (démarrer, arrêter, redémarrer, essayer de redémarrer, recharger, forcer le rechargement, état). Pour d'autres actions, veuillez essayer d'utiliser systemctl.

# sudo service iptables start
Redirection vers /bin/systemctl start  iptables.service
Échec pour émettre l'appel de méthode : L'unité iptables.service n'a pas pu être chargée : Aucun fichier ou dossier de ce type.

0 votes

Essayer ceci /etc/init.d/iptables save

8 votes

J'ai obtenu la réponse ici. RHEL 7 utilise firewalld au lieu de iptables.

0 votes

IMO firewalld est plus convivial que iptables. D'abord installer et démarrer le service firewalld sudo yum install -y firewalld && sudo systemctl start firewalld. Ensuite ajouter le service HTTP sudo firewall-cmd --permanent --add-service=http (ajouter également le service https pour ouvrir le port 443 si nécessaire). Et enfin charger la nouvelle configuration dans firewalld sudo firewall-cmd --reload

343voto

Sgaduuw Points 512

Avec RHEL 7 / CentOS 7, firewalld a été introduit pour gérer iptables. À mon avis, firewalld est plus adapté aux postes de travail qu'aux environnements serveurs.

Il est possible de revenir à une configuration plus classique d'iptables. Tout d'abord, arrêtez et masquez le service firewalld :

systemctl stop firewalld
systemctl mask firewalld

Ensuite, installez le paquet iptables-services :

yum install iptables-services

Activez le service au démarrage :

systemctl enable iptables

Gestion du service

systemctl [stop|start|restart] iptables

La sauvegarde de vos règles de pare-feu peut être effectuée comme suit :

service iptables save

ou

/usr/libexec/iptables/iptables.init save

5 votes

Ce n'est pas enregistrer les iptables. Redémarrer le serveur perd tous les changements.

2 votes

Sur mon système, les iptables sont enregistrés correctement. Vous êtes-vous assuré que le service iptables est démarré au démarrage ? Vous pouvez le faire en exécutant 'systemctl enable iptables'

1 votes

Vous pouvez également avoir firewalld en cours d'exécution, ce qui ajoutera des règles iptables supplémentaires à la liste (à chaque redémarrage du système). Pour arrêter firewalld, exécutez "systemctl mask firewalld"

102voto

Metal3d Points 395

RHEL et CentOS 7 utilisent firewall-cmd au lieu d'iptables. Vous devriez utiliser ce type de commande:

# ajouter le port ssh comme port ouvert en permanence
firewall-cmd --zone=public --add-port=22/tcp --permanent

Ensuite, vous pouvez recharger les règles pour vous assurer que tout est en ordre

firewall-cmd --reload

C'est mieux que d'utiliser iptables-save, surtout si vous prévoyez d'utiliser des conteneurs lxc ou docker. Lancer des services docker ajoutera des règles que la commande iptables-save affichera. Si vous sauvegardez le résultat, vous aurez beaucoup de règles qui NE DOIVENT PAS être sauvegardées. Parce que les conteneurs docker peuvent changer leurs adresses IP au prochain redémarrage.

Firewall-cmd avec l'option permanente est mieux pour cela.

Vérifiez "man firewall-cmd" ou consultez la documentation officielle de firewalld pour voir les options. Il y a beaucoup d'options pour vérifier les zones, la configuration, comment cela fonctionne... la page de manuel est vraiment complète.

Je recommande vivement de ne pas utiliser le service iptables depuis Centos 7

1 votes

Firewall-cmd --reload ne fonctionne pas. J'ai dû redémarrer en utilisant "systemctl restart firewalld" pour que les modifications prennent effet.

0 votes

"Étant donné que firewalld est dynamique, des modifications peuvent être apportées à sa configuration à tout moment et sont immédiatement mises en oeuvre. Aucune partie du pare-feu n'a besoin d'être rechargée, il n'y a donc aucune interruption involontaire des connexions réseau existantes" -- from les documents officiels de firewalld

18voto

par Points 4359

J'avais le problème que le redémarrage ne démarrerait pas iptables.

Cela l'a corrigé:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables

1 votes

Sur CentOS 7 ne fonctionne pas : # systemctl start iptables donne Failed to start iptables.service: Unit not found. Et # systemctl start ip6tables donne Failed to start ip6tables.service: Unit not found.

18voto

João Chambel Points 1

Essayez la commande suivante iptables-save.

0 votes

Homme iptables-save - dump les règles iptables à stdout.

2 votes

Puis nous pouvons utiliser iptables-save > /etc/sysconfig/iptables

5voto

Dug Points 1

J'ai modifié le fichier /etc/sysconfig/ip6tables-config en changeant :

IP6TABLES_SAVE_ON_STOP="no"

à :

IP6TABLES_SAVE_ON_STOP="yes"

Et cela :

IP6TABLES_SAVE_ON_RESTART="no"

à :

IP6TABLES_SAVE_ON_RESTART="yes"

Cela semblait sauvegarder les changements que j'ai faits en utilisant les commandes iptables à travers un redémarrage.

0 votes

Cela ne fonctionne pas sur RHEL 7.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X