Eu tenho um Ubuntu Server 14.04 executando o Apache que está por trás de um firewall corporativo. Isso tem funcionado bem no último mês, mas agora o servidor não está respondendo a solicitações vindas de fora da LAN (encaminhamento de porta feito pelo firewall).
Agora meu pensamento inicial era pensar que algo no apache estava errado, mas quando tento acessar o servidor usando o endereço interno (192.168.8.10), tudo funciona bem.
Quando tento fazer telnet da rede local:
$ telnet 192.168.8.10 80
Trying 192.168.8.10...
Connected to 192.168.8.10.
Escape character is '^]'.
Netstat no servidor está me dando a seguinte saída:
$netstat -n -c | grep "192.168.8.19:80"
tcp 0 0 192.168.8.10:80 192.168.8.250:49728 SYN_RECV
tcp 0 0 192.168.8.10:80 192.168.8.250:49728 SYN_RECV
tcp 0 0 192.168.8.10:80 192.168.8.250:49728 SYN_RECV
tcp 0 0 192.168.8.10:80 192.168.8.250:49728 SYN_RECV
tcp 0 0 192.168.8.10:80 192.168.8.250:49728 SYN_RECV
e quando visito http://192.168.8.10
em um navegador, o netstat produz:
$netstat -n -c | grep "192.168.8.19:80"
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 ESTABLISHED
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 ESTABLISHED
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 ESTABLISHED
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 ESTABLISHED
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 ESTABLISHED
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 FIN_WAIT2
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 FIN_WAIT2
tcp6 0 0 192.168.8.10:80 192.168.8.252:63798 FIN_WAIT2
Agora, quando eu tento isso de fora da LAN, o telnet não se conecta e o navegador apenas expira.
$ telnet 78.xx.xx.245 80
Trying 78.xx.xx.245...
Isso apenas trava indefinidamente, mas o netstat ainda reconhece os pacotes SYN_RECV
.
$ netstat -n -c | grep "192.168.8.19:80"
tcp 0 0 192.168.8.10:80 194.xx.xx.62:52721 SYN_RECV
tcp 0 0 192.168.8.10:80 194.xx.xx.62:52721 SYN_RECV
tcp 0 0 192.168.8.10:80 194.xx.xx.62:52721 SYN_RECV
tcp 0 0 192.168.8.10:80 194.xx.xx.62:52721 SYN_RECV
O teste do navegador não produz nenhuma saída no netstat.
Isso me levou a pensar que o problema era o encaminhamento de porta no firewall. No entanto, quando tentei encaminhar a porta 80 para um servidor Windows, ela funciona perfeitamente bem. Quando eu mudei a porta 80 para ser encaminhado de volta para o servidor Ubuntu, mesmo problema. O fato de que o teste de telnet realmente chega ao servidor através do firewall indica que o firewall não é o problema.
Meu departamento de TI me diz que não houve alterações na configuração do firewall nos últimos dias e que não fiz alterações no servidor. De fato, tentar encaminhar a porta 80 para outra máquina de desktop Ubuntu com o apache rodando produziu os mesmos resultados (não foi possível conectar o navegador e o telnet, apesar da saída netstat).
Outras portas são encaminhadas com êxito para um Windows Server atrás do firewall (e 80 funcionavam quando encaminhadas para o servidor do Windows), portanto, não acho que o problema seja com o ISP. Parece ser apenas um problema com o Ubuntu.
Alguém tem alguma idéia do que isso poderia ser, já que é um grande problema para nós agora?