GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come aprire la porta HTTP ( 80 ) in Iptables su CentOS

Firewall Iptables

Recentemente stavo configurando un server web su centos con nginx e php. L'installazione di nginx andava bene, ma la porta http del sistema non era accessibile dall'esterno.

Questo perché centOS per impostazione predefinita ha alcune regole del firewall iptables attive. Solo la porta ssh (22) era accessibile e la shell remota funzionava. Quindi è necessario aprire la porta 80 affinché il server web come nginx funzioni.

Iptables è il firewall su Linux che può essere configurato per accettare o rifiutare il traffico di rete in base a vari tipi di set di regole a livello di pacchetto. Quindi è necessario configurare questo firewall per abilitare le connessioni sulle porte di rete.

Controlla le regole di Iptables

Ci sono 2 modi per configurare iptables per aprire la porta 80. Il primo è usare il comando iptables e il secondo è creare un file di configurazione. Per prima cosa controlla le regole iptables esistenti in vigore. Il comando è abbastanza semplice. Ecco un esempio di output.

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[[email protected] ~]#

Come si può vedere nell'output, c'è una riga REJECT nella catena INPUT alla fine che dice, rifiuta tutto. Tuttavia la riga precedente consente di accettare connessioni ssh in modo che ssh funzioni. È possibile visualizzare un elenco un po' più dettagliato e numerico utilizzando le opzioni v e n insieme all'opzione L

[[email protected] ~]# iptables --line -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      273 22516 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5      271 36456 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 172 packets, 24494 bytes)
num   pkts bytes target     prot opt in     out     source               destination
[[email protected] ~]#

Apri la porta 80 in Iptables

Per accettare connessioni http dobbiamo aggiungere una regola alla riga numero 5 e premere la riga REJECT sotto. Ecco il comando per farlo.

# iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

Il comando precedente aggiungerà una regola alla riga n. 5 che afferma che il firewall dovrebbe accettare le connessioni in entrata sulla porta 80. Controlla di nuovo le regole di iptables.

[[email protected] ~]# iptables --line -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      291 23868 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW,ESTABLISHED
6      286 38524 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 4 packets, 608 bytes)
num   pkts bytes target     prot opt in     out     source               destination
[[email protected] ~]#

Ora abbiamo la nuova regola della porta TCP 80 alla riga #5 e quindi ora la porta http è accessibile dalla rete esterna.

Salva le regole di iptables

Con le nuove regole la porta 80 è ora aperta, tuttavia questa modifica è temporanea e iptables tornerà alle regole precedenti se il server viene riavviato.

Per renderlo permanente emettere il comando iptables save.

[[email protected] ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Le nuove regole vengono salvate nel file /etc/sysconfig/iptables .

Ecco come appare il file:

# Generated by iptables-save v1.4.7 on Fri Oct 25 10:33:46 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [39:6956]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Fri Oct 25 10:33:46 2013

Ora il cambiamento è permanente.

In alternativa puoi modificare direttamente il file di configurazione di iptables e riavviare iptables e la stessa modifica avrà effetto.

[[email protected] ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
[[email protected] ~]#

Conclusione

Questo è stato un rapido esempio di come aprire una determinata porta in iptables per renderla accessibile. Per saperne di più su iptables, controlla le pagine di manuale eseguendo il comando "man iptables" nel tuo terminale, oppure controllalo online qui:

https://linux.die.net/man/8/iptables
Cent OS
  1. Guida per aprire le porte in CentOS

  2. Come aprire le porte su Iptables in un server Linux

  3. Guida per aprire le porte in CentOS

  4. Come modificare la porta SSH in CentOS

  5. Come aprire le porte in Ubuntu e CentOS usando IPtables

Come aprire la porta http 80 in Redhat Linux usando firewall-cmd

Come aprire e chiudere le porte su RHEL 8 / CentOS 8 Linux

Come installare Iptables su CentOS 7

Come abilitare SSH su CentOS

Come configurare Iptables Firewall su CentOS

Come installare Open Web Analytics su CentOS 7