edsonencinas/suricata_project
GitHub: edsonencinas/suricata_project
一个在 GCP 免费层上部署 Suricata IDS 并与 Splunk SIEM 集成的完整实验指南,实现网络层入侵检测与安全日志的关联分析。
Stars: 0 | Forks: 0
# 🛡️ Google Cloud Platform (GCP) 免费层上的 Suricata IDS
## 📌 概述
本项目是 **Splunk 和日志源实验 (Splunk and Log Source Lab)** 的扩展,此前 Splunk 已作为 SIEM 部署,并使用专用的日志源 VM 来生成系统日志。
在此阶段,引入 Suricata 作为**基于网络的入侵检测系统 (IDS)**,以提供网络遥测和安全告警。Suricata 监控攻击者与日志源 VM 之间的网络流量,并生成可转发至 Splunk 进行关联分析的告警。
本指南的目标是记录在实验环境中**安装、配置和验证 Suricata** 的过程。
## Suricata GCP 实验架构
```
┌──────────────────────┐
│ Attacker VM │
│ (Kali / Ubuntu) │
│ - Hydra, Nmap, Ping │
└─────────┬────────────┘
│
│ Test Traffic
▼
┌──────────────────────┐
│ Target VM │
│ - SSH enabled │
│ - auth.log │
└─────────┬────────────┘
│
│ Mirrored / Routed Traffic
▼
┌──────────────────────┐
│ Suricata Sensor │
│ Runs: │
│ - IDS │
│ - eve.json output │
└─────────┬────────────┘
│
│ Logs forwarded
▼
┌──────────────────────┐
│ Log Forwarder VM │
│ Splunk Universal │
│ Forwarder sends: │
│ - Suricata logs │
│ - auth.log │
└─────────┬────────────┘
│
│ Indexed events
▼
┌──────────────────────┐
│ Splunk SIEM │
│ - Alerts dashboard │
│ - SPL searches │
│ - Correlation │
└──────────────────────┘
```
## 🎯 目标
- 在专用传感器 VM 上安装 Suricata
- 配置 Suricata 进行数据包捕获
- 启用并更新检测规则
- 使用测试攻击验证检测功能
- 生成用于 SIEM 接收的 IDS 告警
## 🖥️ 环境
- 操作系统: Ubuntu / Debian / Kali Linux
- 权限: Root 或 sudo 权限
- 现有实验环境: 已部署 Splunk Server VM 和 Log Source VM
- Suricata VM 充当专用的网络传感器
## ⚙️ Suricata 分步安装指南
### 1️⃣ 更新系统
```
sudo apt update && sudo apt upgrade -y
```
### 2️⃣ 安装 Suricata
```
sudo apt install suricata -y
```
验证安装:
```
suricata -V
```
### 3️⃣ 识别网络接口
Suricata 必须监听正确的接口才能捕获流量。
```
ip a
```
常见接口名称:
- eth0
- ens4 (GCP VM 常见)
- enp0s3
### 4️⃣ 配置 Suricata
编辑配置文件:
```
sudo nano /etc/suricata/suricata.yaml
```
**4.1 配置 HOME_NET**
设置监控的网络范围:
```
HOME_NET: "[192.168.1.0/24]" #The subnet where the VM belong
```
用于实验测试:
```
HOME_NET: "any"
```
**4.2 配置捕获接口**
找到 `af-packet` 部分并设置您的接口:
```
af-packet:
- interface: eth0
```
将 `eth0` 替换为您的实际接口名称。
### 5️⃣ 更新检测规则
下载并更新 Suricata 规则:
```
sudo suricata-update
```
规则存储在:
```
/var/lib/suricata/rules/
```
### 6️⃣ 启动 Suricata
设置 Suricata 开机自启并启动服务:
```
sudo systemctl enable suricata
sudo systemctl start suricata
```
检查状态:
```
sudo systemctl status suricata
```
### 7️⃣ 验证检测
触发一个已知的测试签名:
```
curl http://testmynids.org/uid/index.html
```
检查告警:
```
cat /var/log/suricata/fast.log
```
成功的告警确认 Suricata 正在检查网络流量。
8️⃣ Suricata 日志文件
日志存储在:
```
/var/log/suricata/
```
关键文件:
| 文件 | 描述 |
| -------------- | ---------------------------- |
| `fast.log` | 人类可读的告警 |
| `eve.json` | 用于 SIEM 接收的 JSON 事件 |
| `suricata.log` | 引擎日志和错误 |
| `stats.log` | 性能统计数据 |
## 📤 转发 Suricata 日志到 Splunk (Universal Forwarder)
本项目建立在早期的 **Splunk 和日志源实验** 基础之上,其中 **Splunk Universal Forwarder (UF)** 已被引入。
有关详细的 UF 安装步骤,请遵循上一个仓库中的说明:
**参考:** ***Splunk and Log Source Lab → Universal Forwarder Installation Guide***
[点击这里](https://github.com/edsonencinas/splunk-log-source-lab.git)
### 1️⃣ 安装 Splunk Universal Forwarder (Suricata VM)
按照早期项目的相同安装步骤,在 Suricata VM 上安装并启动 Splunk Universal Forwarder。
### 2️⃣ 转发 Suricata 日志
将 Suricata 日志添加到 Splunk 监控:
```
sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/eve.json -index suricata -sourcetype suricata:json
sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/fast.log -index suricata -sourcetype suricata:alert
```
## 🧠 这如何扩展 Splunk 实验
之前的 Splunk 和日志源项目专注于基于主机的日志记录。
此扩展增加了网络层检测,从而实现:
- 洞察扫描和暴力破解攻击
- 基于网络的告警
- 在 Splunk 中关联主机日志和 IDS 告警
这模拟了一个真实世界的 SOC 环境,其中 **端点日志和网络遥测数据被一起分析**。
## Suricata GCP 实验架构
```
┌──────────────────────┐
│ Attacker VM │
│ (Kali / Ubuntu) │
│ - Hydra, Nmap, Ping │
└─────────┬────────────┘
│
│ Test Traffic
▼
┌──────────────────────┐
│ Target VM │
│ - SSH enabled │
│ - auth.log │
└─────────┬────────────┘
│
│ Mirrored / Routed Traffic
▼
┌──────────────────────┐
│ Suricata Sensor │
│ Runs: │
│ - IDS │
│ - eve.json output │
└─────────┬────────────┘
│
│ Logs forwarded
▼
┌──────────────────────┐
│ Log Forwarder VM │
│ Splunk Universal │
│ Forwarder sends: │
│ - Suricata logs │
│ - auth.log │
└─────────┬────────────┘
│
│ Indexed events
▼
┌──────────────────────┐
│ Splunk SIEM │
│ - Alerts dashboard │
│ - SPL searches │
│ - Correlation │
└──────────────────────┘
```
## 🎯 目标
- 在专用传感器 VM 上安装 Suricata
- 配置 Suricata 进行数据包捕获
- 启用并更新检测规则
- 使用测试攻击验证检测功能
- 生成用于 SIEM 接收的 IDS 告警
## 🖥️ 环境
- 操作系统: Ubuntu / Debian / Kali Linux
- 权限: Root 或 sudo 权限
- 现有实验环境: 已部署 Splunk Server VM 和 Log Source VM
- Suricata VM 充当专用的网络传感器
## ⚙️ Suricata 分步安装指南
### 1️⃣ 更新系统
```
sudo apt update && sudo apt upgrade -y
```
### 2️⃣ 安装 Suricata
```
sudo apt install suricata -y
```
验证安装:
```
suricata -V
```
### 3️⃣ 识别网络接口
Suricata 必须监听正确的接口才能捕获流量。
```
ip a
```
常见接口名称:
- eth0
- ens4 (GCP VM 常见)
- enp0s3
### 4️⃣ 配置 Suricata
编辑配置文件:
```
sudo nano /etc/suricata/suricata.yaml
```
**4.1 配置 HOME_NET**
设置监控的网络范围:
```
HOME_NET: "[192.168.1.0/24]" #The subnet where the VM belong
```
用于实验测试:
```
HOME_NET: "any"
```
**4.2 配置捕获接口**
找到 `af-packet` 部分并设置您的接口:
```
af-packet:
- interface: eth0
```
将 `eth0` 替换为您的实际接口名称。
### 5️⃣ 更新检测规则
下载并更新 Suricata 规则:
```
sudo suricata-update
```
规则存储在:
```
/var/lib/suricata/rules/
```
### 6️⃣ 启动 Suricata
设置 Suricata 开机自启并启动服务:
```
sudo systemctl enable suricata
sudo systemctl start suricata
```
检查状态:
```
sudo systemctl status suricata
```
### 7️⃣ 验证检测
触发一个已知的测试签名:
```
curl http://testmynids.org/uid/index.html
```
检查告警:
```
cat /var/log/suricata/fast.log
```
成功的告警确认 Suricata 正在检查网络流量。
8️⃣ Suricata 日志文件
日志存储在:
```
/var/log/suricata/
```
关键文件:
| 文件 | 描述 |
| -------------- | ---------------------------- |
| `fast.log` | 人类可读的告警 |
| `eve.json` | 用于 SIEM 接收的 JSON 事件 |
| `suricata.log` | 引擎日志和错误 |
| `stats.log` | 性能统计数据 |
## 📤 转发 Suricata 日志到 Splunk (Universal Forwarder)
本项目建立在早期的 **Splunk 和日志源实验** 基础之上,其中 **Splunk Universal Forwarder (UF)** 已被引入。
有关详细的 UF 安装步骤,请遵循上一个仓库中的说明:
**参考:** ***Splunk and Log Source Lab → Universal Forwarder Installation Guide***
[点击这里](https://github.com/edsonencinas/splunk-log-source-lab.git)
### 1️⃣ 安装 Splunk Universal Forwarder (Suricata VM)
按照早期项目的相同安装步骤,在 Suricata VM 上安装并启动 Splunk Universal Forwarder。
### 2️⃣ 转发 Suricata 日志
将 Suricata 日志添加到 Splunk 监控:
```
sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/eve.json -index suricata -sourcetype suricata:json
sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/suricata/fast.log -index suricata -sourcetype suricata:alert
```
## 🧠 这如何扩展 Splunk 实验
之前的 Splunk 和日志源项目专注于基于主机的日志记录。
此扩展增加了网络层检测,从而实现:
- 洞察扫描和暴力破解攻击
- 基于网络的告警
- 在 Splunk 中关联主机日志和 IDS 告警
这模拟了一个真实世界的 SOC 环境,其中 **端点日志和网络遥测数据被一起分析**。标签:AMSI绕过, EVE JSON, GCP, Google Cloud Platform, Homebrew安装, Hydra, Metaprompt, NIDS, Nmap, PB级数据处理, Suricata, Suricata规则, 入侵检测系统, 威胁检测, 安全实验室, 安全数据湖, 安全运维, 实验环境, 容器化, 插件系统, 流量监控, 现代安全运营, 网络安全, 网络遥测, 虚拟驱动器, 隐私保护