0xF477yy/pfsense-firewall-setup
GitHub: 0xF477yy/pfsense-firewall-setup
该项目是一份企业级防火墙与威胁情报部署实验,记录了在虚拟化环境中使用 pfSense 和 pfBlockerNG 搭建、强化并验证边界安全网关的完整过程。
Stars: 0 | Forks: 0
# 企业级防火墙与威胁情报实验:pfSense 与 pfBlockerNG 部署
欢迎使用 **企业级防火墙与威胁情报实验** 仓库。本项目记录了在虚拟化环境中使用 **pfSense** 和 **pfBlockerNG** 部署、配置和验证企业级边界安全网关的全过程。
本项目是在 **ITSimplera Institute** 的 SOC(安全运营中心)实习期间,作为 **第 2 周任务简报** 的一部分完成的。
## 📌 项目目标
* **边界防御**:部署并强化 pfSense 防火墙虚拟设备。
* **威胁情报与过滤**:安装并配置 **pfBlockerNG** 以实现 IP 和 DNS 级别的拦截。
* **地理位置访问控制**:设置 GeoIP 国家/地区拦截(例如,拦截传入/传出至特定高风险或非业务区域(如荷兰或其他特定区域)的流量)。
* **内容与域名过滤**:实施 DNS 黑名单(DNSBL),在 DNS 解析器级别拦截特定域名(例如 `facebook.com`、`chat.com`)。
* **管理界面强化**:实施严格的 WebGUI 访问控制规则,将管理访问权限限制在特定的管理工作站 IP。
* **监控与日志分析**:通过监控实时安全警报和日志来验证配置。
## 🌐 网络拓扑图
下图说明了虚拟化安全实验室的架构。pfSense 防火墙作为默认网关,将 WAN(外部互联网)与 LAN(安全内部沙箱)隔离开来。
```
graph TD
%% Define Styles
classDef wan fill:#f9f,stroke:#333,stroke-width:2px;
classDef lan fill:#bbf,stroke:#333,stroke-width:2px;
classDef fw fill:#f96,stroke:#333,stroke-width:3px;
classDef host fill:#eee,stroke:#333,stroke-width:1px;
%% Nodes
Internet((Internet / WAN)) -->|NAT / DHCP| WAN_Int[pfSense WAN Interface
IP: DHCP from Host Network] subgraph pfSense Firewall VM [pfSense Security Gateway] WAN_Int LAN_Int[pfSense LAN Interface
IP: 192.168.100.1/24] pfBlockerNG[pfBlockerNG Package
GeoIP & DNSBL Engine] WAN_Int <--> pfBlockerNG pfBlockerNG <--> LAN_Int end LAN_Int -->|DHCP / DNS| LAN_Switch[Virtual Internal Switch
Host-Only / Internal Net] subgraph LAN Sandbox [Protected LAN Subnet: 192.168.100.0/24] LAN_Switch --> Client_VM[Windows/Linux Client Workstation
IP: 192.168.100.10
Gateway: 192.168.100.1] LAN_Switch --> Admin_WS[Authorized Management workstation
IP: 192.168.100.50
Gateway: 192.168.100.1] end %% Apply Styles class Internet wan; class Client_VM,Admin_WS,LAN_Switch lan; class pfSenseVM,WAN_Int,LAN_Int,pfBlockerNG fw; ``` ## 🛠️ 技术栈与工具 * **Hypervisor**:Oracle VM VirtualBox / VMware Workstation * **防火墙设备**:pfSense Community Edition (CE) v2.7.x * **威胁源引擎**:pfBlockerNG-devel (v3.2.x) * **威胁数据库**:MaxMind GeoIP Database (GeoLite2) * **客户端工作站**:Windows 10/11 或 Ubuntu Desktop(用于验证测试) ## 🚀 实验实施步骤 以下是部署过程的高级别路线图。有关详细的分步配置和 CLI 命令,请参阅 [设置指南](docs/setup_guide.md)。 ``` ┌──────────────────────────────────────┐ │ 1. Hypervisor Network Configuration │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 2. pfSense installation & WAN/LAN │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 3. Install pfBlockerNG-devel │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 4. GeoIP Country Blocking Rule │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 5. DNSBL Web Filtering Configuration│ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 6. Hardening WebGUI Access Control │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 7. Logging & Verification Testing │ └──────────────────────────────────────┘ ``` ## 🧪 验证与概念证明 ### 1. GeoIP 拦截测试 * **目标**:拦截传入/传出至高风险/指定区域(例如荷兰)的流量。 * **测试方法**:尝试 ping/traceroute/curl 位于目标区域的 IP 段。 * **证据**: * *插入 Ping 命令超时/被防火墙规则拦截的截图。* * *插入显示被拦截数据包的 pfSense 防火墙系统日志(Status > System Logs > Firewall)截图。* ### 2. DNSBL 域名过滤测试 * **目标**:阻止 LAN 上的用户访问 `facebook.com` 和 `chat.com`。 * **测试方法**:执行 `nslookup facebook.com` 并尝试在 Web 浏览器中浏览该站点。 * **预期结果**:DNS 查询解析为 pfBlockerNG 虚拟 IP (VIP)(默认:`10.10.10.1`),并且浏览器显示 pfBlockerNG 自定义拦截页面。 * **证据**: * *插入解析为 10.10.10.1 的 nslookup 命令截图。* * *插入浏览器拦截页面警告“Access Denied by pfBlockerNG DNSBL”的截图。* ### 3. WebGUI 管理界面强化测试 * **目标**:将 HTTPS/HTTP WebGUI 登录访问权限限制在管理工作站(`192.168.100.50`),并拦截所有其他 LAN 客户端。 * **测试方法**: 1. 从管理工作站访问 `https://192.168.100.1`(成功)。 2. 从标准客户端虚拟机访问相同的 URL(被拦截/超时)。 * **证据**: * *插入限制 TCP 端口 443/80 访问的防火墙规则配置截图。* * *插入客户端虚拟机浏览器超时以及显示发往目标端口 443 的被拦截 LAN 数据包的防火墙日志截图。* ## 📂 仓库目录结构 ``` ├── README.md <-- Main Project Overview (This File) ├── docs/ │ ├── setup_guide.md <-- Detailed installation and configuration guide │ └── interview_prep.md <-- Q&A Study Guide for the Internship Viva/Interview └── linkedin_draft.txt <-- Professional LinkedIn post draft for submission ``` ## 🎓 实习验证与提交链接 * **组织**:ITSimplera Institute * **项目发布 (LinkedIn)**:[在此处插入您的 LinkedIn 发布链接] * **文档提交者**:Faizan Ahmad Faiz ## 🛡️ 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请查看 LICENSE 文件。
IP: DHCP from Host Network] subgraph pfSense Firewall VM [pfSense Security Gateway] WAN_Int LAN_Int[pfSense LAN Interface
IP: 192.168.100.1/24] pfBlockerNG[pfBlockerNG Package
GeoIP & DNSBL Engine] WAN_Int <--> pfBlockerNG pfBlockerNG <--> LAN_Int end LAN_Int -->|DHCP / DNS| LAN_Switch[Virtual Internal Switch
Host-Only / Internal Net] subgraph LAN Sandbox [Protected LAN Subnet: 192.168.100.0/24] LAN_Switch --> Client_VM[Windows/Linux Client Workstation
IP: 192.168.100.10
Gateway: 192.168.100.1] LAN_Switch --> Admin_WS[Authorized Management workstation
IP: 192.168.100.50
Gateway: 192.168.100.1] end %% Apply Styles class Internet wan; class Client_VM,Admin_WS,LAN_Switch lan; class pfSenseVM,WAN_Int,LAN_Int,pfBlockerNG fw; ``` ## 🛠️ 技术栈与工具 * **Hypervisor**:Oracle VM VirtualBox / VMware Workstation * **防火墙设备**:pfSense Community Edition (CE) v2.7.x * **威胁源引擎**:pfBlockerNG-devel (v3.2.x) * **威胁数据库**:MaxMind GeoIP Database (GeoLite2) * **客户端工作站**:Windows 10/11 或 Ubuntu Desktop(用于验证测试) ## 🚀 实验实施步骤 以下是部署过程的高级别路线图。有关详细的分步配置和 CLI 命令,请参阅 [设置指南](docs/setup_guide.md)。 ``` ┌──────────────────────────────────────┐ │ 1. Hypervisor Network Configuration │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 2. pfSense installation & WAN/LAN │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 3. Install pfBlockerNG-devel │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 4. GeoIP Country Blocking Rule │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 5. DNSBL Web Filtering Configuration│ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 6. Hardening WebGUI Access Control │ └──────────────────┬───────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 7. Logging & Verification Testing │ └──────────────────────────────────────┘ ``` ## 🧪 验证与概念证明 ### 1. GeoIP 拦截测试 * **目标**:拦截传入/传出至高风险/指定区域(例如荷兰)的流量。 * **测试方法**:尝试 ping/traceroute/curl 位于目标区域的 IP 段。 * **证据**: * *插入 Ping 命令超时/被防火墙规则拦截的截图。* * *插入显示被拦截数据包的 pfSense 防火墙系统日志(Status > System Logs > Firewall)截图。* ### 2. DNSBL 域名过滤测试 * **目标**:阻止 LAN 上的用户访问 `facebook.com` 和 `chat.com`。 * **测试方法**:执行 `nslookup facebook.com` 并尝试在 Web 浏览器中浏览该站点。 * **预期结果**:DNS 查询解析为 pfBlockerNG 虚拟 IP (VIP)(默认:`10.10.10.1`),并且浏览器显示 pfBlockerNG 自定义拦截页面。 * **证据**: * *插入解析为 10.10.10.1 的 nslookup 命令截图。* * *插入浏览器拦截页面警告“Access Denied by pfBlockerNG DNSBL”的截图。* ### 3. WebGUI 管理界面强化测试 * **目标**:将 HTTPS/HTTP WebGUI 登录访问权限限制在管理工作站(`192.168.100.50`),并拦截所有其他 LAN 客户端。 * **测试方法**: 1. 从管理工作站访问 `https://192.168.100.1`(成功)。 2. 从标准客户端虚拟机访问相同的 URL(被拦截/超时)。 * **证据**: * *插入限制 TCP 端口 443/80 访问的防火墙规则配置截图。* * *插入客户端虚拟机浏览器超时以及显示发往目标端口 443 的被拦截 LAN 数据包的防火墙日志截图。* ## 📂 仓库目录结构 ``` ├── README.md <-- Main Project Overview (This File) ├── docs/ │ ├── setup_guide.md <-- Detailed installation and configuration guide │ └── interview_prep.md <-- Q&A Study Guide for the Internship Viva/Interview └── linkedin_draft.txt <-- Professional LinkedIn post draft for submission ``` ## 🎓 实习验证与提交链接 * **组织**:ITSimplera Institute * **项目发布 (LinkedIn)**:[在此处插入您的 LinkedIn 发布链接] * **文档提交者**:Faizan Ahmad Faiz ## 🛡️ 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请查看 LICENSE 文件。
标签:pfSense, 威胁情报, 安全运营中心, 开发者工具, 网络安全, 网络映射, 防火墙, 隐私保护