Mac-Osx

如何手動(通過腳本和/或配置文本文件)微調 Mac OS X 中的防火牆?

  • September 26, 2009

我想在我的 Mac OS X 中微調防火牆規則,我的意思是沒有 GUI。

我來自 Linux 世界,習慣於手動微調我的防火牆,完全控制每條規則,在每個 IP 或每個 MAC 的基礎上添加過濾規則等等……

是否有可能(當然,我希望如此)以及如何在 Mac OS X 中滿足這一需求?

我想找到類似於我在 Linux 中非常強大和可靠的“Shorewall”腳本的東西

在此先感謝大家會給我一個小費。

Mac OS X v10.5 實際上有兩個防火牆,ipfw(您可能習慣使用的包過濾防火牆)和 AppFirewall(又名 alf,它過濾試圖偵聽傳入流量的程序)。AppFirewall 是 v10.5 中的新功能,並且是唯一一個 GUI 處理的(除了在高級模式下執行的 OS X Server 上——具有 ipfw 的 GUI)。AppFirewall 不是非常可配置的,它基本上具有程序列表以及是否允許它們偵聽連接。如果要查看其配置,請使用

defaults read /Library/Preferences/com.apple.alf

可以使用sudo defaults write您喜歡的任何其他 plist 編輯器(或文本編輯器,只要文件是 text/xml 格式;如果不是,請使用 `plutil -convert xml1’ 轉換它)來完成編輯。

但是,聽起來您真正想要的是包過濾防火牆。沒問題,兩者都可以並行執行(實際上是串列執行——流量只有在通過兩個防火牆後才能進入)。因此,您可以根據需要繼續配置 ipfw(使用WaterRoof,或建構自己的腳本來配置它並使用 launchd 將其關閉,或其他),而不必擔心干擾正常防火牆。

順便說一句,我突然想到我所說的 GUI 不接觸 ipfw 有一個例外:如果您打開 Internet 共享(在系統偏好設置的共享窗格中),它會啟動 ipfw 以通過地址轉換器轉移數據包。如果你想使用這個功能,我不知道如何使它和手動 ipfw config 和平共處;它的設置根本不可配置。

引用自:https://serverfault.com/questions/49228