Mac OS X: 应用层防火墙(ALF)
History:
Initial: July 26, 2009
简介:
Mac OS X系统拥有多种方式来控制数据从系统传入传出,传统的方式是使用ipfw, 而且有几个开源或者方便使用的配置软件可用,比如NoobProff(适合初级用户) 和WaterRoof(适合高级用户) 。 在10.5系统里面而是建议是用应用层防火墙(Appication Layer Firewall, 简称ALF),也就是在系统偏好的安全的Firewall标签。ALF会对它管理的程序进行Apple数字签名处理,这样程序在每次通过ALF时,ALF 会对该程序和签名匹配,匹配则执行该规则。如果程序本身改变,比如升级,那么ALF签名会不匹配,这样ALF就提示用户确认行为.
下面的命令是卸载和装载该防火墙的命令:
卸载: launchctl unload /System/Library/LaunchAgents/com.apple.alf.useragent.plist launchctl unload /System/Library/LaunchDaemons/com.apple.alf.agent.plist 装载: launchctl load /System/Library/LaunchDaemons/com.apple.alf.agent.plist launchctl load /System/Library/LaunchAgents/com.apple.alf.useragent.plist |
HOME:
ALF的命令和配置家是/usr/libexec/ApplicationFirewall目录,其中三个文件最重要: firewall, socketfilterfw, com.apple.alf.plist.
firewall是防火墙的主守护程序,而socketfilerfw是用户定义的应用程序规则的守护程序, 最后那个文件是ALF的配置文件.
基本的命令:
使用下面命令来控制ALF的行为:
sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 1 |
其中最后的参数可以取0,1,2
0 - 关闭ALF, 允许所有传入的连接
1 - 打开,并对每个程序进行设置
2 - 打开,只准许主要的服务程序,设置对特定服务和应用程序的访问权限
它的默认log文件的存储位置在:/var/log/目录
-t选项来添加一个信任程序, 比如:
/usr/libexec/ApplicationFirewall/socketfilterfw -t /Applications/Safari.app//Contents/MacOS/Safari |
使用-s, -v和-d分别来给程序签名, 检查程序签名和打开调试.
具体的参数可以使用-h来看在线帮助.