Aprire la porta 80 in CentOS 6.5


14

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.

inserisci qui la descrizione dell'immagine

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?

Risposte:


28

Anziché digitare manualmente le regole, è possibile utilizzare iptablesper 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 INPUTcatena 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 INPUTcatena dovrebbe collegarsi a questa catena RH-Firewall-1-INPUTcon 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

Inoltre, quando usi l' -Ainterruttore, aggiungi 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 iptablesregole.

            ss # 1

            ss # 2

Riferimenti


L'ultima regola ha eliminato tutte le regole precedenti nel mio file iptables e ha aggiunto solo quella sopra (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Ora non riesco più ad accedere alla pagina di Apache dal mio browser.
Erik van de Ven,

1
@ErikVandeVen - mi dispiace non averlo chiarito. Le altre regole che avevi o avrebbero dovuto essere aggiunte nello stesso modo e salvate (al momento del sam), oppure puoi andare al file /etc/sysconfig/iptablese aggiungerle. Le voci originali dovrebbero essere in questo file, /etc/sysconfig/iptables.save.
slm

Grazie, sono stato in grado di ripristinare iptables copiando iptables.save. Ma non ero ancora in grado di aggiungere la regola senza ottenere un errore e allo stesso tempo essere in grado di aprire la pagina di test di Apache nel mio browser. Dò un'occhiata al tutorial che ha pubblicato riclags per primo :)
Erik van de Ven,

1
Amico, non ho capito perché questa risposta abbia ricevuto un singolo come ancora. Ottima risposta dettagliata. Considera il mio come mille grazie.
Samiron,

1
Quella GUI del firewall è una vera manna, mai vista prima!
Matt Fletcher,

0

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 di 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

Se vuoi modificare le impostazioni del tuo firewall ma non hai familiarità iptables, ti suggerisco di usare lo system-config-firewall-tuistrumento se non hai un server X, di usare lo system-config-firewall, che è lo strumento GUI per esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.