configuring-pfsense-firewall-rules

配置 pfSense 防火墙规则、NAT 策略、VPN 隧道和流量整形,以强制实施网络分段(network segmentation)、 控制流量,并保护企业及中小型企业环境中的内部网络区域。

9 stars

Best use case

configuring-pfsense-firewall-rules is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

配置 pfSense 防火墙规则、NAT 策略、VPN 隧道和流量整形,以强制实施网络分段(network segmentation)、 控制流量,并保护企业及中小型企业环境中的内部网络区域。

Teams using configuring-pfsense-firewall-rules should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/configuring-pfsense-firewall-rules/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/configuring-pfsense-firewall-rules/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/configuring-pfsense-firewall-rules/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How configuring-pfsense-firewall-rules Compares

Feature / Agentconfiguring-pfsense-firewall-rulesStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

配置 pfSense 防火墙规则、NAT 策略、VPN 隧道和流量整形,以强制实施网络分段(network segmentation)、 控制流量,并保护企业及中小型企业环境中的内部网络区域。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 配置 pfSense 防火墙规则

## 适用场景

- 部署边界或内部防火墙(firewall)以分段和保护网络区域(DMZ、内部、访客、IoT)
- 创建细粒度访问控制规则,限制 VLAN 和网络分段之间的流量
- 配置 NAT 规则,将端口转发到暴露于互联网的内部服务
- 使用 IPsec 或 OpenVPN 建立站点到站点或远程访问 VPN 隧道
- 实施流量整形和带宽管理以满足服务质量(QoS)需求

**不适用于**:替代单个系统上的基于主机的防火墙、无专用硬件加速的 SSL/TLS 深度包检测,或作为不配合 IDS/IPS 的唯一安全控制。

## 前置条件

