Estatísticas de tráfego por porta de rede

13

Eu tenho duas máquinas com dois aplicativos que conversam entre si em poucas portas de rede (TCP e UDP). Quero contar o tráfego que eles enviam e recebem. Eu preciso não apenas contagem geral, mas estatísticas por máquina por porta por dia. Eu tentei darkstat , mas ele não fornece estatísticas por dia, mas apenas contadores gerais.

Existe outra maneira que eu posso contar esse tráfego (eu posso colocar algum proxy ou gateway entre essas duas máquinas).

    
por pbm 27.06.2012 / 18:16

5 respostas

14

O iptables pode fornecer estatísticas sobre quantas regras cada regra foi acionada, para que você possa adicionar regras de LOG nas portas de interesse (digamos, porta 20 e 80):

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

e depois

iptables -n -L -v

fornecerá o número de pacotes e bytes enviados por essas portas. Claro que você terá que analisar a saída das portas que lhe interessam.

Se você precisar de valores exatos, adicione um -x:

iptables -n -L -v -x
    
por 27.06.2012 / 20:00
2

Você pode adicionar regras de contabilidade à sua configuração do iptables. Estes devem ocorrer antes de você aceitar o tráfego ESTABELECIDO e RELACIONADO ou você perderá a contagem do tráfego que passa. Para contar o tráfego da web, tente uma regra como:

iptables -A INPUT -p tcp --dport 80 

Se você tiver muitos deles, talvez queira criar uma cadeia de contabilidade para poder relatar e zerar contadores de forma isolada de outras cadeias.

O firewall Shorewall permite que você adicione facilmente regras de contabilização ao seu conjunto de regras.

    
por 28.06.2012 / 03:28
0

Não está claro se você precisa usar o IP de destino, mas o vnstat é uma ferramenta útil para registrar o uso de tráfego por interface. Instale-o e execute vnstat -u -i eth0 para cada interface que você deseja monitorar. Para obter o uso por dia, use vnstat -i eth0 -d .

    
por 29.06.2012 / 08:26
0

Não se esqueça de incluir as estatísticas de tráfego de saída.

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443
    
por 15.10.2017 / 01:36
-1

Utilize o tcpdump,

tcpdump -i any -nnn

as saídas do comando acima incluirão o registro de data e hora, os endereços src / dest ip, a porta e o comprimento do pacote. Com essas informações, você pode alcançar seu objetivo facilmente com um roteiro bem escrito.

    
por 28.06.2012 / 14:48