do-cyber-driod/suricata-ids-lab
GitHub: do-cyber-driod/suricata-ids-lab
一个基于 Suricata 的网络入侵检测实验室,通过模拟 Nmap 端口扫描攻击来实践自定义检测规则的编写与实时告警分析。
Stars: 0 | Forks: 0
# 使用 Suricata IDS 进行网络入侵检测
## 概述
一个网络安全监控实验室,采用部署在 Ubuntu 虚拟机上的 Suricata IDS 构建,并使用 Kali Linux 作为攻击机。模拟了真实的 Nmap 端口扫描攻击,并使用自定义编写的 Suricata 检测规则成功检测,实时生成了 50 个告警。
## 目标
- 在 Ubuntu 虚拟机上部署 Suricata IDS 并配置其监控网络流量
- 编写自定义 Suricata 检测规则以识别端口扫描活动
- 从 Kali Linux 向目标虚拟机模拟真实的 Nmap SYN 扫描
- 通过 Suricata 告警日志检测并分析攻击
## 工具与技术
- **IDS:** Suricata 8.0.3
- **攻击机:** Kali Linux (VM - "Clark Kent")
- **目标机:** Ubuntu Linux (VM - "Luthor-corp")
- **虚拟化:** Oracle VirtualBox 与 NAT Network
- **攻击工具:** Nmap 7.98
- **规则语言:** Suricata 规则语法
## 实验环境配置
- 两台虚拟机通过 VirtualBox NAT Network 连接
- Kali Linux (10.0.2.15) — 攻击者
- Ubuntu/Luthor-corp (10.0.2.4) — 运行 Suricata IDS 的目标机
- 配置 Suricata 监控接口 enp0s3
- 通过 suricata-update 加载了 51,171 条规则
## 自定义检测规则
编写并部署在 /etc/suricata/rules/local.rules 中:
```
alert tcp any any -> $HOME_NET any (msg:"NMAP Port Scan Detected";
flags:S; threshold: type threshold, track by_src, count 20,
seconds 10; sid:9000001; rev:1;)
```
**规则解析:**
- 针对从任何源发往家庭网络的 TCP SYN 数据包触发告警
- 当在 10 秒内检测到来自同一源的 20 个及以上 SYN 数据包时触发
- 自定义签名 ID:9000001
## 攻击模拟
从 Kali Linux (Clark Kent) 向 Luthor-corp 发起了 Nmap SYN 扫描:
```
sudo nmap -sS 10.0.2.4
```
这在 6 秒内跨越 1000 个端口发送了 SYN 数据包 ——
符合自动化侦察活动的特征。
## 检测结果
Suricata 通过 fast.log 实时检测到了该攻击:
```
07/02/2026-23:59:44 [] [1:9000001:1] NMAP Port Scan Detected
[] [Priority: 3] {TCP} 10.0.2.15:64334 -> 10.0.2.4:259
```
**生成的告警总数:50**
- 源 IP:10.0.2.15 (Kali - Clark Kent)
- 目标 IP:10.0.2.4 (Ubuntu - Luthor-corp)
- 协议:TCP
- 检测规则:自定义规则 sid:9000001
## 截图
### Suricata 告警 - 检测到 NMAP 端口扫描 (fast.log)

### 告警数量 - 50 次检测

### local.rules 中的自定义规则

## 经验总结
- 如何在 Linux 系统上部署和配置 Suricata IDS
- 如何使用规则语法编写自定义 Suricata 检测规则
- Nmap SYN 扫描在网络层和 IDS 日志中的表现形式
- 如何设置阈值以在捕获真实攻击的同时避免告警疲劳
- SOC 分析师将如何识别和处理侦察活动
- 基于签名的检测与异常检测之间的区别
## 认证
- CompTIA Security+ (SY0-701) — 2026年5月
# suricata-ids-lab
标签:CTI, Metaprompt, Nmap, Suricata, 插件系统, 攻击模拟, 流量监控, 现代安全运营, 网络安全, 虚拟驱动器, 隐私保护, 驱动签名利用