Mac Os ipfw 防火墙配置

ipfw是BSD系统中重要的防火墙和通信控制工具,在MacOSX中也很好用。先简单贴几个用法,有空再补上:

列出配置表
Java代码

sudo ipfw list  



禁用ping,即ICMP协议

ipfw add 3333 deny icmp from any to any via en0  


取消,则用

sudo ipfw del 3333  



* 续
ipfw重启之后就失效了,为了使每次开机都有效,需要加入到启动服务器中,下面是MacOSX下的一个配置例子:
1. 将ipfw规则写入自定的配置文件,例如/etc/rc.firewall

#!/bin/sh

IPFW='/sbin/ipfw -q'
$IPFW -f flush
$IPFW add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in


以上配置规则是我自己用来将80端口访问转向到8080端口使用,如果需要个人web服务器管理,并开启远程ssh登录管理端口。可参考:
http://www.macdevcenter.com/pub/a/mac/2005/03/15/firewall.html

2. 建立目录/Library/StartupItems/Firewall,并在Firewall中创建两个文件:Firewall和StartupParameters.plist。设置属性:

sudo chmod ug+x Firewall StartupParameters.plist 


Firewall脚本内容如下:

. /etc/rc.common  
  
StartService ()  
{  
  if [ "${FIREWALL:=-NO-}" = "-YES-" ]  
  then  
    ConsoleMessage "Starting Firewall"  
    sh /etc/rc.firewall > /dev/null  
  fi  
}  
  
StopService ()  
{  
  ConsoleMessage "Stopping Firewall"  
  /sbin/ipfw -f -q flush
}  
  
RestartService ()  
{  
  StopService  
  StartService  
}  
  
RunService "${1:-start}"   


StartupParameters.plist配置内容如下:

{  
Description = "Firewall";  
Provides = ("Firewall");  
Requires = ("Network");  
OrderPreference = "None";  
Messages =  
   {  
   start = "Starting NAT/Firewall";  
   stop = "Stopping NAT/Firewall";  
   };  
}  



3. 设置/etc/hostconfig,在最底下增加一行:

FIREWALL=-YES-  


使/Library/StartupItems/Firewall/Firewall的启动脚本能执行启动ipfw服务。

4. 测试

/Library/StartupItems/Firewall/Firewall start 


以上内容来自: http://willzh.iteye.com/blog/252362
并做了小的修改,经测试可用

猜你喜欢

转载自superseven.iteye.com/blog/1337535