我正在運行 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 並啟用日誌記錄。一切正常:)