susheel-cybercode/pfsense-ids-ips
GitHub: susheel-cybercode/pfsense-ids-ips
该项目展示了在 pfSense 上部署双引擎 IDS/IPS 并集成 Wazuh SIEM 实现集中化威胁检测与告警的完整方案。
Stars: 0 | Forks: 0
# 使用 Wazuh 实现 pfSense IDS/IPS
[]()
[]()
[]()
使用 **pfSense** 结合 **Snort & Suricata** 进行网络入侵检测/防御的实际 IDS/IPS 部署,并集成 **Wazuh SIEM** 以实现集中化的日志关联和告警。通过使用 Kali Linux 进行真实的攻击模拟验证。
**作者:** SUSHEEL M S | **日期:** 2025年8月23日
## 架构
```
┌──────────────────┐
│ Kali Linux │
│ (Attacker VM) │
│ Nmap / SQLMap / │
│ Hydra / Metasploit│
└────────┬─────────┘
│ Attack Traffic
▼
┌──────────────────────────────────────────────────────────┐
│ pfSense NGFW │
│ (WAN / LAN / OPT1) │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Snort │ │ Suricata │ │
│ │ (IDS/IPS #1) │ │ (IDS/IPS #2) │ │
│ │ VRT Rules │ │ ET Rules │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └───────────┬───────────┘ │
│ │ Logs │
│ ▼ │
│ ┌───────────────────────┐ │
│ │ Wazuh SIEM │ │
│ │ (Log Correlation & │ │
│ │ Alert Dashboard) │ │
│ └───────────────────────┘ │
└──────────────────────────────────────────────────────────┘
│
▼
┌──────────────────┐
│ Internal Network │
│ (Protected) │
└──────────────────┘
```

## 核心亮点
- **双引擎 IDS/IPS** — 在 pfSense 上同时运行 Snort (VRT 规则) 和 Suricata (Emerging Threats),实现分层检测
- **集中化 SIEM** — 所有 pfSense、Snort 和 Suricata 日志均转发至 Wazuh,用于关联和仪表盘可视化
- **经攻击验证** — 针对 Nmap 扫描、SQL 注入 (SQLMap)、暴力破解 和漏洞利用 进行了测试
- **低噪音调优** — 进行规则调优以减少误报,专注于可操作的告警
- **高性价比** — 完全开源的技术栈,可部署在普通硬件上
## 工具与技术
| 层级 | 工具 | 用途 |
|---|---|---|
| Firewall | pfSense | 具有接口规则的下一代防火墙 |
| IDS/IPS | Snort | 基于特征的入侵检测 (VRT 规则) |
| IDS/IPS | Suricata | 高性能 IDS/IPS (Emerging Threats 规则) |
| SIEM | Wazuh | 日志聚合、关联、告警仪表盘 |
| 攻击模拟 | Kali Linux | Nmap, SQLMap, Hydra, Metasploit |
## 攻击模拟与结果
| 攻击 | 工具 | 检测 |
|---|---|---|
| 端口扫描 | Nmap | Snort/Suricata SYN 扫描告警 |
| SQL 注入 | SQLMap | HTTP payload 检查触发 |
| 暴力破解 | Hydra | 重复身份验证失败模式检测 |
| 漏洞利用 | Metasploit | 基于特征的漏洞利用检测 |
所有告警均在 Wazuh 仪表盘中进行关联和可视化。
## 实施步骤
1. 部署 pfSense 虚拟机 — 配置 WAN、LAN 和防火墙基线规则
2. 安装并配置带有 VRT 规则集的 Snort
3. 安装并配置带有 Emerging Threats 规则的 Suricata
4. 部署 Wazuh 服务器并配置来自 pfSense 的日志转发
5. 从 Kali Linux 执行攻击模拟
6. 在 Wazuh 仪表盘中验证告警并调整规则以减少误报
## 复现此实验环境
```
# 1. 安装 pfSense (VirtualBox/Proxmox),配置 WAN/LAN 接口
# 2. 在 pfSense 中启用 Snort 和 Suricata 包
# 3. 加载 Emerging Threats 和 Snort VRT 规则集
# 4. 安装 Wazuh 服务器(推荐使用 Docker)
# 5. 配置 pfSense 将日志转发至 Wazuh
# 6. 从 Kali:nmap -sS 、sqlmap -u 、hydra -l admin ssh
# 7. 在 Wazuh dashboard 中验证告警
```
## 仓库结构
```
pfsense-ids-ips/
├── docs/
│ ├── project_report.pdf # Full project report
│ └── architecture.png # System architecture diagram
├── screenshots/ # 46 screenshots — pfSense, Snort, Suricata, Wazuh
├── project_report.pdf # Report (root copy)
└── README.md
```
## 正式报告
包含详细配置步骤和分析的完整项目报告:
[`docs/project_report.pdf`](docs/project_report.pdf)
## 作者
**Susheel M S** — Cybersecurity | Network Security | SIEM
[GitHub](https://github.com/susheel-cybercode)
标签:CISA项目, IDS/IPS, Metaprompt, PB级数据处理, pfSense, Wazuh, 安全运维, 插件系统, 网络安全, 请求拦截, 隐私保护