risposta-alla-domanda-sullo-sviluppo-web-bd.com

Aprire la porta 80 in CentOS 6.5

Sto cercando di aprire la porta 80 nel mio CentOS 6.5, sulla mia macchina virtuale, in modo da poter accedere ad Apache dal browser del mio desktop.

enter image description here

Se dai un'occhiata allo screenshot qui sopra ... Ho aggiunto la riga prima della freccia blu, come è scritto su http://www.cyberciti.biz/faq/linux-iptables-firewall- open-port-80 / Ora ottengo la pagina di test di Apache quando inserisco l'indirizzo IP nel mio browser, ma ancora quando riavvio gli iptables, ricevo un "FAILED" quando CentOS tenta di applicare la nuova regola.

Qualcuno sa una soluzione per questo? O devo ignorare l'errore?

14
Erik van de Ven

Anziché digitare manualmente le regole, è possibile utilizzare iptables per aggiungere le regole alle catene appropriate e quindi salvarle. Ciò ti consentirà di eseguire il debug delle regole in tempo reale, confermando che sono corrette, anziché doverle aggiungere al file come sembra che tu stia facendo.

Per aprire la porta 80 faccio questo:

$ Sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ Sudo /etc/init.d/iptables save

L'ultimo comando salverà le regole aggiunte. Questa è la regola che vorrei utilizzare per aprire la porta per il traffico web.

Perché la tua regola sta causando problemi

Se noti la regola che stai tentando di utilizzare:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Ha una catena chiamata "RH-Firewall-1-INPUT". Se non si dispone di questa catena o di un collegamento dalla catena INPUT a questa catena, questa regola non sarà mai raggiungibile. Questa regola potrebbe probabilmente essere così:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Oppure la tua catena INPUT dovrebbe collegarsi a questa catena RH-Firewall-1-INPUT con una regola come questa:

$ 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
....

NOTA: Puoi vedere quali catene hai con questo comando:

$ Sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

Inoltre, potrebbe essere necessario modificare gli stati in modo da consentire anche le connessioni esistenti.

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Anche quando usi -A passa a aggiungere la regola alla catena INPUT. Se ci sono altre regole che stanno bloccando e/o interferendo con il raggiungimento di questa regola, non verrà mai eseguita. Quindi potresti voler spostarlo verso l'alto inserendo anziché aggiungendo, in questo modo:

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Utilizzo della GUI

I firewall possono essere bestie complicate. Quindi potresti voler provare la TUI (le TUI sono le GUI per il terminale).

$ Sudo system-config-firewall-tui

È quindi possibile scorrere le varie schermate impostando le regole iptables.

ss #1

ss #2

Riferimenti

28
slm

Se desideri modificare le impostazioni del firewall ma non hai familiarità con iptables, ti suggerisco di utilizzare system-config-firewall-tui strumento se non hai un server X, usa system-config-firewall, che è lo strumento GUI per questo.

0
ludiegu

Di recente ho installato CentOS 6.5 come macchina virtuale per lo stesso motivo, da utilizzare come server Web virtuale. Ad ogni modo, ho seguito questo how-to molto dettagliato dal wiki CentOS . Quindi, secondo la risposta di @slm, ho aggiunto la porta 80 e salvato usando Sudo /etc/init.d/iptables save.

iptables -L -v ha questo output:

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