2012-03-26 19 views
18

Próbowałem filtrować dane wyjściowe tcpdump na podstawie długości pakietów. Ale nie miałem szczęścia.Jak filtrować dane wyjściowe tcpdump na podstawie długości pakietu

To jest proste wyjście dla polecenia;

tcpdump -n -i eth0 dst port 443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0 
E..<[email protected]@.......>K.<.0... 
........9............ 
[email protected] 


17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0 
[email protected]@.......>K.<.0... 
...2............. 
[email protected]:..U 


17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171 
[email protected]@..f....>K.<.0... 
...2............. 
[email protected]:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H... 
.......9.8.......5... .....E.D.3.2...........A...../......... 
...1.........alice.sni.velox.ch. 
.................#.. 


17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0 
[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W 


17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7 
E..;[email protected]@.......>K.<.0... 
...2.....6....... 
[email protected]:..W......0 

chcę zobaczyć pakiety tylko jeśli mają więcej niż 100bytes długość. w tym przypadku tylko trzeci pakiet.

opcje [nop, nop, TS val 7028787 ECR 974439509], długość 171

Mam spojrzał na stronach manuala dla tcpdump, ale nie mógł znaleźć żadnej użytecznej parametr. występuje tutaj wzmianka o "większej długości"; http://www.ethereal.com/docs/man-pages/tcpdump.8.html, ale nie mogłem również użyć tego wyrażenia.

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100 
tcpdump: syntax error 

Dziękuję za pomoc.

Odpowiedz

26

greaterdługość działa, ale trzeba go używać jako część kompletnego wyrażenia filtru, a wyrażenie filtr musi pochodzić po wszystkich flag argumentów wiersza polecenia.

przykład robocza:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100 

Powinna działać - dst port 443 and greater 100 jest pełna ekspresji filtr, który sprawdza, czy pakiety, które są wysyłane do protokołu TCP lub UDP port 443 i które mają całkowitą długość (w tym warstwy łącza, IP, TCP i nagłówki) większy niż 100.

NIE przykład praca:

tcpdump -n -i eth0 dst port 443 -A -x greater 100 

nie będzie działać - w dst w dst port 443 jest traktowany jako początek wyrażenia filtrującego, co oznacza, że ​​i wszystko po nim, tym-A i -x, są traktowane jako część wyrażenia filtrującego, ale -A i -x nie są poprawnymi składnikami wyrażenia filtru. Prawdopodobnie mają one być opcjami wiersza polecenia, więc przed muszą być podane wszystkie argumenty bez flag, w tym składniki wyrażenia filtru.

Powiązane problemy