Não é possível acessar a página da Web de LAN externa

2

Eu tenho um servidor web do CentOS 6.0 rodando httpd, mysql, php e Joomla 2.5. Tem um endereço IP público estático. Eu posso acessar a página da Web (que é o console de gerenciamento Joomla) pelo endereço IP perfeitamente de dentro da LAN.

Eu fui para casa e tentei me conectar por trás do meu roteador e não consigo acessar a página da web. Eu posso ping e ssh para o servidor, mas não posso puxar a página com http. Estou usando o Chrome no meu navegador.

Alguma opinião?

Editar:

Esta é a saída de iptables --list :

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-reply
ACCEPT     tcp  --  anywhere             anywhere            multiport dports ftp,ssh,http,https state NEW,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            icmp echo-reply
ACCEPT     tcp  --  anywhere             anywhere            multiport sports ssh,http,https state ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
    
por emhohensee 24.09.2012 / 00:11

3 respostas

0

A resposta foi simples o suficiente. Havia um firewall no caminho. A universidade eu estou em blocos TCP / 80 sem ser explicitamente permitido. Mudei a porta de escuta para algo acima de TCP / 10.000 (que eles não bloqueiam) e funcionou.

    
por 01.05.2013 / 03:50
1

Bem, faz anos que eu tive um problema como este com o Apache, mas muito tempo atrás, quando na idade média da internet, tivemos que recorrer a truques em situações como essa.

O problema básico que tivemos foi o mesmo. Eu tenho um IP público na minha rede, e meu servidor Apache usa um IP privado na LAN, e um balanceador de carga estava encaminhando solicitações para o IP público de volta para uma série de servidores com IPs privados.

Usando o tcpdump, podemos ver que nossos pedidos HTTP estavam chegando ao Apache, mas o Apache não estava respondendo, porque os pedidos estavam chegando ao "IP público", e o Apache não achou que deveria responder àqueles solicitações, porque esse IP não estava em sua tabela de interface local.

O que foi consertado para nós foi trazer o endereço IP público como um alias de IP para a interface de loopback, com uma máscara de rede / 32. ifconfig lo0:1 <IP/32> up como se fosse. Isso permitiu que o Apache acreditasse que deveria responder a essas solicitações.

Você precisa descobrir se suas solicitações externas estão chegando ao seu Apache. Se eles não estão nem mesmo chegando aos servidores, você precisa procurar por firewalls / roteadores / acls. Se você vir as solicitações com tcpdump , mas não no Apache, será necessário consultar iptables . Se você vir as solicitações no Apache, mas o Apache não estiver respondendo a elas, você deverá ter informações no access_log e no error_log que fornecerão uma pista do que está acontecendo.

    
por 24.09.2012 / 05:21
0

Primeiro, gostaria de ver a saída desse comando em casa:

nmap -p 80 <public ip of webserver>

Se nmap disser filtered , existe um problema com algum firewall. Se nmap disser closed , existe um problema com a configuração do seu servidor da Web.

Além disso, achei a saída de iptables --list não muito útil. O comando

iptables --list --verbose

fornece muito mais informação. Veja a primeira regra, por exemplo. Parece que todos os pacotes são aceitos, mas --verbose revela a verdade. Você também pode ver se os pacotes foram descartados com a ajuda de contadores de regras.

Eu tentaria este comando no seu servidor web em seguida:

tcpdump -i eth0 dst port 80

para ver se algum pacote chega ao seu servidor. Certifique-se de usar o nome do dispositivo apropriado aqui.

    
por 23.04.2013 / 17:01