servidor apache não escuta na porta 80

servidor apache não escuta na porta 80

Minha estação de trabalho e meu servidor estão no mesmo segmento LAN e podem executar ping um no outro (e posso fazer ssh no servidor a partir da minha estação de trabalho sem problemas).

Fiz uma instalação padrão do Apache no centos 7.

Iniciei o serviço, mas não consigo navegar até meu servidor web a partir da minha estação de trabalho.

A porta 80 do relatório nmap é filtrada.

Desativei o SELinux no servidor, mas a porta ainda está filtrada.

Aqui está o que netstat -l me dá:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7

Estranhamente, netstat -na mostra a porta 80 como escuta, mas para ipv6 (embora eu tenha lido em algum lugar, isso não significa necessariamente que ela também não esteja escutando em ipv4)

Proto Recv-Q Send-Q Local Address           Foreign Address         State
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     64 10.1.1.1:22             10.2.2.2:44939        ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
raw6       0      0 :::58                   :::*                    7

Aqui estão partes relevantes do meu /etc/httpd/conf/httpd.conf (que não modifiquei)

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Files ".ht*">
    Require all denied
</Files>

O serviço parece estar funcionando bem:

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Fri 2015-10-02 08:36:40 EDT; 1h 27min ago
  Process: 23294 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 23302 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─23302 /usr/sbin/httpd -DFOREGROUND
           ├─23303 /usr/sbin/httpd -DFOREGROUND
           ├─23304 /usr/sbin/httpd -DFOREGROUND
           ├─23305 /usr/sbin/httpd -DFOREGROUND
           ├─23306 /usr/sbin/httpd -DFOREGROUND
           └─23307 /usr/sbin/httpd -DFOREGROUND

Por que não está escutando na porta 80?

Responder1

Como Michael Hampton comentou em sua postagem, aposto que seu firewall (iptables) está bloqueando seu tráfego.

Desative-o ( systemctl disable firewalld) ou diga para permitir o tráfego na porta 80 ( firewall-cmd --zone=public --add-port=80/tcp --permanent).

Responder2

O fato de a porta 80 ser filtrada ou não não é relevante para a saída do netstat. Mesmo que o iptables esteja configurado para bloquear a conexão (DROP ou REJECT) com essa porta, você verá que o Apache está escutando a porta 80.

A questão é que o httpd está configurado para escutar AMBOS os endereços IPv4 e IPv6 (0.0.0.0 e ::) e, nesse caso, o netstat mostra apenas o IPv6. A explicação está aqui:

https://bugs.launchpad.net/ubuntu/+source/net-tools/+bug/657270

Resumindo: nesse caso a conexão IPv6 é capaz de atender AMBOS os protocolos e portanto apenas um soquete é aberto. E como apenas um soquete está aberto, apenas um soquete é mostrado na saída do netstat.

Responder3

Verifique as regras do iptables ( iptables-save) e veja se a porta 80 é permitida.

Para fins de teste, você pode fazer service iptables stopou iptables -F.

informação relacionada