ipfirewall (IPFW)
Table of Contents
本节内容未经实际测试,仅理论验证通过 请勿直接用于生产环境!建议在测试环境中验证后再用于生产部署
IPFirewall IPFW,IP Firewall 是为 FreeBSD 编写的状态防火墙,也是 FreeBSD 中最早的包过滤软件
- IPFW 支持 IPv4 和 IPv6
- 它由多个组件组成:
- 内核防火墙过滤规则处理器
- 集成的数据包计数设施
- 日志设施
- NAT
- dummynet(4) 流量整形器(通过 dnctl 配置)
- 转发设施
- 桥接设施
- ipstealth 设施
IPFW 最初由 Daniel Boulet 为 BSDI(Berkeley Software Design, Inc.)编写 API 后由 Ugen J. S. Antsilevich 大幅修改并移植到 FreeBSD,当前的 ipfw2 版本由 Luigi Rizzo 于 2002 年夏季为 FreeBSD 重写
IPFW 未包含在 GENERIC 内核中,但以可加载内核模块 ipfw.ko 的形式提供,也可通过内核配置选项 options IPFIREWALL 编译进自定义内核。
作为 FreeBSD 原生防火墙,IPFW 采用基于规则编号的优先级机制。规则编号越小,优先级越高,可覆盖编号较大的规则
- FreeBSD 在 /etc/rc.firewall 中提供了一个样例规则集,定义了几个常见场景的防火墙类型,帮助新手用户生成适合的规则集
- IPFW 提供了强大的语法,进阶用户可用来定制符合特定环境安全要求的规则集
IPFW 默认包含一条规则,规则号为 65535,不可删除,该规则会阻断所有未匹配的流量 可通过内核编译选项 IPFIREWALL_DEFAULT_TO_ACCEPT 或在 /boot/loader.conf 中设置可调参数 net.inet.ip.fw.default_to_accept 来改为允许此默认行为 重启后生效,无法在运行时通过 sysctl 修改。 将默认策略改为 允许 在生产环境中极为危险:任何未显式匹配的流量都会被放行,等同于防火墙形同虚设 此配置仅适用于测试环境,切勿在生产环境中使用 同时,在防火墙配置完成之前,切勿启动 IPFW,以免被阻断在防火墙之外