Przechwycone pakiety z plikiem tcpdump vs. tcpdump>

0

Dlaczego istnieje taka różnica w liczbie pakietów przechwyconych przez tcpdump, gdy dane wyjściowe są zapisywane w konsoli i do pliku?

$ tcpdump
...
1681 packets captured
1681 packets received by filter
0 packets dropped by kernel

vs.

# tcpdump > /root/dump.txt 
...
11 packets captured
12 packets received by filter
0 packets dropped by kernel

W obu przypadkach kończę polecenie za pomocą Ctrl + C po kilku sekundach.

Edytować: Dowództwo tcpdump -w /root/dump.txt przechwytuje również tylko kilka pakietów. To zachowanie jest spójne, próbowałem wiele razy.

Prvaak
źródło
Po pierwszej próbie był po prostu większy ruch. Przy okazji, podczas zapisywania wyjścia tcpdump do pliku, powinieneś użyć -w.
Sami Laine
Próbowałem kilka razy. Wynik jest taki sam jak w -w.
Prvaak
Co próbowałeś? Jak upewniasz się, że dokładnie tyle samo ruchu przepływa dla każdego uruchomienia tcpdump?
Paul
Kiedy uruchamiasz tcpdump, czy zdalnie logujesz się na komputerze z uruchomionym tcpdump, używając na przykład ssh?
@ GuyHarris: Tak, używam ssh. Czuję się głupio. Powód tej różnicy jest całkiem oczywisty :)
Prvaak

Odpowiedzi:

1

Tak, jak zdałeś sobie sprawę, wyjście tekstowe z tcpdump przechodzi przez twoje połączenie ssh do hosta, z którego ssh'ed włączyłeś do maszyny, na której uruchamiasz tcpdump, i zostaje przechwycony przez tcpdump. Z -w, tcpdump nie drukuje niczego w pakiecie, więc nie przechodzi przez przewód (chyba że zapisujesz przechwycenie do pliku w systemie plików zamontowanym z serwera plików, takiego jak NFS lub SMB lub serwer AFP) .

Wireshark i TShark próbują wykryć, że używasz Wiresharka na X11 lub TShark na ssh, a jeśli tak, dostosowujesz filtr przechwytywania pod maską, aby odfiltrować ruch X11 lub ssh do hosta, z którego je uruchamiasz. W przypadku tcpdump możesz chcieć użyć filtra takiego jak

not (host {host from which you're sshing} and port ssh)

lub, jeśli używasz już filtra ORAZ tego filtru z tym, którego używasz, aby odfiltrować ruch SSH.


źródło
SSH jest wykrywany i podawany jedynie jako wskazówka dla Wireshark GTK / QT, a nie tshark.
Lekensteyn