web-dev-qa-db-fra.com

Comment utiliser iptables sur centos 7?

J'ai installé CentOS 7 avec une configuration minimale (outils os + dev). J'essaie d'ouvrir le port 80 pour le service httpd, mais il y a un problème 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: No such file or directory


# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# Sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# Sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
141
Meiblorn

Avec RHEL 7/CentOS 7, firewalld a été introduit pour gérer iptables. À mon humble avis, firewalld est plus adapté pour les stations de travail que pour les environnements de serveur.

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

Activer le service au démarrage:

systemctl enable iptables

Gérer le 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
321
Sgaduuw

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

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

Ensuite, vous pouvez recharger les règles pour vous assurer que tout va bien

firewall-cmd --reload

C'est mieux que d'utiliser iptable-save, surtout si vous envisagez d'utiliser des conteneurs lxc ou docker. Le lancement des services Docker ajoutera quelques règles que la commande iptable-save lancera. Si vous sauvegardez le résultat, vous aurez beaucoup de règles à ne PAS sauvegarder. Parce que les conteneurs docker peuvent les changer les adresses IP lors du prochain redémarrage.

Firewall-cmd avec l'option permanente est préférable pour cela.

Vérifiez "man firewall-cmd" ou consultez la documentation officielle du pare-fe pour voir les options. Il existe de nombreuses options pour vérifier les zones, la configuration, son fonctionnement ... La page de manuel est vraiment complète.

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

92
Metal3d

J'ai eu le problème que le redémarrage ne démarre 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
16
par

Essayez la commande suivante iptables-save.

11
João Chambel

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

IP6TABLES_SAVE_ON_STOP="no"

À:

IP6TABLES_SAVE_ON_STOP="yes"

Et ça:

IP6TABLES_SAVE_ON_RESTART="no"

À:

IP6TABLES_SAVE_ON_RESTART="yes"

Cela semblait enregistrer les modifications apportées à l’aide des commandes iptables lors d’un redémarrage.

4
Dug

Le mois dernier, j'ai essayé de configurer iptables sur un conteneur LXC VM, mais chaque fois après le redémarrage, la configuration d'iptables n'était pas chargée automatiquement.

Le seul moyen de le faire fonctionner était d'exécuter la commande suivante:

miam-y installer iptables-services; systemctl disable firewalld; systemctl mask firewalld; service iptables redémarrer; service iptables save

1
BVB Media

Placez la configuration IPtables dans le fichier traditionnel et il sera chargé après le démarrage:

/ etc/sysconfig/iptables

1
BVB Media

Et pour ajouter, vous devriez également pouvoir faire la même chose pour ip6tables après avoir exécuté la commande systemctl mask firewalld:

    systemctl start ip6tables.service
    systemctl enable ip6tables.service
0
jman594

Si vous le faites et que vous utilisez fail2ban, vous devrez activer les filtres/actions appropriés:

Mettez les lignes suivantes dans /etc/fail2ban/jail.d/sshd.local

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 86400

Activer et démarrer fail2ban:

systemctl enable fail2ban
systemctl start fail2ban

Référence: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/

0
Sebas