Impossibile accedere alla porta 80 da una posizione remota ma funziona su locale?


14

Ho un server Linux in configurazione con apache. Tuttavia, non riesco ad accedervi utilizzando un computer remoto.

Posso ssh al server normalmente.

la mia tabella IP:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP:80                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

utilizzando Curl SERVERIP:80e curl localhost:80, entrambi restituiscono la pagina predefinita da apache.

Quale potrebbe essere il problema?

Risposte:


26

Devi abilitare l'accesso al tuo server sulla porta 80 in quanto è attualmente bloccato da iptables.

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Ciò inserirà la regola nella configurazione di iptables all'inizio. Una volta fatto questo e verificato che funzioni, è necessario salvare la configurazione in modo che venga utilizzata al successivo avvio del servizio,

sudo /sbin/service iptables save

questo scriverà la configurazione corrente su /etc/sysconfig/iptables.

Se usi CentOS 7, FirewallD è la strada giusta da percorrere:

firewall-cmd --zone = public --add-port = 80 / tcp

Verifica con il tuo browser che funzioni, quindi:

firewall-cmd --zone = public --add-port = 80 / tcp --permanent

firewall-cmd - ricaricare

Per rendere permanenti le modifiche


1

Le regole di iptables consentono solo connessioni in entrata sulla porta 22. Apri anche la porta 80.


... e il cmd èiptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik il

... che è corretto, ma non funzionerà, perché aggiungerà questa regola dietro quella che rifiuta tutte le connessioni in entrata non ACCETTATE in precedenza.
Paweł Brodacki,

È vero, sono solo abituato ad aggiungerlo al file delle regole nella posizione corretta, ho dimenticato di menzionarlo. iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, poi il precedente, quindi aggiungi il nega-tutto catchrule coniptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik

0

È inoltre possibile utilizzare direttamente il servizio http predefinito

firewall-cmd --permanent --zone = public --add-service = http

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.