Plutôt que de saisir manuellement les règles, vous pouvez utiliser iptables
pour ajouter les règles aux chaînes appropriées, puis les enregistrer. Cela vous permettra de déboguer les règles en direct, confirmant qu'elles sont correctes, plutôt que d'avoir à les ajouter au fichier comme vous semblez le faire.
Pour ouvrir le port 80, je fais ceci:
$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save
La dernière commande enregistrera les règles ajoutées. C'est la règle que j'utiliserais pour ouvrir le port pour le trafic Web.
Pourquoi votre règle cause des problèmes
Si vous remarquez la règle que vous essayez d'utiliser:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Possède une chaîne appelée "RH-Firewall-1-INPUT". Si vous n'avez pas cette chaîne, ou un lien de la INPUT
chaîne à cette chaîne, cette règle ne sera jamais accessible. Cette règle pourrait probablement ressembler à ceci:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Ou votre INPUT
chaîne doit être liée à cette chaîne RH-Firewall-1-INPUT
avec une règle comme celle-ci:
$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
....
REMARQUE: vous pouvez voir quelles chaînes vous avez avec cette commande:
$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...
Il peut également être nécessaire de modifier les états afin que les connexions existantes soient également autorisées.
-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
De plus, lorsque vous utilisez le -A
commutateur, vous ajoutez la règle à la chaîne INPUT
. S'il y a d'autres règles avant qui bloquent et / ou interfèrent avec l'atteinte de cette règle, elle ne sera jamais exécutée. Donc, vous voudrez peut-être le déplacer vers le haut en insérant plutôt qu'en ajoutant, comme ceci:
-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
Utilisation de l'interface graphique
Les pare-feu peuvent être des bêtes compliquées. Donc, vous voudrez peut-être essayer le TUI à la place (les TUI sont des GUI pour le terminal).
$ sudo system-config-firewall-tui
Vous pouvez ensuite parcourir les différents écrans de configuration des iptables
règles.
Les références
/etc/sysconfig/iptables
et les ajouter. Vos entrées originales doivent être dans ce fichier,/etc/sysconfig/iptables.save
.J'ai récemment installé CentOS 6.5 en tant que machine virtuelle pour la même raison, à utiliser comme serveur Web virtuel. Quoi qu'il en soit, j'ai suivi ce tutoriel très détaillé du wiki CentOS . Ensuite, selon la réponse de @slm, je lui ai ajouté le port 80 et enregistré en utilisant
sudo /etc/init.d/iptables save
.iptables -L -v
a cette sortie:la source
Si vous souhaitez modifier vos paramètres de pare-feu mais que vous n'êtes pas familier
iptables
, je vous suggère d'utiliser l'system-config-firewall-tui
outil si vous n'avez pas de serveur X, utilisez lesystem-config-firewall
, qui est l'outil GUI pour cela.la source