15.4 ipfirewall(IPFW)

IPFIREWALL (IPFW,IP 防火墙) 是一款由 FreeBSD 发起的防火墙应用软件,它由 FreeBSD 项目编写和维护。

ipfw 在基本系统的内核(GENERIC)作为可加载模块而存在。

警告

IPFW 默认会有一条规则,规则号为 65535,是不可以删除的:这条规则会把所有流量都切断。故在未配置好防火墙前,请勿启动 IPFW,否则就会面临被阻挡在防火墙之外的麻烦。

服务项

  • 开机自动启动防火墙相应的内核模块:

# sysrc firewall_enable="YES"  # 参见 https://github.com/freebsd/freebsd-src/blob/main/libexec/rc/rc.d/routing#L387

或者

# 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 配置

按上面的配置后的规则:

编辑 /usr/local/etc/ipfw.rules 文件

指定防火墙规则:

每一条规则的结构基本都是:

  • ① 按优先级排序,数字越小优先级越高,可优先覆盖相同的、数字大的规则。

$cmd 500 deny log all from any to any ——> ipfw add 500 deny log all from any to any

注意

ipfw 命令是一次性的,它会在执行时即时生效,但不会永久保存规则。你须写入指定的规则文件。

  • 我们可以把默认拒绝的规则 65535 deny ip from any to any 改成默认允许

  • 查看 ipfw 规则

最后更新于

这有帮助吗?