FreeBSD ipfw 防火墙类型

FreeBSD ipfw 防火墙类型

我正在尝试在 FreeBSD 中创建自己的防火墙脚本,但遇到了一些问题,我想知道是否有人做了一些更有趣的事情并可以给我举个例子?

su-3.2# grep ^firewall /etc/rc.conf
firewall_enable="YES" # 设置为 YES 以启用防火墙功能
防火墙类型="/etc/ipfw.rules"
firewall_quiet="YES" #设置为YES,则禁止显示规则
firewall_logging="YES" # 设置为 YES 以启用事件日志记录
firewall_logdeny="YES" # 设置为 YES 以记录默认拒绝传入
su-3.2# cat /etc/ipfw.rules
${fwcmd} 添加 65000 传递所有从任意到任意
su-3.2# /etc/rc.d/ipfw 重启
/etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable 设置为 YES。
/etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable 设置为 YES。
/etc/rc.d/ipfw:调试: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:调试: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:调试: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。
防火墙日志已启用。
net.inet.ip.fw.enable: 0从远程主机读取 XXXXX.XXX: 对端重置连接
与 XXXXX.XXX 的连接已关闭。
mbp:~ alexus$

答案1

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

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

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

尝试运行ipfw /etc/ipfw.rules

答案2

提示:您应该从 rc.d 脚本(例如:/usr/local/etc/rc.d/ipfw.sh)输入 IPFW 规则,不要使用 /etc/ipfw.rules ,因为它根本不灵活

答案3

基本上,按照 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

相关内容