IPFW本身是FreeBSD内置的,IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。
我们会将firewall的设定写在/etc/rc.firewall中或者写入任何一个文件中,并在/etc/rc.conf中使用firewall_script="/etc/ipfw.rules"来指定要读取的规则文件。每一条设定都是以先入为主(firstmatch wins)的方式来呈现,也就是先符合的规则(rules)为优先。所有进出的封包都会被这些规则过滤,因此我们会尽量减少规则的数量,以加速处理的速度。
在KERNEL中,关于防火墙的设定有下列几条:
不知道怎么编译内核的请参考我的另一篇博文:https://blog.youkuaiyun.com/icquu/article/details/103547394
# 防火墙
options IPFIREWALL
# 支援NAT
options IPDIVERT
# 下面这一行是预设允许所有封包通过,如果没有这一行,就必须在/etc/rc.firewall中设定封包的规则。这条规则内定编号是65535,也就是所有规则的最后一条。如果没有加这一条规则,内定就是拒绝所有封包,只允许规则中允许的封包通过。
options IPFIREWALL_DEFAULT_TO_ACCEPT
# 这一行是让你可以在ipfw中设定要记录哪些封包,如果没有这一行,就算设定了要