- pfSense 2.7+ 安装在专用硬件或虚拟机上,至少有两个网络接口
- 访问 pfSense WebConfigurator(默认:https://192.168.1.1)
- 显示所有接口、VLAN 和期望流量流向的网络拓扑图
- 为每个网络区域规划好 DNS 和 DHCP 配置
- 了解 TCP/IP、NAT 和有状态防火墙概念

## 工作流程

### 步骤 1:配置网络接口和 VLAN

访问 pfSense WebConfigurator 并定义接口:

```
导航:Interfaces > Assignments

WAN 接口(igb0):
  - 类型:来自 ISP 的 DHCP 或静态 IP
  - 阻止私有网络:启用
  - 阻止 bogon 网络:启用

LAN 接口(igb1):
  - IPv4:10.10.1.1/24
  - 描述:CORPORATE_LAN

创建 VLAN:
  导航:Interfaces > VLANs > Add
  - igb1 上的 VLAN 10:DMZ(10.10.10.1/24)
  - igb1 上的 VLAN 20:SERVERS(10.10.20.1/24)
  - igb1 上的 VLAN 30:GUEST(10.10.30.1/24)
  - igb1 上的 VLAN 40:IOT(10.10.40.1/24)

分配 VLAN:
  导航:Interfaces > Assignments > 为每个 VLAN 添加
  启用每个接口并分配网关 IP
```

### 步骤 2:为每个区域配置 DHCP 和 DNS

```
导航:Services > DHCP Server

CORPORATE_LAN(10.10.1.0/24):
  范围:10.10.1.100 - 10.10.1.200
  DNS:10.10.20.10(内部 DNS 服务器)
  网关:10.10.1.1

DMZ(10.10.10.0/24):
  范围:10.10.10.100 - 10.10.10.200
  DNS:10.10.20.10
  网关:10.10.10.1

GUEST(10.10.30.0/24):
  范围:10.10.30.100 - 10.10.30.200
  DNS:1.1.1.1, 8.8.8.8(仅公共 DNS)
  网关:10.10.30.1

导航:Services > DNS Resolver
  在除 GUEST 外的所有接口上启用 DNS Resolver
  启用 DNSSEC
  配置向上游 DNS 服务器转发
```

### 步骤 3:创建防火墙规则别名

```
导航:Firewall > Aliases

RFC1918_Networks:
  类型:网络
  值:10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16

WebPorts:
  类型:端口
  值:80, 443

ManagementPorts:
  类型:端口
  值:22, 3389, 5900

CriticalServers:
  类型:主机
  值:10.10.20.10, 10.10.20.11, 10.10.20.12

BlockedCountries:
  类型:URL 表
  URL: https://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone
  更新:每 24 小时
```

### 步骤 4:按区域实施防火墙规则

```
导航:Firewall > Rules

=== WAN 规则 ===
# 默认阻止所有入站(隐式拒绝)
# 允许已建立/相关流量(pfSense 有状态模式下自动处理)

# 允许入站到 DMZ Web 服务器(通过 NAT)
动作:Pass | 接口:WAN | 协议:TCP
来源:任意 | 目标:WAN 地址 | 端口:80, 443
描述:允许 HTTP/HTTPS 到 DMZ Web 服务器

=== LAN 规则 ===
# 允许 LAN 访问内部服务器
动作:Pass | 接口:LAN | 协议:TCP
来源:LAN net | 目标:SERVERS net | 端口:WebPorts, 3306, 5432
描述:允许 LAN 访问内部 Web 和数据库服务器

# 允许 LAN 访问互联网
动作:Pass | 接口:LAN | 协议:任意
来源:LAN net | 目标:! RFC1918_Networks
描述:允许 LAN 访问互联网(通过 RFC1918 排除阻止 VLAN 间流量)

# 阻止 LAN 到 IoT(在隐式允许前明确拒绝)
动作:Block | 接口:LAN | 协议:任意
来源:LAN net | 目标:IOT net
描述:阻止 LAN 到 IoT 的直接通信

=== DMZ 规则 ===
# 允许 DMZ Web 服务器查询内部 DNS
动作:Pass | 接口:DMZ | 协议:TCP/UDP
来源:DMZ net | 目标:10.10.20.10 | 端口:53
描述:允许 DMZ DNS 查询到内部解析器

# 仅允许 DMZ 访问互联网进行更新
动作:Pass | 接口:DMZ | 协议:TCP
来源:DMZ net | 目标:任意 | 端口:80, 443
描述:允许 DMZ 出站 HTTP/HTTPS 进行更新

# 阻止所有其他 DMZ 流量
动作:Block | 接口:DMZ | 协议:任意
来源:DMZ net | 目标:任意
描述:DMZ 默认拒绝

=== GUEST 规则 ===
# 仅允许访客访问互联网(DNS 和 Web)
动作:Pass | 接口:GUEST | 协议:TCP/UDP
来源:GUEST net | 目标:! RFC1918_Networks | 端口:53, 80, 443
描述:仅允许访客访问互联网

# 阻止所有访客到内部的流量
动作:Block | 接口:GUEST | 协议:任意
来源:GUEST net | 目标:RFC1918_Networks
描述:阻止访客访问所有内部网络

=== IOT 规则 ===
# 允许 IoT 访问特定云端点
动作:Pass | 接口:IOT | 协议:TCP
来源:IOT net | 目标:! RFC1918_Networks | 端口:443, 8883
描述:允许 IoT HTTPS 和 MQTT 到云端

# 阻止 IoT 设备间通信
动作:Block | 接口:IOT | 协议:任意
来源:IOT net | 目标:IOT net
描述:防止 IoT 横向移动

# 阻止 IoT 到所有内部网络
动作:Block | 接口:IOT | 协议:任意
来源:IOT net | 目标:RFC1918_Networks
描述:阻止 IoT 访问内部
```

### 步骤 5:配置 NAT 规则

```
导航:Firewall > NAT > Port Forward

# DMZ 中的 Web 服务器
接口:WAN | 协议:TCP
目标:WAN 地址 | 端口:443
重定向目标 IP:10.10.10.50 | 端口:443
NAT 反射:启用
描述:HTTPS 到 DMZ Web 服务器

# SSH 跳板机(非标准端口)
接口:WAN | 协议:TCP
目标:WAN 地址 | 端口:2222
重定向目标 IP:10.10.20.11 | 端口:22
描述:通过端口 2222 SSH 到内部跳板机

导航:Firewall > NAT > Outbound
模式:混合出站 NAT
# 添加规则使 DMZ 服务器使用专用公网 IP
接口:WAN | 来源:10.10.10.0/24
转换地址:<dedicated_public_ip>
描述:DMZ 通过专用 IP 出站 NAT
```

### 步骤 6:启用日志记录和监控

```
导航:Status > System Logs > Settings
  远程日志:启用
  远程日志服务器:10.10.20.15:514(Syslog/SIEM)
  记录防火墙默认阻止:启用

导航:Firewall > Rules
  在关键规则上启用日志记录:
  - 所有 BLOCK 规则
  - WAN 入站 PASS 规则
  - VLAN 间 PASS 规则

导航:Diagnostics > pfTop
  监控实时连接状态和带宽使用

安装 pfBlockerNG 包:
  导航:System > Package Manager > Available Packages
  安装 pfBlockerNG-devel
  配置 IP 黑名单(Spamhaus DROP、Emerging Threats)
  配置 DNSBL 进行恶意软件域名阻断
```

### 步骤 7:备份和测试配置

```bash
# 导出配置备份
导航:Diagnostics > Backup & Restore
下载 XML 配置文件

# 从每个区域测试规则
# 从 LAN:
curl -I https://10.10.20.10  # 应成功(LAN 到 SERVERS)
curl -I https://10.10.40.5   # 应失败(LAN 到 IOT 被阻止)

# 从 GUEST:
curl -I https://www.google.com  # 应成功(互联网访问)
curl -I https://10.10.20.10     # 应失败(访客到内部被阻止)

# 从 DMZ:
nslookup google.com 10.10.20.10  # 应成功(允许 DNS)
ssh 10.10.1.50                    # 应失败(DMZ 到 LAN 被阻止)

# 验证日志记录
导航:Status > System Logs > Firewall
检查被阻止和通过的流量是否正确记录

# 计划自动配置备份
导航:Diagnostics > AutoConfigBackup
启用自动备份到 Netgate 云或本地存储
```

## 核心概念

| 术语 | 定义 |
|------|------------|
| **有状态防火墙(Stateful Firewall)** | 跟踪网络连接状态的防火墙,自动允许已建立会话的返回流量,无需明确规则 |
| **别名(Alias)** | pfSense 中 IP 地址、网络或端口的命名组,简化规则管理并提高可读性 |
| **NAT(网络地址转换)** | 内部和外部网络之间的 IP 地址转换,包括入站访问内部服务的端口转发 |
| **浮动规则(Floating Rules)** | 同时跨多个接口应用的 pfSense 规则,在每接口规则之前处理 |
| **pfBlockerNG** | 集成 IP 信誉黑名单和基于 DNS 的黑名单进行自动威胁阻断的 pfSense 包 |
| **规则处理顺序** | pfSense 在每个接口标签内从上到下评估规则;第一个匹配优先,未匹配的流量默认被阻止 |

## 工具与系统

- **pfSense 2.7+**:基于 FreeBSD 的开源防火墙和路由器平台,具有 Web 管理和丰富的包生态系统
- **pfBlockerNG**:用于自动化威胁情报集成的 IP 和 DNS 黑名单包
- **Snort/Suricata 包**:作为 pfSense 包提供的 IDS/IPS 集成,用于内联流量检查
- **OpenVPN/IPsec**:内置 VPN 实现,用于站点到站点和远程访问连接
- **Netgate AutoConfigBackup**:pfSense 灾难恢复的基于云的配置备份服务

## 常见场景

### 场景:使用 pfSense 为小型企业网络分段

**场景背景**:一家医疗实践机构需要对其网络进行分段以满足 HIPAA 要求。他们有一个互联网连接、一台电子健康记录(EHR)服务器、员工工作站、访客 WiFi 网络和医疗 IoT 设备(生命体征监护仪、影像设备)。预算限制要求使用开源解决方案。

**方法**:
1. 在 Netgate 4100 设备上部署 pfSense,配备四个物理接口(WAN、LAN、DMZ、MGMT)
2. 为员工(VLAN 10)、EHR 服务器(VLAN 20)、访客 WiFi(VLAN 30)和医疗设备(VLAN 40)创建 VLAN
3. 配置严格规则:员工 VLAN 只能通过 HTTPS 访问 EHR 服务器;医疗设备只能通过特定端口与 EHR 服务器通信;访客 WiFi 获得仅互联网访问权限,无内部路由
4. 使用医疗行业特定威胁源和恶意软件域名阻断启用 pfBlockerNG
5. 配置出站 NAT,防止内部 IP 地址泄露到互联网
6. 启用全面日志记录,通过 syslog 将所有防火墙日志转发到 SIEM
7. 设置自动配置备份并记录规则库以供审计合规

**常见陷阱**:
- 创建过于宽松的规则("allow any any")而非基于特定端口的规则
- 忘记规则处理顺序——将宽泛的 PASS 规则放在特定 BLOCK 规则之上
- 关键规则未启用日志记录,导致事件调查无法进行
- 允许 IoT 设备不受限制地访问互联网,创造潜在的数据外泄路径

## 输出格式

```
## pfSense 防火墙配置报告

**设备**: pfSense 2.7.2(Netgate 4100)
**接口**: WAN (igb0), LAN (igb1), DMZ (igb2), MGMT (igb3)
**VLAN**: 已配置 4 个(员工、服务器、访客、IoT)
**总规则数**: 所有接口共 28 条活跃规则

### 各接口规则摘要

| 接口 | Pass 规则 | Block 规则 | 已启用日志 |
|-----------|-----------|-------------|-----------------|
| WAN | 2 | 1(默认) | 是 |
| LAN | 4 | 2 | 是(阻止) |
| DMZ | 3 | 1(默认) | 是 |
| GUEST | 1 | 2 | 是 |
| IOT | 1 | 3 | 是 |

### 安全控制
- pfBlockerNG:12 个 IP 黑名单 + 已启用 DNSBL
- Snort IDS:在 WAN 和 LAN 接口上运行
- VPN:已配置带 MFA 的 OpenVPN 远程访问
- 日志:所有流量转发至 SIEM(10.10.20.15)
```

Related Skills

performing-web-application-firewall-bypass

9
from killvxk/cybersecurity-skills-zh

使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。

performing-threat-hunting-with-yara-rules

9
from killvxk/cybersecurity-skills-zh

使用 YARA 模式匹配规则在文件系统和内存转储中狩猎恶意软件、可疑文件和入侵指标。 涵盖规则编写、yara-python 扫描以及与威胁情报源的集成。

implementing-siem-correlation-rules-for-apt

9
from killvxk/cybersecurity-skills-zh

编写多事件关联规则,通过链接跨主机的 Windows 身份验证事件、进程执行遥测和网络连接日志, 检测高级持续性威胁(APT)的横向移动。使用 Splunk SPL 和 Sigma 规则格式, 在滑动时间窗口内关联事件 ID 4624、4648、4688 和 Sysmon 事件 1/3, 以发现单一事件检测无法识别的攻击序列。

implementing-semgrep-for-custom-sast-rules

9
from killvxk/cybersecurity-skills-zh

使用 YAML 编写自定义 Semgrep SAST 规则,以检测应用程序特定漏洞、执行编码标准并集成到 CI/CD 管道中。

implementing-next-generation-firewall-with-palo-alto

9
from killvxk/cybersecurity-skills-zh

配置和部署 Palo Alto Networks 下一代防火墙(NGFW),实现 App-ID 应用识别、User-ID 用户身份、基于区域的策略、SSL 解密以及威胁防御配置文件,为企业网络安全提供全面保护。

implementing-network-segmentation-with-firewall-zones

9
from killvxk/cybersecurity-skills-zh

使用防火墙安全区域、VLAN、ACL 和微分段(Microsegmentation)策略设计并实施网络分段,以限制横向移动(Lateral Movement)并强制执行最小权限网络访问。

implementing-ics-firewall-with-tofino

9
from killvxk/cybersecurity-skills-zh

部署和配置Belden/Hirschmann的Tofino工业防火墙,利用深度包检测(DPI)保护SCADA系统和PLC,支持包括Modbus、EtherNet/IP、OPC和S7comm在内的OT协议,在ICS安全区域之间强制执行精细化访问控制。

implementing-gcp-vpc-firewall-rules

9
from killvxk/cybersecurity-skills-zh

实施和审计 GCP VPC 防火墙规则,强制执行网络分段,限制入站和出站流量,在整个组织范围内应用分层防火墙策略,并使用 VPC 流日志监控防火墙规则有效性。

implementing-cloud-waf-rules

9
from killvxk/cybersecurity-skills-zh

部署和调优 AWS WAF、Azure WAF 和 Cloudflare 上的 Web 应用防火墙规则,保护云托管应用免受 OWASP Top 10 攻击。详细介绍配置托管规则集、创建业务逻辑保护自定义规则、实施速率限制、部署机器人管理,以及通过规则调优和日志分析减少误报。

implementing-aws-config-rules-for-compliance

9
from killvxk/cybersecurity-skills-zh

实施 AWS Config 规则,对 AWS 资源进行持续合规监控,部署符合 CIS 和 PCI DSS 框架的托管和自定义规则,使用 SSM Automation 配置自动修复,并在多账户之间聚合合规数据。

detecting-email-forwarding-rules-attack

9
from killvxk/cybersecurity-skills-zh

检测攻击者创建的恶意邮件转发规则,以维持对邮件通信的持久访问,用于情报收集和商业电子邮件入侵(BEC)攻击。

detecting-container-escape-with-falco-rules

9
from killvxk/cybersecurity-skills-zh

使用 Falco 运行时安全规则实时检测容器逃逸尝试,监控系统调用、文件访问和权限提升。