O Apache escuta, mas não responde [fechado]

4

Estou trabalhando na configuração do Apache no meu roteador (no qual instalei o Tomato, um pacote de firmware customizado baseado em linux). Eu consegui instalar o Apache, e acredito que o configurei corretamente, mas não consigo obter o padrão "It works!" página para carregar.

Executando o netstat, posso ver o valor no incremento da coluna "Recv-Q" toda vez que tento acessar o arquivo servido pelo navegador, mas é como se o Apache não respondesse ou não ao pedido. Seguir o error_log do Apache também não produz nada.

Alguém vê alguma coisa óbvia, ou tem algumas sugestões de coisas para tentar fazer as coisas funcionarem? Posso fornecer informações adicionais que ajudem?

Exemplo de saída do netstat (veja a quinta entrada com o endereço "::: www":

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 0.0.0.0:domain          0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      
tcp        0      0 localhost:52698         0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:1338            0.0.0.0:*               LISTEN      
tcp        4      0 :::www                  :::*                    LISTEN      
tcp        0      0 :::domain               :::*                    LISTEN      
tcp        0      0 :::ssh                  :::*                    LISTEN      
tcp        0      0 :::telnet               :::*                    LISTEN      
tcp        0      0 localhost:52698         :::*                    LISTEN      
tcp        0      0 :::1338                 :::*                    LISTEN      
udp        0      0 localhost:38032         0.0.0.0:*                           
udp        0      0 0.0.0.0:5038            0.0.0.0:*                           
udp        0      0 0.0.0.0:domain          0.0.0.0:*                           
udp        0      0 0.0.0.0:bootps          0.0.0.0:*                           
udp        0      0 0.0.0.0:60648           0.0.0.0:*                           
udp        0      0 0.0.0.0:49518           0.0.0.0:*                           
udp        0      0 0.0.0.0:38000           0.0.0.0:*                           
udp        0      0 :::domain               :::*                                
raw        0      0 0.0.0.0:255             0.0.0.0:*               255         
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING      13850 /opt/var/apache2/run/cgisock.1325

Conteúdo do error_log do Apache:

[Wed Feb 13 16:05:16 2013] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 13 16:05:16 2013] [notice] Digest: done
[Wed Feb 13 16:05:16 2013] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Wed Feb 13 16:05:16 2013] [info] LDAP: SSL support available
[Wed Feb 13 16:05:16 2013] [info] mod_unique_id: using ip addr 192.168.253.1
[Wed Feb 13 16:05:17 2013] [notice] Apache/2.2.20 (Unix) DAV/2 configured -- resuming normal operations

Atualização: Parece que o firewall está bloqueando as solicitações recebidas, mesmo que eu tenha aberto a porta 80 (e 443).

Mensagens do firewall (informações de endereços removidos, x = local, y = remoto):

Feb 13 16:53:15 UBERnet user.warn kernel: DROP IN=vlan2 OUT= MACSRC=xx:xx:xx:xx:xx:xx MACDST=yy:yy:yy:yy:yy:yy MACPROTO=0800 SRC=yyy.yyy.yyy.yyy DST=xxx.xxx.xxx.xxx LEN=48 TOS=0x00 PREC=0x20 TTL=57 ID=48272 DF PROTO=TCP SPT=43229 DPT=80 SEQ=3727060622 ACK=0 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (0204056404020000) 

iptables -L output:

Chain INPUT (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
shlimit    tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW 
shlimit    tcp  --  anywhere             anywhere            tcp dpt:1338 state NEW 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere            udp spt:bootps dpt:bootpc 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:1337 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:1338 
logdrop    all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 

Chain FORWARD (policy DROP)
target     prot opt source               destination         
           all  --  anywhere             anywhere            account: network/netmask: 192.168.253.0/255.255.255.0 name: lan 
ACCEPT     all  --  anywhere             anywhere            
DROP       all  --  anywhere             anywhere            state INVALID 
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU 
monitor    all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
wanin      all  --  anywhere             anywhere            
wanout     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain logdrop (2 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            state NEW limit: avg 1/sec burst 5 LOG level warning tcp-sequence tcp-options ip-options macdecode prefix 'DROP ' 
DROP       all  --  anywhere             anywhere            

Chain logreject (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere            limit: avg 1/sec burst 5 LOG level warning tcp-sequence tcp-options ip-options macdecode prefix 'REJECT ' 
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset 

Chain monitor (1 references)
target     prot opt source               destination         
RETURN     tcp  --  anywhere             anywhere            WEBMON --max_domains 1000 --max_searches 1000 

Chain shlimit (2 references)
target     prot opt source               destination         
           all  --  anywhere             anywhere            recent: SET name: shlimit side: source 
logdrop    all  --  anywhere             anywhere            recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source 

Atualização: Como uma observação, eu consegui fazer o lighttpd funcionar apenas com o ajuste do iptables, então parece que era um problema específico da configuração do Apache.

    
por Wilco 14.02.2013 / 01:18

3 respostas

2

Na cadeia INPUT do firewall, logdrop line mata sua conexão. É uma cadeia abrangente para eliminar todo o tráfego indesejado. O processamento de regras nunca atinge as regras da web. Você deve mover as regras ACCEPT acima da regra logdrop .

    
por 14.02.2013 / 04:34
1

Algo está errado. O Apache está escutando apenas no IPv6. Você pode alterar o parâmetro Listen no arquivo de configuração do Apache para

      Listen 0.0.0.0:80 

Em seguida, reinicie o Apache. Faça o netstat novamente e certifique-se de que a saída inclua 0.0.0.0:www ou algo ao longo dessas linhas do IPv4.

    
por 14.02.2013 / 01:31
1

Eu não tenho idéia do que pode ser o problema, mas um próximo passo útil pode ser anexar ao processo de escuta (e seus garfos) com strace e dar uma olhada no que está acontecendo quando você tenta se conectar.

strace -o apache.strace -f -p $PID

Coloca o resultado no arquivo apache.strace.

    
por 14.02.2013 / 01:50