Ouvrir le port 80 dans CentOS 6.5

14

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

entrez la description de l'image ici

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 d'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?

Erik van de Ven
la source

Réponses:

28

Plutôt que de saisir manuellement les règles, vous pouvez utiliser iptablespour 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 INPUTchaî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 INPUTchaîne doit être liée à cette chaîne RH-Firewall-1-INPUTavec 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 -Acommutateur, 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 iptablesrègles.

            SS # 1

            SS # 2

Les références

slm
la source
La dernière règle a supprimé toutes les règles précédentes dans mon fichier iptables et n'a ajouté que celle ci-dessus (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Maintenant, je ne peux plus accéder à la page Apache depuis mon navigateur.
Erik van de Ven
1
@ErikVandeVen - désolé, je n'ai pas clarifié cela. Les autres règles que vous aviez doivent soit être ajoutées de la même manière et enregistrées (au même moment), soit vous pouvez accéder au fichier /etc/sysconfig/iptableset les ajouter. Vos entrées originales doivent être dans ce fichier, /etc/sysconfig/iptables.save.
slm
Merci, j'ai pu restaurer iptables en copiant le fichier iptables.save. Mais je ne pouvais toujours pas ajouter la règle sans avoir un échec et pouvoir ouvrir la page de test d'apache dans mon navigateur en même temps. Je vais jeter un œil au tutoriel que riclags a publié, d'abord :)
Erik van de Ven
1
Man, je n'ai pas du tout compris pourquoi cette réponse a reçu un single comme encore. Excellente réponse détaillée. Considérez mon unique comme mille remerciements.
Samiron
1
Cette interface graphique de pare-feu est une idée divine, jamais vue auparavant!
Matt Fletcher
0

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:

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
baktin
la source
0

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-tuioutil si vous n'avez pas de serveur X, utilisez le system-config-firewall, qui est l'outil GUI pour cela.

ludiegu
la source