Tcpdump - contando pacotes UDP de saída e entrada

Tcpdump - contando pacotes UDP de saída e entrada

É possível tcpdumpcontar (por algum tempo de configuração) o número de pacotes UDP de saída e entrada?

Não tenho muita experiência em tcpdump, então um conselho sobre como fazer isso seria muito útil. Eu li que um timeoutelogio é bom se eu quiser interromper um processo depois de um determinado tempo, então estava pensando em parar tcpdumpdepois do meu tempo.

Mas como posso contar o número de pacotes de saída e de entrada e filtrar apenas os pacotes UDP?

Responder1

Eu não usaria tcpdump(ou tshark) para isso. Em vez disso, eu usaria iptablespara contar os pacotes durante um período de tempo

# Prepare two sets of counters and set up the rules
#
iptables -N udp_in
iptables -N udp_out
iptables -A udp_in
iptables -A udp_out

iptables -A OUTPUT --protocol udp -j udp_out
iptables -A INPUT --protocol udp -j udp_in

Você pode zerar os contadores no início da menstruação assim

# Reset the counters
#
iptables -Z udp_in
iptables -Z udp_out

Você pode ler os contadores no final do seu período assim

# Look at the counters
#
packets_in=$(iptables -nvL udp_in | awk '/all/{print $1}')
packets_out=$(iptables -nvL udp_out | awk '/all/{print $1}')
echo "in=$packets_in, out=$packets_out"

Você pode ler um contador e redefini-lo imediatamente, fornecendo o Zsinalizador ao mesmo tempo. Por exemplo

packets_in=$(iptables -nvLZ udp_in | awk '/all/{print $1}')

Juntando os bits e assumindo que você já criou as cadeias extras de iptables necessárias (veja acima), você pode usar algo assim

# Reset the counters
#
iptables -Z udp_in
iptables -Z udp_out

# Wait 10 seconds
#
period=10
sleep "$period"

# Look at the counters
#
packets_in=$(iptables -nvL udp_in | awk '/all/{print $1}')
packets_out=$(iptables -nvL udp_out | awk '/all/{print $1}')

# Report the results
#
echo "During the last $period seconds we saw $packets_in UDP packet(s) in and $packets_out UDP packet(s) out."

Responder2

man tcpdumpfornece as informações que você precisa. A página da web tcpdump também fornece umpágina de manual.

Logo na DESCRIÇÃO diz que ao tcpdumpfinalizar a captura dos pacotes, ele reporta contagens de pacotes capturados, recebidos pelo filtro e descartados pelo kernel.

A filtragem (que é como você procura apenas pacotes de um determinado tipo) pode ser muito mais difícil, mas a seção EXEMPLOS deve fornecer uma pista suficiente de que o único filtro necessário é udpo seu exemplo.

Então, depois de descobrir o filtro correto, use tcpdumpwith timeoutwhich irá executá-lo pelo tempo definido, kill tcpdump, e você obterá a contagem de pacotes.

timeout 20 tcpdump udp

Isso executará a filtragem tcpdump para udp e eliminará o tcpdump após 20 segundos.

informação relacionada