15.4 ipfirewall(IPFW)
IPFIREWALL(IPFW,IP 防火墙)是由 FreeBSD 项目开发和维护的防火墙软件。
IPFW 作为可加载模块存在于基本系统内核(GENERIC)中。
警告
IPFW 默认包含一条规则,规则号为
65535,不可删除:该规则会阻断所有未匹配的流量。因此,在防火墙配置完成之前,请勿启动 IPFW,以免被阻断在防火墙之外。
服务项
启用系统防火墙设置:
# sysrc firewall_enable="YES" # 参见 https://github.com/freebsd/freebsd-src/blob/main/libexec/rc/rc.d/routing#L387也可以使用以下命令设置 IPFW 防火墙在系统启动时自动启动:
# service ipfw enable # 须重启后生效启动 IPFW 防火墙服务:
# service ipfw start
Firewall rules loaded.
Firewall logging enabled.
ifconfig: interface ipfw0 already exists
Firewall logging pseudo-interface (ipfw0) created.查看 IPFW 防火墙的当前状态:
# service ipfw status
ipfw is enabled其他 RC 配置
设置防火墙策略类型
作用:允许所有访问流量通过。
说明:
如果不设置
open,FreeBSD 默认防火墙规则会是65535: deny ip from any to any,即拒绝所有 IP 流量。功能上等同于执行:
使用
open后,防火墙仍启用,但默认不阻塞流量。
指定防火墙规则文件
作用:设置 IPFW 防火墙规则文件路径。
说明:系统启动时会读取该文件并加载其中的防火墙规则。
启用防火墙日志
作用:开启 IPFW 日志功能,使防火墙能够打印日志信息。
指定日志输出设备
作用:将防火墙日志输出到 ipfw0 伪接口设备。
便于使用 tcpdump 或 ngrep 等工具监控防火墙日志流量。
按上面的配置后的规则:
编辑 /usr/local/etc/ipfw.rules 文件
/usr/local/etc/ipfw.rules 文件指定防火墙规则:
每条规则的基本结构如下:
① 按优先级排序,数字越小优先级越高,可覆盖数字较大的规则。
示例:添加规则 500,用于拒绝并记录所有流量:
写入文本:
或者执行命令
注意
ipfw命令为一次性生效,执行时即时生效,但不会永久保存规则。需要将规则写入指定文件以保持持久化。
设置 IPFW 默认策略为允许所有流量:
显示当前 IPFW 防火墙规则列表:
最后更新于
这有帮助吗?