phong2335/splunk_lab
GitHub: phong2335/splunk_lab
基于 Docker 容器化部署分布式 Splunk 企业级 SIEM 系统,集成多源日志采集、MITRE ATT&CK 检测规则和 Telegram 告警的完整安全监控实验平台。
Stars: 0 | Forks: 0
## 1. 架构图

## 2. 部署
### 2.1 Ubuntu Server 上的配置
- 此机器将运行 Docker,其中包含 5 个容器:Search Head、Indexer、Cluster Master、Deployment Server。
[docker-compose.yml](docker-compose.yml)
docker-compose up -d #启动所有容器的命令
docker-compose exec <服务名称> bash #进入特定容器 cli 的命令
docker-compose stop #暂停容器
docker-compose down #关闭所有容器
- 在防火墙上开放必要的端口
sudo ufw allow 8000,8001,8089,8090,9997,9998/tcp
sudo ufw allow 514/udp
- 在 cluster master 上进行配置,访问集群上的 splunk Web 界面。
- 创建 manager node(master node),进入 Setting →


- 创建索引 `win_sec` `win_sys` `win_app` `sysmon` `nix_auth` `nix_sys` `pfsense`
docker exec -u splunk splunk-master bash -c 'cat < /opt/splunk/etc/master-apps/_cluster/local/indexes.conf
[win_sec]
repFactor = auto
homePath = \$SPLUNK_DB/win_sec/db
coldPath = \$SPLUNK_DB/win_sec/colddb
thawedPath = \$SPLUNK_DB/win_sec/thaweddb
[win_app]
repFactor = auto
homePath = \$SPLUNK_DB/win_app/db
coldPath = \$SPLUNK_DB/win_app/colddb
thawedPath = \$SPLUNK_DB/win_app/thaweddb
[sysmon]
repFactor = auto
homePath = \$SPLUNK_DB/sysmon/db
coldPath = \$SPLUNK_DB/sysmon/colddb
thawedPath = \$SPLUNK_DB/sysmon/thaweddb
[nix_auth]
repFactor = auto
homePath = \$SPLUNK_DB/nix_auth/db
coldPath = \$SPLUNK_DB/nix_auth/colddb
thawedPath = \$SPLUNK_DB/nix_auth/thaweddb
[nix_sys]
repFactor = auto
homePath = \$SPLUNK_DB/nix_sys/db
coldPath = \$SPLUNK_DB/nix_sys/colddb
thawedPath = \$SPLUNK_DB/nix_sys/thaweddb
[pfsense]
repFactor = auto
homePath = \$SPLUNK_DB/pfsense/db
coldPath = \$SPLUNK_DB/pfsense/colddb
thawedPath = \$SPLUNK_DB/pfsense/thaweddb
EOF'
- 将此 Cluster Master 上的索引推送到各个 Indexer,进入 **Configuration Bundle Actions** 并点击 Push,或输入以下命令
docker exec -u splunk splunk-master /opt/splunk/bin/splunk apply cluster-bundle --answer-yes -auth admin:Admin@123
### 2.2 UF Ubuntu 上的配置
- 下载适用于 Linux 的 `.deb` Splunk Universal Forwarder 文件
sudo dpkg -i splunkforwarder-*.deb
sudo /opt/splunkforwarder/bin/splunk start --accept-license
sudo /opt/splunkforwarder/bin/splunk enable boot-start
- 指向 DS
/opt/splunkforwarder/bin/splunk set deploy-poll 192.168.60.20:8090
- 配置 input.conf 和 output.conf
- 打开文件 `/opt/splunkforwarder/etc/system/local/outputs.conf`
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
server = 192.168.60.20:9997, 192.168.60.20:9998
- 打开文件 `/opt/splunkforwarder/etc/system/local/inputs.conf`
[monitor:///var/log/auth.log]
disabled = false
index = nix_auth
sourcetype = sys_log
- 授予 UF 读取系统文件的权限
sudo chmod 644 /var/log/auth.log
### 2.3 Windows 10 UF 上的配置
- 安装 sysmon,下载配置 `sysmonconfig-export.xml`
- 安装 Splunk Universal Forwarder for Windows
- 指向 DS 机器
cd "C:\Program Files\SplunkUniversalForwarder\bin"
splunk.exe set deploy-poll 192.168.60.20:8090
- 配置 Input.conf 和 output.conf
- `C:\Program Files\SplunkUniversalForwarder\etc\system\local\outputs.conf`
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
server = 192.168.60.20:9997, 192.168.60.20:9998
- `C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf`
[WinEventLog://Security]
disabled =0
index = win_sec
sourcetype = WinEventLog:Security
[WinEventLog://System]
disabled =0
index = win_sys
sourcetype = WinEventLog:System
[WinEventLog://Application]
disabled =0
index = win_app
sourcetype = WinEventLog:Application
[WinEventLog://Microsoft-Windows-Sysmon/Operational]
disabled =0
index = sysmon
sourcetype = WinEventLog:Microsoft-Windows-Sysmon/Operational
### 2.3 下载并配置 pfsense
- 下载 pfsense 的 iso 文件,可以进入此页面快速下载
[https://pinguin.dinus.ac.id/iso/pfSense/iso/](https://pinguin.dinus.ac.id/iso/pfSense/iso/)
- 创建 FreeBSD 虚拟机并载入 pfsense 的 iso 文件
- 安装 2 个网卡
- Adapter 1:设置为 Bridged 模式(作为 WAN 端口 - 用于连接 Internet 并与 Docker 机器通信)。
- Adapter 2:设置为 LAN Segment/Host-only 模式(作为 LAN 端口 - 用于管理其他虚拟机)。
- 安装完成后,pfsense 将分配 WAN IP 以便访问 Web 界面,默认的用户名和密码为 `admin` 和 `pfsense`

- 在 Web 界面上进行配置

- 取消勾选这 2 个选项,因为它们会阻止来自物理机的数据

- 配置日志转发(Syslog):
- 进入 Status > System Logs > Settings。
- 向下滚动到 Remote Logging Options 部分。
- 勾选 Enable Remote Logging。
- 在 Remote log servers 处,输入 Heavy Forwarder 的 IP 地址和端口 514
- 选择需要发送的日志内容(Firewall Events 和 System Events)。
### 2.4 配置 Heavy forwarder 机器
- 创建一个 Ubuntu server 虚拟机并下载 Splunk Enterprise。
- 配置接收来自 pfSense 的日志:
1. 访问 HF 的 Web 界面。
2. 进入 Settings > Data Inputs > UDP。
3. 点击 New,输入端口 `514`,选择 Sourcetype 为 `syslog`。
- 配置将日志转发至 Indexers (Docker):
1. 进入 Settings > Forwarding and receiving。
2. 在 Configure forwarding 部分,点击 Add new。
3. 输入 Docker 中各个 Indexer 的地址:`192.168.60.20:9997`,`192.168.60.20:9998`。
4. 保存。现在来自 pfSense 的日志将经过 HF 进行处理,然后再发送到各个 Indexer。
标签:AMSI绕过, Cloudflare, Cluster Master, Deployment Server, Docker, Docker Compose, Indexer Cluster, IT运维, MITRE ATT&CK, OpenCanary, pfSense, Search Head, Socks5代理, Syslog, Telegram告警, 仪表盘, 分布式系统, 告警规则, 响应大小分析, 威胁检测, 子域名变形, 安全信息与事件管理, 安全运营, 安全防御评估, 容器化部署, 扫描框架, 插件系统, 搜索引擎爬取, 数据包嗅探, 数据模型, 无线安全, 日志收集, 流量嗅探, 网络安全, 网络安全审计, 请求拦截, 防火墙, 隐私保护, 集中配置管理