Я использую OS X Mavericks и использую брандмауэр "фильтр пакетов". Однако, похоже, что "pflogd" недоступен.

Я обнаружил, что вы можете создать интерфейс с именем pflog0, а затем использовать tcpdump, чтобы увидеть пакеты, которые pf отбросил. Тем не менее, я хотел бы иметь файл журнала.

Мое решение состояло в том, чтобы сделать launchd plist и создать этот интерфейс при загрузке, запустить tcpdump (как root) и записать все в /var/pf.log; это работает отлично.

Однако я немного обеспокоен тем, чтобы tcpdump работал весь день в режиме root в фоновом режиме, не так ли?

Спасибо

2 ответа2

0

Я не знаю OS X Mavericks, но я проверил его на OS X Mountain (не при загрузке):

Редактировать файл /etc/sudoers

Добавьте следующее, чтобы не спрашивать пароль:

youruser ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump

Запустите tcpdump в фоновом режиме и войдите в систему, чтобы захватить файл (главное здесь - & который заставляет команду работать в фоновом режиме):

sudo tcpdump -i pflog0 -s 0 -B 524288 -w ~/Desktop/myfile.pcap &

Чтобы остановить tcpdump, убейте его, получив идентификатор процесса:

ps -ef
sudo kill pid

Чтобы открыть файл захвата:

tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/myfile.pcap
0

Я обнаружил, что tcpdump не требует sudo при прослушивании интерфейса (без специальных опций), я думал, что это ...

В любом случае, я могу просто создать интерфейс со скриптом в /Library /LaunchDaemons и запустить tcpdump с другим скриптом в ~ /Library /LaunchAgents и включить ведение журнала. Все работает хорошо :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .