PacketFence 添加额外防火墙策略

PacketFence 通过自定义规则文件 iptables-custom.conf.inc 添加额外防火墙策略,以放行 192.168.9.188 访问 TCP 10050(Zabbix Agent)为例。

方式:使用 iptables-custom.conf.inc

PacketFence 支持通过自定义规则文件定制 iptables 规则,文件位于:

/usr/local/pf/conf/iptables-custom.conf.inc

该文件中的规则会在 PacketFence 自身的防火墙规则之前生效。

步骤 1:编辑自定义规则文件

vi /usr/local/pf/conf/iptables-custom.conf.inc

写入内容:

{
   "filter" : {
      "FORWARD" : [],
      "INPUT" :   ["-s 192.168.9.188/32 -p tcp -m tcp --dport 10050 -j ACCEPT"],
      "OUTPUT" :  []
   },
   "mangle" : {
      "PREROUTING" : [],
      "INPUT" : [],
      "FORWARD" : [],
      "OUTPUT" : [],
      "POSTROUTING" : []
   },
   "nat" : {
      "POSTROUTING" : [],
      "OUTPUT" : [],
      "PREROUTING" : []
   }
}

保存退出。

各参数含义:

  • -s 192.168.9.188/32:源 IP 地址,/32 表示精确匹配单个 IP
  • -p tcp:协议类型
  • -m tcp --dport 10050:目标端口,Zabbix Agent 默认端口
  • -j ACCEPT:放行

步骤 2:重载 PacketFence 配置

/usr/local/pf/bin/pfcmd configreload hard

hard 模式会完全重载配置,适用于配置发生较大变化时。

步骤 3:重启 PacketFence 防火墙服务

systemctl restart packetfence-iptables

步骤 4:验证 iptables 规则是否存在

iptables -L INPUT -n | grep 10050

确认输出中包含类似以下内容:

ACCEPT tcp – 192.168.9.188 0.0.0.0/0 tcp dpt:10050

注意事项

  • 规则文件中每行一条规则,不要添加多余的空行或注释符号
  • 如果需要放行网段,将 /32 改为对应的 CIDR 掩码,如 /24
  • 如果规则未生效,检查 pfcmd configreload 是否报错,以及 systemctl status packetfence-iptables 确认服务已重启
  • 生产环境建议先在测试环境验证规则不影响 PacketFence 的正常认证流程