<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>防火墙 on HiDa</title>
    <link>https://www.0niu.cn/tags/%E9%98%B2%E7%81%AB%E5%A2%99/</link>
    <description>Recent content in 防火墙 on HiDa</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Wed, 23 Sep 2026 13:31:56 +0800</lastBuildDate><atom:link href="https://www.0niu.cn/tags/%E9%98%B2%E7%81%AB%E5%A2%99/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PacketFence 添加额外防火墙策略</title>
      <link>https://www.0niu.cn/posts/packetfence-firewall-custom-rules/</link>
      <pubDate>Wed, 23 Sep 2026 13:31:56 +0800</pubDate>
      
      <guid>https://www.0niu.cn/posts/packetfence-firewall-custom-rules/</guid>
      <description>&lt;p&gt;PacketFence 通过自定义规则文件 iptables-custom.conf.inc 添加额外防火墙策略，以放行 192.168.9.188 访问 TCP 10050（Zabbix Agent）为例。&lt;/p&gt;
&lt;h2 id=&#34;方式使用-iptables-customconfinc&#34;&gt;方式：使用 iptables-custom.conf.inc&lt;/h2&gt;
&lt;p&gt;PacketFence 支持通过自定义规则文件定制 iptables 规则，文件位于：&lt;/p&gt;
&lt;p&gt;/usr/local/pf/conf/iptables-custom.conf.inc&lt;/p&gt;
&lt;p&gt;该文件中的规则会在 PacketFence 自身的防火墙规则之前生效。&lt;/p&gt;
&lt;h3 id=&#34;步骤-1编辑自定义规则文件&#34;&gt;步骤 1：编辑自定义规则文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi /usr/local/pf/conf/iptables-custom.conf.inc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;写入内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;filter&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;FORWARD&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;INPUT&amp;#34; :   [&amp;#34;-s 192.168.9.188/32 -p tcp -m tcp --dport 10050 -j ACCEPT&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; :  []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;mangle&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;PREROUTING&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;INPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;FORWARD&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;POSTROUTING&amp;#34; : []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;nat&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;POSTROUTING&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;PREROUTING&amp;#34; : []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存退出。&lt;/p&gt;</description>
      <content>&lt;p&gt;PacketFence 通过自定义规则文件 iptables-custom.conf.inc 添加额外防火墙策略，以放行 192.168.9.188 访问 TCP 10050（Zabbix Agent）为例。&lt;/p&gt;
&lt;h2 id=&#34;方式使用-iptables-customconfinc&#34;&gt;方式：使用 iptables-custom.conf.inc&lt;/h2&gt;
&lt;p&gt;PacketFence 支持通过自定义规则文件定制 iptables 规则，文件位于：&lt;/p&gt;
&lt;p&gt;/usr/local/pf/conf/iptables-custom.conf.inc&lt;/p&gt;
&lt;p&gt;该文件中的规则会在 PacketFence 自身的防火墙规则之前生效。&lt;/p&gt;
&lt;h3 id=&#34;步骤-1编辑自定义规则文件&#34;&gt;步骤 1：编辑自定义规则文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vi /usr/local/pf/conf/iptables-custom.conf.inc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;写入内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;filter&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;FORWARD&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;INPUT&amp;#34; :   [&amp;#34;-s 192.168.9.188/32 -p tcp -m tcp --dport 10050 -j ACCEPT&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; :  []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;mangle&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;PREROUTING&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;INPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;FORWARD&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;POSTROUTING&amp;#34; : []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &amp;#34;nat&amp;#34; : {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;POSTROUTING&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;OUTPUT&amp;#34; : [],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;#34;PREROUTING&amp;#34; : []
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存退出。&lt;/p&gt;
&lt;p&gt;各参数含义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s 192.168.9.188/32&lt;/code&gt;：源 IP 地址，&lt;code&gt;/32&lt;/code&gt; 表示精确匹配单个 IP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p tcp&lt;/code&gt;：协议类型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-m tcp --dport 10050&lt;/code&gt;：目标端口，Zabbix Agent 默认端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-j ACCEPT&lt;/code&gt;：放行&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;步骤-2重载-packetfence-配置&#34;&gt;步骤 2：重载 PacketFence 配置&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;usr&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;local&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;pf&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;bin&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;pfcmd configreload hard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;hard 模式会完全重载配置，适用于配置发生较大变化时。&lt;/p&gt;
&lt;h3 id=&#34;步骤-3重启-packetfence-防火墙服务&#34;&gt;步骤 3：重启 PacketFence 防火墙服务&lt;/h3&gt;
&lt;p&gt;systemctl restart packetfence-iptables&lt;/p&gt;
&lt;h3 id=&#34;步骤-4验证-iptables-规则是否存在&#34;&gt;步骤 4：验证 iptables 规则是否存在&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -L INPUT -n | grep 10050
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;确认输出中包含类似以下内容：&lt;/p&gt;
&lt;p&gt;ACCEPT     tcp  &amp;ndash;  192.168.9.188  0.0.0.0/0  tcp dpt:10050&lt;/p&gt;
&lt;h2 id=&#34;注意事项&#34;&gt;注意事项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;规则文件中每行一条规则，不要添加多余的空行或注释符号&lt;/li&gt;
&lt;li&gt;如果需要放行网段，将 /32 改为对应的 CIDR 掩码，如 /24&lt;/li&gt;
&lt;li&gt;如果规则未生效，检查 pfcmd configreload 是否报错，以及 systemctl status packetfence-iptables 确认服务已重启&lt;/li&gt;
&lt;li&gt;生产环境建议先在测试环境验证规则不影响 PacketFence 的正常认证流程&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
  </channel>
</rss>
