封包過濾器日誌記錄

封包過濾器日誌記錄

我正在運行 OS X Mavericks 並使用“資料包過濾器”防火牆。然而,「pflogd」似乎不可用。

我發現可以建立一個名為 pflog0 的接口,然後使用 tcpdump 來查看 pf 丟棄的封包。但是,我想要一個日誌檔。

我的解決方案是建立一個 launchd plist 並在啟動時建立此介面,啟動 tcpdump (以 root 身分)並將所有內容記錄到 /var/pf.log ;它工作得很好。

不過,我有點擔心 tcpdump 在後台以 root 模式運行一整天,應該嗎?

謝謝

答案1

我不知道 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,請透過檢索其進程 ID 來殺死它:

ps -ef
sudo kill pid

要開啟捕獲文件:

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

答案2

我發現 tcpdump 在偵聽介面時不需要 sudo (沒有特殊選項),我認為它需要...

無論如何,我可以使用 /Library/LaunchDaemons 中的腳本建立接口,並使用 ~/Library/LaunchAgents 中的其他腳本啟動 tcpdump 並啟用日誌記錄。一切正常:)

相關內容