HenryCaprinchosa/Enterprise-Edge-Security-pfSense

GitHub: HenryCaprinchosa/Enterprise-Edge-Security-pfSense

基于pfSense高可用集群与Suricata IPS构建的企业级零信任边缘安全架构,消除电商网络单点故障并实现3秒级无缝故障转移。

Stars: 0 | Forks: 0

# 高可用电商网络防御 🛡️ ![pfSense](https://img.shields.io/badge/pfSense-Firewall-red?style=flat-square&logo=pfsense) ![Suricata](https://img.shields.io/badge/Suricata-IPS-orange?style=flat-square) ![OpenVPN](https://img.shields.io/badge/OpenVPN-Secure_Access-blue?style=flat-square&logo=openvpn) ![EVE-NG](https://img.shields.io/badge/EVE--NG-Network_Emulation-lightgrey?style=flat-square) ![Status](https://img.shields.io/badge/Status-Done-green?style=flat-square) 在现代电子商务中,网络边缘的单点故障 (SPOF) 意味着不可接受的停机时间和经济损失。本项目通过实施完全冗余的高可用集群和零信任网络架构,使用严格的开源解决方案来实现企业级安全性,从而消除了 SPOF。 ![Network Topology](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/11ab37ae58103756.png)
*> 所设计环境的逻辑拓扑。* ## 🛠️ 技术栈 * **防火墙与路由:** pfSense * **网络安全:** Suricata, pfBlockerNG, OpenVPN * **审计:** Wireshark, Nmap, iperf3, Netcat, Syslog * **二层网络:** Cisco vIOS L2 * **客户端系统:** Ubuntu MATE 24.04.3 LTS * **服务器系统:** Ubuntu Server 24.04 LTS * **虚拟化环境:** EVE-NG, VMWare Workstation Pro ## ✨ 功能特性 ### 1. Active-Passive HA Cluster (主动-被动高可用集群) * 利用 **CARP** 实现 IP 地址冗余。 * 在专用接口上实现 **pfsync** 机制,以进行持续的状态表 同步。 * **结果:** 在物理主节点发生故障的情况下,备份节点在 3 秒内接管流量,且不会中断活跃的 TCP 会话。 ### 2. Zero Trust Architecture (零信任架构) * 部署 **VLANs (802.1Q)** 以严格隔离流量区域 (LAN, DB, WAN)。 * 配置严格的基于角色的访问控制 防火墙规则,采用 *默认拒绝 (Default Deny)* 策略。 ### 3. Advanced Protection (高级防护) * **Suricata (IPS):** 具备主动威胁阻断能力的深度包检测。 * **pfBlockerNG-devel:** 基于信誉的防护,并在 WAN 接口上对来自高风险国家的流量进行地理封锁。 ### 4. Secure Remote Access (安全远程访问) * 部署使用强加密 (AES-256-GCM) 的 **OpenVPN** 服务器。 * 基于证书的用户认证 (公钥基础设施 - PKI)。 ### 5. Cost Efficiency (成本效益) * 无需昂贵的专有许可即可实现企业级的边缘防护。 ## ⚙️ 实施流程 该环境的创建分为四个不同的工程阶段,从理论设计逐步推进到深度技术实施。 ### 阶段 1: 架构设计与威胁建模 在启动任何虚拟机之前,我先梳理了业务需求。主要目标是保护电子商务边缘免受 SPOF 和外部攻击。我设计了一种依赖 **802.1Q VLANs** 的 **零信任** 拓扑,以严格分隔 WAN、DMZ、LAN 和 DB 区域。 ### 阶段 2: EVE-NG 配置与管理程序设置 本项目需要一个定制构建的、硬件模拟的实验室。在 VMware Workstation Pro 上部署 **EVE-NG** 虚拟机后,我必须手动为节点配置操作系统: * 使用 **WinSCP** 建立与 EVE-NG 底层 Linux 环境的安全连接。 * 创建自定义虚拟硬盘,并将 '.iso' 安装镜像 和 '.vmdk' 虚拟机磁盘 直接传输到管理程序中。 * 严格遵守 EVE-NG 的 QEMU 节点命名约定,以确保模拟器正确识别并启动自定义的 pfSense 和 Linux 节点。 ### 阶段 3: 网络基础设施与高可用性 随着节点成功启动,我构建了核心网络: 1. **二层分段:** 配置 Cisco vIOS 交换机进行 802.1Q Trunking,以便在整个环境中分发 VLAN。 2. **集群初始化:** 部署两台 pfSense 防火墙,即主节点 和备份节点。 3. **冗余:** 在 WAN 和 LAN 接口上使用 **CARP** 协议创建虚拟 IP。为了实现有状态故障转移,我在防火墙之间建立了一条专用的、物理上未标记 的网络链路。我通过此链路配置了 XMLRPC 和 **pfsync**,以实时复制状态表。 ### 阶段 4: 安全加固与零信任实施 最后阶段侧重于将边缘路由器转化为企业级的安全边界: * **访问控制:** 实施严格的 *默认拒绝 (Default Deny)* 防火墙策略,利用基于角色的访问控制 仅允许特定 VLAN 之间的必要流量。 * **入侵防御:** 在 WAN 边缘部署 Suricata IPS。为了使其在虚拟化 'virtio' 环境中工作,我禁用了硬件校验和卸载,并在 *Legacy Mode* 下配置 Suricata 并使用自定义通过列表。 * **威胁情报:** 配置 **pfBlockerNG** 进行地理封锁,以即时丢弃来自高风险地区的流量。 * **安全管理:** 搭建带有公钥基础设施 的 **OpenVPN** 服务器,以确保防火墙只能通过安全的加密隧道进行管理。 ## 📊 概念验证 / 测试 ### 测试 1: 故障转移测试 * **场景:** 模拟在活跃流量期间主 pfSense 节点突然发生硬件故障。 * **结果:** 备份节点成功检测到丢失的 CARP 心跳并承担了主节点角色。故障转移在约 3 秒内发生,并且得益于 'pfsync' 状态复制,活跃的 TCP 会话没有中断。 ![Failover Wireshark Test](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a482b9b5f9103811.png) ![Failover Ping Test](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4c871c2861103827.png)
*> ICMP 流量在约 3 秒内丢失并恢复,且未中断会话。* ### 测试 2: 渗透测试 vs. IPS * **场景:** 从外部 WAN 机器发起激进的 SYN 端口扫描 以绘制边缘网络图。 * **结果:** Suricata 成功检测到扫描签名 并立即在网络层丢弃攻击者的 IP。防火墙进入隐身模式,不返回任何信息。 ![Nmap Port Scan](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/77a8b6a5fa103840.png)
*> 尝试绘制边缘网络图* ![Suricata Alerts](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9610f134c2103851.png) ![Suricata Blok](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/106585a0f6103906.png)
*> Suricata IPS 响应扫描而应用的自动 IP 封锁。* ## 💡 经验总结 * **虚拟化与 IDS/IPS 的细微差别:** 我发现管理程序中的硬件校验和卸载会破坏 Suricata 视角的数据包。我学会了如何在 pfSense 中禁用硬件校验和卸载来解决此问题,从而允许正确的深度包检测。 * **Inline IPS vs Legacy Mode:** 我了解到虚拟化环境中使用的 'virtio' 网络驱动程序要求 Suricata 在带有自定义通过列表 的 Legacy Mode 下运行,而不是 Inline Mode,才能成功丢弃恶意数据包。 * **有状态高可用性:** 对 CARP 如何处理 VIP 选举以及为什么通过专用链路复制状态表 对于无缝用户体验至关重要,有了深入的实际理解。 * **边界威胁情报:** 发现了使用 pfBlockerNG 的计算效率。我了解到直接在边缘丢弃已知的恶意 IP 和整个高风险国家,可以大幅减少深度包检测引擎的处理负载。 * **安全远程访问:** 将公钥基础设施 从理论转化为实践。我学会了如何正确配置利用强加密和基于证书认证的 OpenVPN 服务器,证明管理接口绝不应直接暴露在互联网上。 ## 🚀 未来增强与可扩展性 * **硬件可扩展性:** 虽然本项目是在虚拟环境中建模的,但该架构完全与硬件无关。根据企业规模和网络吞吐量要求,可以通过将其部署在专用的高性能 Netgate 设备或配备专用 NIC 的自定义裸机服务器上,无缝扩展此 pfSense 集群。 * **SIEM 集成:** 部署中心化 SIEM 解决方案,将 Syslog 数据和 Suricata 警报聚合到一个可操作的仪表板中。 * **网络自动化:** 使用 Ansible (基础设施即代码) 自动化 pfSense 集群、VLAN 和防火墙规则的初始部署。 ## 如何运行此项目 本指南提供了分步演练,介绍如何使用 EVE-NG 在本地机器上部署和测试此高可用和零信任环境。 ### 步骤 1: 前置条件与管理程序设置 要运行此实验室,您需要一台至少具有 16GB RAM 并支持虚拟化 (Intel VT-x/AMD-V) 的 CPU 的机器。 1. 下载并安装 **VMware Workstation Pro** (或 VMware Workstation Player)。 2. 从 [EVE-NG 官方网站](https://www.eve-ng.net/) 下载 **EVE-NG Community Edition** OVF/OVA 文件以及 **Windows Integration Pack**。 3. 将 EVE-NG OVA 导入 VMware。 4. **关键:** 在打开虚拟机电源之前,转到 VM 设置 -> 处理器,并勾选:'Virtualize Intel VT-x/EPT or AMD-V/RVI'。这将启用嵌套虚拟化。 5. 打开 EVE-NG 虚拟机电源。记下 CLI 屏幕上显示的 IP 地址(例如 'http://192.168.x.x')。 ### 步骤 2: 上传节点镜像 EVE-NG 需要特定的节点镜像来运行防火墙、交换机和客户端。使用 **WinSCP** 或 **FileZilla** 等 FTP/SCP 客户端连接到您的 EVE-NG 虚拟机(凭据:'root' / 'eve')。 您必须将相应的 '.qcow2' 镜像文件上传到 '/opt/unetlab/addons/qemu/' 中的以下确切目录: * **pfSense:** 'pfsense-2.7.2/' * **Cisco vIOS L2:** 'viosl2-adventerprisek9-m/' * **Ubuntu Server:** 'linux-ubuntu-server/' * **Ubuntu MATE:** 'linux-ubuntu-mate/' *注意:由于许可原因,我无法在此存储库中提供操作系统镜像文件。您必须从各自的供应商处获取。* 所有镜像上传完成后,打开 EVE-NG CLI 并运行修复权限命令。**请勿跳过此步骤:** ``` /opt/unetlab/wrappers/unl_wrapper -a fixpermissions ``` ### 步骤 3: 导入拓扑 1. 打开 Web 浏览器并导航到 EVE-NG IP 地址(凭据:admin/eve)。 2. 从此 GitHub 存储库下载 *Ecommerce_pfSense_HA.unl* 文件。 3. 在 EVE-NG WebGUI 中,点击 **Import** 按钮并上传 *.unl* 文件。 4. 打开导入的实验室。您现在应该能看到完整的可视化拓扑。 ### 步骤 4: 测试环境 1. 右键点击节点并选择 **Start** 以启动环境。 2. pfSense 防火墙需要其配置。我已在此存储库的 *configs/* 文件夹中提供了 XML 备份文件。 3. 打开 EVE-NG 内部 *Admin PC* 的控制台。 4. 在 Admin PC 上打开 Web 浏览器并导航到 pfSense WebGUI: * **Master pfSense:** https://192.168.10.2 * **Backup pfSense:** https://192.168.10.3 * **ROUTER-ISP:** https://100.10.10.1 5. 转到 **Diagnostics -> Backup & Restore** 并上传相应的 *pfsense_master_config.xml*、*pfsense_backup_config.xml* 和 *pfsense_router_isp_config.xml* 文件。防火墙将重新启动。 *如果您在复现此实验室时遇到任何问题,请随时在此存储库中开启一个 Issue!* *本项目用于教育和演示目的。它是作为验证网络工程和网络安全实践技能的工程文档的一部分而准备的。*
标签:802.1Q, AWS, CARP, CISA项目, CTI, DPI, EVE-NG, HA, IPS, Linux服务器, Metaprompt, Nmap, OpenVPN, pfBlockerNG, pfSense, pfsync, RBAC, SPOF消除, Suricata, Ubuntu Server, VLAN隔离, Wireshark, 企业级安全, 入侵防御系统, 冗余设计, 句柄查看, 威胁检测与响应, 威胁猎捕, 插件系统, 故障转移, 流量捕获, 流量监控, 深度包检测, 状态同步, 现代安全运营, 电商网络, 网络仿真, 网络安全, 网络安全分析, 网络拓扑, 虚拟化, 虚拟驱动器, 角色访问控制, 边缘安全, 链路冗余, 防火墙, 隐私保护, 零信任架构, 高可用集群, 默认拒绝策略