¿No puede acceder al puerto 80 desde una ubicación remota pero funciona en local?

14

Tengo un servidor Linux en configuración con apache. Sin embargo, no puedo acceder a él usando una computadora remota.

Puedo ssh al servidor normalmente.

mi tabla de 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

usando Curl SERVERIP:80y curl localhost:80, ambos devuelven la página predeterminada de apache.

¿Cual podría ser el problema?

DucDigital
fuente

Respuestas:

26

Debe habilitar el acceso a su servidor en el puerto 80 ya que iptables lo está bloqueando actualmente.

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

Esto insertará la regla en su configuración de iptables al comienzo. Una vez que haya hecho esto y haya probado que funciona, debe guardar la configuración para que se use la próxima vez que se inicie el servicio,

sudo /sbin/service iptables save

esto escribirá la configuración actual en /etc/sysconfig/iptables.

Si usa CentOS 7, FirewallD es el camino correcto:

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

Verifique con su navegador que funciona y luego:

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

firewall-cmd --reload

Para hacer cambios permanentes

Iain
fuente
1

Sus reglas de iptables solo permiten conexiones entrantes en el puerto 22. Abra también el puerto 80.

Paweł Brodacki
fuente
... y el cmd esiptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik
... lo cual es correcto, pero no funcionará, porque agregará esta regla detrás de la que RECHAZA todas las conexiones entrantes no ACEPTADAS anteriormente.
Paweł Brodacki
Es cierto, solo estoy acostumbrado a agregarlo al archivo de reglas en la posición correcta, olvidé mencionarlo. iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, luego el anterior, luego agregue la regla de denegar todo coniptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik
0

También puede usar el servicio http predeterminado directamente

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

Edmond Chui
fuente