web-dev-qa-db-fra.com

Ouvrir le port 80 dans CentOS 6.5

J'essaie d'ouvrir le port 80 dans mon CentOS 6.5, sur ma machine virtuelle, afin que je puisse accéder à Apache depuis le navigateur de mon bureau.

enter image description here

Si vous regardez la capture d'écran ci-dessus .... J'ai ajouté la ligne avant la flèche bleue, comme il est écrit sur http://www.cyberciti.biz/faq/linux-iptables-firewall- open-port-80 / Maintenant, j'obtiens la page de test Apache lorsque j'entre l'adresse IP dans mon navigateur, mais quand je redémarre les iptables, j'obtiens un "ÉCHEC" lorsque CentOS essaie d'appliquer la nouvelle règle.

Quelqu'un connaît-il une solution à cela? Ou dois-je ignorer l'échec?

14
Erik van de Ven

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 de 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 chaîne INPUT vers 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 chaîne INPUT 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)
...

Les états peuvent également avoir besoin d'être modifiés 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 règles iptables.

ss #1

ss #2

Références

28
slm

Si vous souhaitez modifier vos paramètres de pare-feu mais que vous n'êtes pas familier avec iptables, je vous suggère d'utiliser le system-config-firewall-tui outil si vous n'avez pas de serveur X, utilisez le system-config-firewall, qui est l'outil GUI pour cela.

0
ludiegu

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é à l'aide de Sudo /etc/init.d/iptables save.

iptables -L -v a cette sortie:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination
0
baktin