Como detecto solicitações TCP vindas da minha máquina linux sendo interrompidas por um firewall?

1

Eu tenho um aplicativo que está sendo bloqueado por um firewall, mas não está registrando falhas em qualquer tipo de log. Desde então, abri o buraco no firewall, mas existe uma boa maneira de ver qual é o pedido real para que eu possa descobrir por que isso aconteceu em primeiro lugar?

    
por Alex Argo 13.05.2009 / 01:40

5 respostas

3

Is there a good way to see what the actual request is?

Execute um sniffer de rede como o tcpdump ou o wireshark. Você pode capturar o pacote inteiro e ver tudo. Você pode usar o tcpdump para construir capturas para serem analisadas com o wireshark com um comando como este tcpdump -qni eth0 -s 0 -w filename.dmp .

Uma coisa que você pode fazer para facilitar a solução de problemas no futuro é simplesmente executar duas cópias do tcpdump. Defina um para usar a interface interna e outro para usar a interface externa. Adicione filtros para um host específico, se necessário. Observe o tráfego enquanto ele atravessa o computador. Se ele vem de um lado e não sai do outro quando deveria, você pode presumir que o firewall o bloqueou.

    
por 13.05.2009 / 02:11
1

Fazer um wireshark (ethereal) ou tcpdump no seu servidor e no servidor remoto lhe dará uma visão completa do tráfego.

A opção mais fácil, na minha opinião, é permitir o registro em log de quaisquer regras de firewall aplicadas ao servidor que façam a solicitação que você acha que poderia estar bloqueando, ou para rastrear o próprio firewall.

Se tudo isso estiver em equipamento de não produção e você só tiver acesso administrativo ao seu cliente, poderá usar um hub conectado ao lado mais distante do firewall para espelhar todo o tráfego e obter um rastreio wireshark / tcpdump a partir dele.

    
por 13.05.2009 / 02:39
0

Eu usei o comando

netstat -an | grep -i ack

para determinar que havia solicitações TCP parcialmente abertas vindas do meu servidor, mas preciso de uma boa maneira de ver o conteúdo das solicitações. O servidor de destino é uma máquina que roteia chamadas de serviço da web para a máquina apropriada, portanto, preciso de mais informações ainda para determinar qual serviço da web realmente está sendo chamado.

    
por 13.05.2009 / 01:42
0

Se você abriu a porta no firewall, feche-a novamente e ative o registro para esse filtro / proxy. Você deve ser capaz de ver porque o firewall está descartando os pacotes.

    
por 13.05.2009 / 02:05
0

Desde que você tenha controle do firewall ...

Se você quiser registrar os pacotes que foram descartados, configure as regras de log. Algo como:

-A INPUT -i eth0 -p tcp -m limit --limit 3/min -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j LOG --log-prefix "eth0-DROP-DEFLT " --log-tcp-options --log-ip-options 
-A INPUT -i eth0 -p icmp -m limit --limit 3/min -j LOG --log-prefix "eth0-DROP-DEFLT " --log-tcp-options --log-ip-options 
-A INPUT -i eth0 -p udp -m limit --limit 3/min -j LOG --log-prefix "eth0-DROP-DEFLT " --log-tcp-options --log-ip-options 
-A INPUT -i eth0 -m limit --limit 3/min -m state --state INVALID -j LOG --log-prefix "eth0-DROP-DEFLT-INV " --log-tcp-options --log-ip-options 

provavelmente funcionará para você. Modifique conforme apropriado.

(depois de escrever isso eu percebi ... o seu firewall pode não ser o Linux. Espero que seja! :))

    
por 13.05.2009 / 15:07