15.3 IPFilter(IPF)

IPF(IPFilter,IP 过滤器)是一款开源软件,作者 Darren Reed。以下仅供参考,未经测试。

启用 IPF 防火墙

如果想启用 IPF,可以执行以下命令:

# 复制示例文件作为默认配置规则集文件,否则 ipfilter 启动后会没有规则。示例文件自带的规则不影响使用
# cp /usr/share/examples/ipfilter/ipf.conf.sample /etc/ipf.rules
  • 启动 IPF 防火墙:

# service ipfilter enable   # 设置 ipfilter 在系统启动时自动启动
# service ipfilter start    # 启动 ipfilter 服务
  • 启动 ipnat:

ipnat 是 IPF 的一部分,专门用于处理 NAT 规则的维护。

# cp /usr/share/examples/ipfilter/ipnat.conf.sample /etc/ipnat.rules   # 复制示例文件作为默认配置规则集,否则 ipnat 无法启动
# service ipnat enable   # 设置 ipnat 在系统启动时自动启动
# service ipnat start    # 启动 ipnat 服务

注意

ipfilter 服务重启后,ipnat 也需要重启。

ipf 的管理命令主要用 ipf、ipfstat 和 ipnat,常用操作示例如下:

IPF 命令操作

  1. 启动 IPF 防火墙

相当于 service ipfilter start

  1. 停止 IPF

相当于 service ipfilter stop

  1. 加载规则集文件

从指定文件加载防火墙规则。

  1. 查看所有规则

显示当前加载的所有规则。

  1. 查看详细规则信息

参数说明:

  • i:显示输入规则

  • o:显示输出规则

  • h:显示通过该规则的流量

  • n:显示规则编号

  1. 显示状态表

实时监控 IPF 流量,按 Q 退出。

  1. 清理已加载规则

删除所有已加载的规则。

NAT 操作命令

  1. 加载 NAT 规则

加载 NAT 规则文件。

  1. 汇总 NAT 状态

显示 NAT 的运行状态汇总。

  1. 列表显示 NAT 规则

列出 NAT 规则,h 表示显示通过该规则的流量。

  1. 清理 NAT 规则

删除已加载的 NAT 规则。

IPF 规则说明

  1. 拒绝所有访问

阻止所有流量。

说明:IPF 默认是明示禁止的防火墙,需要明确写规则以阻止访问。

  1. 拒绝所有进入流量

阻止所有入站流量。

参数说明:

  • block:拒绝

  • pass:允许

  • in:入站(out 表示出站)

  • all:等价于 from any to any

地址表示:

  • IP 或网段:如 192.168.1.100192.168.1.0/24

  • any:任意地址

阻止与放行流量

  1. 拒绝所有外部流量

阻止所有从本机发出的外部流量。

  1. 放行回环接口输入流量

允许本机回环接口(lo0)的所有输入流量。

说明:quick 表示匹配规则后立即停止,不再匹配后续规则。

  1. 放行回环接口输出流量

允许本机回环接口的所有输出流量。

TCP/UDP 访问控制

  1. 允许访问服务器特定端口

允许任意外部设备通过 TCP 访问服务器指定端口(SSH、HTTP、HTTPS 等)。

  1. 允许本机访问外部设备特定端口

允许服务器向外访问这些端口。

  1. 允许本机访问 HTTP/HTTPS 并保持状态

访问外部 HTTP/HTTPS 服务,并跟踪连接状态。

  1. DNS/UDP 访问

允许服务器访问 DNS(53 端口)和 DHCP(67 端口)服务器,并保持状态。

ICMP 流量控制

  1. 本机发送 ping 请求

允许本机向外发送 ICMP 回显请求(ping)。

  1. 外部设备 ping 本机

允许外部设备 ping 本机。

  1. 本机 ICMP 回显应答

允许本机回应 ping 请求。

Traceroute 流量

  1. 通过 ICMP traceroute

允许 ICMP 回显应答用于 traceroute。

  1. 通过 UDP traceroute

放行从 192.168.1.184 发出的 UDP 流量,源端口范围 33434-34500,快速处理并保持状态。

端口转发规则(NAT)

  1. 本机端口映射 8080 → 80

将本机 em0 网卡的 8080 端口流量转发到本机 80 端口。

加载规则命令

  1. 清理并加载防火墙规则

参数说明:

  • -Fa:清除所有已加载规则

  • -f:加载指定规则文件

  1. 清理并加载 NAT 规则

参数说明:

  • -CF:清除 NAT 规则

  • -f:加载指定 NAT 规则文件

最后更新于

这有帮助吗?