ipfw防火墙配置记录

来源:岁月联盟 编辑:zhu 时间:2010-02-09
ipfw防火墙配置记录内容简介:ipfw是BSD系统中重要的防火墙和通信控制工具,在MacOSX中也很好用。先简单贴几个用法,有空再补上: 列出配置表 Java代码 ipfwlist ipfw list 禁用ping,即ICMP协议 Java代码 ipfwadd 3333 denyicmpfromanytoanyviaen0 ipfw add

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

列出配置表

Java代码

  1. ipfw list  


禁用ping,即ICMP协议

Java代码

  1. ipfw add 3333 deny icmp from any to any via en0  

取消,则用

Java代码

  1. ipfw del 3333  


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

Java代码

  1. #!/bin/sh   
  2.   
  3. IPFW='/sbin/ipfw -q'  
  4.   
  5.   
  6. $IPFW -f flush   
  7. $IPFW add 2000 allow ip from any to any via lo*   
  8. $IPFW add 2010 deny log ip from 127.0.0.0/8 to any in   
  9. $IPFW add 2020 deny log ip from any to 127.0.0.0/8 in   
  10. $IPFW add 2030 deny log ip from 224.0.0.0/3 to any in   
  11. $IPFW add 2040 deny log tcp from any to 224.0.0.0/3 in   
  12. $IPFW add 2050 allow log tcp from any to any out   
  13. $IPFW add 2060 allow log tcp from any to any established   
  14. $IPFW add 2070 allow log tcp from any to any 22 in   
  15. $IPFW add 2080 allow log tcp from any to any 80 in   
  16. $IPFW add 2090 allow log tcp from any to any 427 in   
  17. $IPFW add 12190 deny log tcp from any to any  

以上配置规则适合个人web服务器管理,并开启远程ssh登录管理端口。摘自:
http://www.macdevcenter.com/pub/a/mac/2005/03/15/firewall.html

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

Java代码

  1. chmod ug+x Firewall StartupParameters.plist  

Firewall脚本内容如下:

Java代码

  1. . /etc/rc.common   
  2.   
  3. StartService ()   
  4. {   
  5.   if [ "${FIREWALL:=-NO-}" = "-YES-" ]   
  6.   then   
  7.     ConsoleMessage "Starting Firewall"  
  8.     sh /etc/rc.firewall > /dev/null  
  9.   fi   
  10. }   
  11.   
  12. StopService ()   
  13. {   
  14.   ConsoleMessage "Stopping Firewall"  
  15.   /sbin/ipfw -f -q flush   
  16. }   
  17.   
  18. RestartService ()   
  19. {   
  20.   StopService   
  21.   StartService   
  22. }   
  23.   
  24. RunService "${1:-start}" #默认参数为-start  

StartupParameters.plist配置内容如下:

Java代码

  1. {   
  2. Description = "Firewall";   
  3. Provides = ("Firewall");   
  4. Requires = ("Network");   
  5. OrderPreference = "None";   
  6. Messages =   
  7.    {   
  8.    start = "Starting NAT/Firewall";   
  9.    stop = "Stopping NAT/Firewall";   
  10.    };   
  11. }  


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

Java代码

  1. FIREWALL=-YES-  

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

4. 测试

Java代码

  1. /Library/StartupItems/Firewall/Firewall start  

转自: http://willzh.javaeye.com/blog/252362

图片内容