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