narendra2602-NET/graylog-lab

GitHub: narendra2602-NET/graylog-lab

基于 Docker 部署的 Graylog SIEM 实验环境,使用 NXLog 收集 Windows 事件日志进行集中安全监控与分析。

Stars: 0 | Forks: 0

# Graylog SIEM 实验环境 ## 项目概述 本项目演示了如何在 Docker 化的 Ubuntu 环境中使用 Graylog 部署和配置集中式安全信息与事件管理(SIEM)平台。该实验的目的是使用 NXLog 代理收集、处理、存储和分析来自终端系统的 Windows 事件日志,并通过 Graylog 仪表板可视化安全事件。 该实验模拟了一个基本的 SOC(安全运营中心)环境,将来自 Windows 系统的日志进行集中化处理,以用于监控、调查和故障排除。 ## 实验架构图 ``` +------------------+ | Windows 11 Host | | NXLog Agent | +---------+--------+ | | GELF TCP/UDP | v +------------------+ | Graylog Server | | Docker Container | +---------+--------+ | | v +------------------+ | OpenSearch | | Log Storage | +------------------+ | v +------------------+ | Graylog Web UI | | Dashboards | +------------------+ ``` ## 前置条件 ### 硬件要求 * 最低 8 GB 内存 (RAM) * 2 个 CPU 核心 * 50 GB 存储空间 ### 软件要求 * Ubuntu Server 22.04 LTS * Docker Engine * Docker Compose * Graylog * OpenSearch * MongoDB * NXLog Community Edition * Windows 11 客户端 ### 网络要求 * Windows 终端与 Graylog 服务器之间的连接 * 防火墙中开放所需端口 | 端口 | 服务 | | ----- | -------------------- | | 9000 | Graylog Web 界面 | | 12201 | GELF 输入 | | 9200 | OpenSearch | | 27017 | MongoDB | ## Docker 部署 ### 更新 Ubuntu ``` sudo apt update && sudo apt upgrade -y ``` ### 安装 Docker ``` sudo apt install docker.io -y sudo systemctl enable docker sudo systemctl start docker ``` ### 验证 Docker 安装 ``` docker --version docker ps ``` ### 部署 Graylog 技术栈 ``` docker compose up -d ``` ### 验证运行中的容器 ``` docker ps ``` 预期容器: * Graylog * OpenSearch * MongoDB ### 访问 Graylog ``` http://:9000 ``` ## Graylog 配置 ### 初始登录 1. 访问 Graylog Web 界面。 2. 使用管理员账户登录。 3. 配置时区和用户偏好。 ### 创建 Input 导航至: ``` System → Inputs ``` 已配置的 Input: * GELF TCP * GELF UDP ### Input 配置 | 设置 | 值 | | ------------------- | -------- | | 绑定地址 | 0.0.0.0 | | 端口 | 12201 | | 接收缓冲区大小 | 默认 | | TLS | 已禁用 | ### 验证消息接收 导航至: ``` Search → Messages ``` 确认正在接收来自 Windows 终端的日志。 ## NXLog 配置 ### 安装 NXLog 在 Windows 终端上安装 NXLog Community Edition。 ### 配置日志收集 已收集的事件日志: * Security * System * Application * PowerShell Operational * Windows Defender ### 配置 Output 模块 示例: ``` Module om_udp Host Port 12201 OutputType GELF ``` ### 重启 NXLog 服务 ``` Restart-Service nxlog ``` ### 验证代理状态 ``` Get-Service nxlog ``` ## 日志来源 以下 Windows 日志来源已集成到 Graylog 中: ### 安全日志 示例: * 成功登录 (4624) * 失败登录 (4625) * 账户锁定 * 权限提升事件 ### 系统日志 示例: * 服务启动/停止事件 * 驱动程序事件 * 系统关机 * 系统重启 ### 应用程序日志 示例: * 应用程序崩溃 * 软件错误 * 服务故障 ### PowerShell 日志 示例: * 脚本执行 * 命令历史记录 * 管理员活动 ### Windows Defender 日志 示例: * 恶意软件检测 * 威胁清除 * 扫描结果 ## 日志示例 ### 成功登录事件 ``` { "EventID": 4624, "Level": "Information", "Source": "Microsoft-Windows-Security-Auditing" } ``` ### 失败登录事件 ``` { "EventID": 4625, "Level": "Warning", "Source": "Microsoft-Windows-Security-Auditing" } ``` ### PowerShell 执行事件 ``` { "EventID": 4104, "Channel": "PowerShell" } ``` ## 仪表板 Graylog 仪表板已配置为可视化安全事件和系统活动。 ### 仪表板小组件 * 消息总数 * 消息速率 * 热门事件 ID * 日志来源 * 失败登录尝试 * PowerShell 活动 * Windows Defender 事件 ### 仪表板的优点 * 实时监控 * 安全事件可见性 * 集中式日志分析 * 更快的事件调查 ## 安全用例 ### 用户身份验证监控 监控所有终端上的成功和失败登录尝试。 ### 特权活动监控 追踪管理员和提权账户活动。 ### PowerShell 监控 识别可疑的脚本执行和命令活动。 ### 恶意软件检测 监控 Windows Defender 事件以获取威胁和补救措施。 ### 终端健康监控 追踪系统崩溃、服务故障和操作系统问题。 ### 事件调查 搜索历史日志以进行取证分析和故障排除。 ## 故障排除 ### 容器未运行 ``` docker ps -a ``` ### 检查容器日志 ``` docker logs graylog docker logs opensearch docker logs mongodb ``` ### 重启容器 ``` docker compose restart ``` ### 验证 Input 端口 ``` sudo netstat -tulnp | grep 12201 ``` ### 验证 NXLog 状态 ``` Get-Service nxlog ``` ### 验证日志传输 在 Windows 上生成一个测试事件,并验证其是否出现在 Graylog 搜索结果中。 ## 经验总结 通过本项目,学习了以下概念: * SIEM 架构与设计 * 集中式日志管理 * Docker 容器部署 * Graylog 管理 * Windows 事件日志记录 * NXLog 配置 * 安全监控工作流 * 仪表板创建与可视化 * 日志搜索与调查技术 * 基础 SOC 操作 ## 未来改进 该实验环境计划的改进包括: * 电子邮件告警 * 事件关联规则 * Graylog pipeline * 威胁情报集成 * Linux 日志收集 * Syslog 设备集成 * SSL/TLS 安全 Input * Active Directory 集成 * 自定义安全仪表板 * 自动化事件响应工作流 ## 作者 Narendra Tiwari 网络安全 • SIEM • SOC 运营 • 日志管理
标签:Docker, Graylog, 子域名变形, 安全运营中心, 安全防御评估, 版权保护, 网络映射, 请求拦截