¿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?

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


1

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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.