FreeBSD的ipfw firewall_type

我试图在FreeBSD里面创build自己的防火墙脚本,但是我遇到了一些问题,我想知道如果有人做了一些更好的事情,并且能够给我一个例子吗?

 su-3.2#grep ^ firewall /etc/rc.conf 
 firewall_enable =“YES”#设置为YES启用防火墙function
 firewall_type = “的/ etc / ipfw.rules”
 firewall_quiet =“YES”#设置为YES以禁止规则显示
 firewall_logging =“YES”#设置为YES以启用事件logging
 firewall_logdeny =“YES”#设置为YES以logging默认拒绝传入
 su-3.2#cat /etc/ipfw.rules 
 $ {fwcmd}添加65000通过所有从任何任何
 su-3.2#/etc/rc.d/ipfw restart
 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable设置为YES。
 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable设置为YES。
 /etc/rc.d/ipfw:DEBUG:run_rc_command:doit:ipfw_stop 
 net.inet.ip.fw.enable:1  - > 0
 /etc/rc.d/natd:DEBUG:checkyesno:natd_enable设置为NO。
 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable设置为YES。
 /etc/rc.d/ipfw:DEBUG:run_rc_command:start_precmd:ipfw_prestart 
 /etc/rc.d/ipfw:DEBUG:checkyesno:dummynet_enable设置为NO。
 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_nat_enable设置为NO。
 /etc/rc.d/ipfw:DEBUG:load_kld:已加载的ipfw内核模块。
 /etc/rc.d/ipfw:DEBUG:run_rc_command:doit:ipfw_start 
 /etc/rc.d/natd:DEBUG:checkyesno:natd_enable设置为NO。
第1行:错误的命令`$ {fwcmd}'
防火墙规则加载。
 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_logging设置为YES。
启用防火墙logging。
 net.inet.ip.fw.enable:0从远程主机XXXXX.XXX读取:通过对等方重置连接
连接到XXXXX.XXXclosures。
 mbp:〜alexus $ 

丢失${fwcmd} 。 您的文件被提供给ipfw作为参数。

 ipfw [-cfnNqS] [-p preproc [preproc-flags]] pathname 

为了简化configuration,可以将规则放入使用ipfw处理的文件中,如最后一个提要行所示。 必须使用绝对path名。 该文件将逐行读取并作为参数应用于ipfw实用程序。

尝试运行ipfw /etc/ipfw.rules

提示:您应该从rc.d脚本(例如:/usr/local/etc/rc.d/ipfw.sh)向IPFWinput规则,不要使用/etc/ipfw.rules,这是不灵活的

基本上,做什么gleb说。

如果你想在rc.conf指定一个脚本,你应该重命名你的文件,并使用类似于: firewall_script="/etc/ipfw.conf"

有关更多信息,请参阅/etc/defaults/rc.conf

还需要定义${fwcmd} ; 通常是这样的:

 fwcmd="/sbin/ipfw" 

在这里看到更多的信息: http : //www.freebsd.org/doc/en/books/handbook/firewalls-ipfw.html