Não consegue acessar a porta 80 de um local remoto, mas funciona no local?


14

Eu tenho um servidor linux na configuração com apache. No entanto, não consigo acessar usando um computador remoto.

Eu posso ssh para o servidor normalmente.

minha tabela de IPs:

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

using Curl SERVERIP:80e curl localhost:80, ambos retornam a página padrão do apache.

Qual poderia ser o problema?

Respostas:


26

Você precisa habilitar o acesso ao seu servidor na porta 80, pois atualmente está sendo bloqueado pelo iptables.

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

Isto irá inserir a regra na sua configuração do iptables no início. Depois de fazer isso e testar se funciona, salve a configuração para que seja usada na próxima vez em que o serviço for iniciado,

sudo /sbin/service iptables save

isso gravará a configuração atual em /etc/sysconfig/iptables.

Se você usa o CentOS 7, o FirewallD é o caminho certo a seguir:

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

Verifique com seu navegador se ele funciona e depois:

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

firewall-cmd --reload

Para tornar as alterações permanentes


1

Suas regras do iptables permitem apenas conexões de entrada na porta 22. Abra a porta 80 também.


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

... o que está correto, mas não funcionará, porque anexará esta regra atrás da regra que REJEITA todas as conexões de entrada que não foram aceitas anteriormente.
Paweł Brodacki

Isso é verdade, estou acostumado a adicioná-lo ao arquivo de regras na posição correta, esqueci de mencionar. iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, em seguida, o anterior e adicione a regra de negação de tudo comiptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik 17/08/11

0

Você também pode usar o serviço http padrão diretamente

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.