我试图在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