В процессе отладки бота python irc, который не может подключиться, я подумал: «Я знаю, я просто tcpdump и посмотрю, что он делает». Поэтому я запустил tcpdump, как обычно, и он говорит, что он захватывает пакеты, но на самом деле не записывает файл cap.
akraut@lance ~/pcaps $ sudo tcpdump -w pyhole -s 0 "port 6667"
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C17 packets captured
17 packets received by filter
0 packets dropped by kernel
4294966881 packets dropped by interface
akraut@lance ~/pcaps $ ls -la
total 8
drwxr-xr-x 2 akraut akraut 4096 Feb 6 11:50 .
drwxr-xr-x 8 akraut akraut 4096 Feb 6 11:50 ..
akraut@lance ~/pcaps $
networking
filesystems
tcpdump
akraut
источник
источник
eth0
? Если он использует loopback или другой интерфейс, не будет никакого трафика, который будет выгружен в файл.17 packets received by filter
, значит ли это, что он захватил некоторый трафик?Ответы:
Возможно, вы захотите проверить поведение tcpdump с помощью strace, чтобы узнать, делает ли он что-то странное, например chrooting, в gentoo или другом дистрибутиве, который может подойти для двоичных файлов.
источник
/var/lib/tcpdump
. И вот, там лежат все мои файлы шапки.Хорошо, я разгадал тайну. Следуйте за мной, пока мы разгадываем TCPDump от Funtoo и файл Mystery of the Missing pcap .
Я использовал strace, чтобы увидеть, что происходит, и соответствующие строки:
Так...
Эй смотри! Все файлы шапки, которые я пытался создать!
Посмотрев на флаги использования, с которыми по умолчанию собрана tcpdump, я вижу это:
Так почему же так? Моя теория выглядит примерно так:
/var/lib/tcpdump
, затем отбрасывает привилегии root и начинает захват.В результате когда я уточнил
./blah
илиblah
все заработало нормально. Но/tmp/blah
не потому,/var/lib/tcpdump/tmp
что не существует.Отличительной особенностью всего этого является то, что при использовании флага suid для установки tcpdump SetUID вы можете предоставить пользователям доступ с
tcpdump
группой, не предоставляя им sudo или root-доступ. Возможное использование включает блок захвата для ваших сетевых инженеров или исследователей.Я просто хотел бы, чтобы Gentoo / Funtoo получил сообщение об установке, в котором все это сказано.
tl; dr: Gentoo / Funtoo помещает ваши файлы pcap
/var/lib/tcpdump
.источник
Синтаксис правильный: я только что попробовал (хотя и на порту 80), и он сгенерировал файл pcap в текущем рабочем каталоге, учитывая те же параметры, которые вы используете.
Может ли это быть как-то связано с вашим домашним каталогом, который вы пытаетесь записать как root (из-за sudo)? Возможно ли, что вы используете смонтированные по NFS домашние каталоги с root-squashing?
sudo touch ~akraut/pcaps/foo
?Можете ли вы попробовать записать pcap в / tmp / или что-то еще?
источник
sudo tcpdump -w /tmp/blah -s 0 "port 6667"
это выглядит как это работает, но если яsudo su -
первый затем запуститьtcpdump -w /tmp/blah -s 0 "port 6667"
как корень не говорит «Нет такого файла или каталога». Тайна углубляется ...