phong2335/splunk_lab

GitHub: phong2335/splunk_lab

基于 Docker 容器化部署分布式 Splunk 企业级 SIEM 系统,集成多源日志采集、MITRE ATT&CK 检测规则和 Telegram 告警的完整安全监控实验平台。

Stars: 0 | Forks: 0

## 1. 架构图 ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/83962aa093114122.png) ## 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 → ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2440a2703b114123.png) ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d63156ab1b114124.png) - 创建索引 `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` ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c76a4522d2114125.png) - 在 Web 界面上进行配置 ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/682d72edc0114127.png) - 取消勾选这 2 个选项,因为它们会阻止来自物理机的数据 ![image.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/206ba09882114129.png) - 配置日志转发(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告警, 仪表盘, 分布式系统, 告警规则, 响应大小分析, 威胁检测, 子域名变形, 安全信息与事件管理, 安全运营, 安全防御评估, 容器化部署, 扫描框架, 插件系统, 搜索引擎爬取, 数据包嗅探, 数据模型, 无线安全, 日志收集, 流量嗅探, 网络安全, 网络安全审计, 请求拦截, 防火墙, 隐私保护, 集中配置管理