Pacotes de servidores de log

2

Ei, algumas crianças de script estão travando os servidores de jogos dos meus clientes (que são baseados no Linux). Para oferecer o melhor serviço, estou procurando uma maneira de descobrir quais pacotes os crashers enviam, para que eu possa bloqueá-los mais tarde.

Então, eu preciso de um programa simples, que registrará todos os pacotes enviados ou recebidos de / para o software do servidor, de TODOS os clientes. Como eu disse, o software do servidor de jogos é baseado no Linux (Ubuntu 9.10), então o programa deve suportar o Linux. O software do servidor do jogo não é de código aberto.

Obrigado.

    
por Alon Gubkin 25.02.2010 / 13:56

2 respostas

1

Wireshark vem à mente - ou tshark para a versão console. Ambos devem estar disponíveis nos repositórios Karmic Koala.

Observe que o tráfego all pode significar dezenas, centenas ou milhares de Mb / s, portanto verifique o tráfego médio do servidor e prepare-se para isso (os dados precisam ser armazenados em algum lugar, NÃO em uma rede na mesma interface (caso contrário, você estará gerando um loop infinito de dados)).

Editar: Como o @William diz, se o próprio servidor do jogo estiver travando , os dados podem não ser gravados no disco a tempo; mas nesse caso, eles podem nem ser enviados de outra interface de rede no tempo. Na minha opinião, isso é menos provável do que apenas a falha do aplicativo, mas se for o caso, eu faria isso:

Coloque outro computador com duas NICs na frente do seu servidor, junte-as e capture no host em modo promíscuo (essas interfaces nem precisam ter um endereço IP).

[game server[eth0]]------[[eth1]capturing computer[eth0]]-----[[eth1]your router, the Net etc]

O que estou fazendo aqui: o computador de captura finge que há um único segmento de rede entre o servidor do jogo e o roteador (embora, fisicamente, haja dois). Portanto, o computador de captura verá todo o tráfego entre o servidor do jogo e o roteador, mas o tráfego TCP e UDP em si não é alterado. Agora, mesmo que o servidor do jogo falhe, você ainda terá todo o tráfego precedente.

O método descrito pode retardar um pouco a linha (já que o computador de captura precisa fazer a ponte entre os pacotes), mas, a menos que você esteja lidando com uma taxa de transferência gigabit, isso não deve ser perceptível.

    
por 25.02.2010 / 14:19
0

Você pode usar o tcpdump para registrar os pacotes.

Uma opção direcionada à análise do tráfego pode ser snort ( link ).

    
por 25.02.2010 / 14:39