Security Onion 综合教程:从入门到实战
目录
- 什么是 Security Onion?
- 核心功能与架构
- 安装与部署
- 首次登录与初始配置
- 核心模块详解
- 1. IDS/IPS (Snort / Suricata)
- 2. 网络发现 (Wazuh / OSSEC)
- 3. 日志管理 (Elasticsearch / Logstash / Kibana - ELK Stack)
- 4. 网络流量分析 (Zeek / Bro)
- 5. 漏洞扫描 (Nexpose / OpenVAS)
- 实战:如何发现一个攻击
- 高级功能
- 最佳实践与维护
- 总结与学习资源
什么是 Security Onion?
Security Onion 是一款免费、开源的企业级安全运维和安全事件管理平台,它基于 Ubuntu Server 构建,集成了多种顶尖的开源安全工具,通过一个统一的 Web 界面进行管理和展示。

您可以把它想象成一个“安全工具全家桶”,它将原本需要单独安装、配置和关联的多个复杂工具整合在了一起,极大地降低了安全监控的门槛。
主要特点:
- 免费开源:无需支付任何许可费用。
- 一体化平台:集成了 IDS、日志管理、网络分析、主机监控等多种功能。
- 易于部署:提供 ISO 镜像,可快速安装为物理机、虚拟机或云主机。
- Web 界面友好:提供了
Security Onion Console (SOC)和Wazuh Dashboard等多个直观的管理界面。 - 社区活跃:拥有庞大的用户和开发者社区,文档和教程丰富。
核心功能与架构
Security Onion 的架构通常可以分为两种部署模式:
a. All-in-One (AIO) 模式
将所有组件(传感器、管理端、存储)安装在同一台服务器上,适合初学者、实验室环境或资源有限的中小型企业。

b. Distributed (分布式) 模式
这是企业级部署的标准模式,将功能分散到不同的服务器上,以实现高性能和高可用性。
- Sensor (传感器): 部署在网络关键位置(如互联网出口、核心交换机),负责捕获网络流量,并运行轻量级的安全分析工具(如 Suricata),传感器将原始数据和告警发送到管理端。
- Management Server (管理服务器): 平台的大脑,负责接收来自传感器的数据,存储到 Elasticsearch,并运行重型的分析任务(如 Snort 规则更新、Wazuh 代理管理)。
- Storage Node (存储节点): 可选节点,专门用于存储海量日志数据,将 Elasticsearch 的负载从管理服务器上分离出来,提高查询性能和可靠性。
- Query Node (查询节点): 可选节点,专门用于处理来自 Kibana 的查询请求,将分析负载从管理服务器上分离出来。
安装与部署
这里我们以最常用的 Virtual Machine (VM) 为例进行讲解。
步骤 1: 下载镜像
访问 Security Onion 官方下载页面,选择适合你的版本(推荐最新的稳定版),下载 .ova 或 .iso 文件。
- .ova 文件:用于 VMware/VirtualBox,预配置好虚拟机,最简单。
- .iso 文件:用于创建新的虚拟机或物理机安装,灵活性最高。
步骤 2: 创建虚拟机
以 VMware 为例:

- 打开 VMware Workstation/Player。
- 选择 "创建新的虚拟机"。
- 选择 "典型(推荐)","稍后安装操作系统"。
- 客户机操作系统选择 "Linux",版本选择 "Ubuntu Linux (64-bit)"。
- 分配硬件资源:
- 内存: 至少 4GB,推荐 8GB 或更多。
- 处理器: 至少 2 vCPU,推荐 4 vCPU。
- 硬盘: 至少 100GB,推荐 200GB+。
- 网络: 选择 NAT 模式(方便与宿主机通信)或 桥接模式(使其成为网络中的一台独立主机)。
- 使用下载的
.iso文件作为虚拟机的安装光盘。
步骤 3: 安装过程
- 启动虚拟机,从 ISO 引导。
- 选择 "Install Security Onion"。
- 选择语言和键盘布局。
- 网络配置: 这是最关键的一步!
- 为管理服务器和传感器配置正确的 IP 地址、子网掩码、网关和 DNS。
- 如果是分布式部署,需要规划好管理服务器和传感器的网络。
- 设置密码: 为
root用户和securityonion用户设置强密码。 - 磁盘分区: 选择 "Guided - use entire disk" 并确认。
- 安装: 等待安装完成,根据提示重启系统。
首次登录与初始配置
重启后,您可以通过 Web 浏览器访问 Security Onion 控制台。
步骤 1: 登录 Web 控制台
- 地址:
https://<你的管理服务器IP或域名>:4443 - 用户名:
securityonion - 密码: 安装时设置的密码
浏览器可能会提示证书不受信任,这是正常的,因为是自签名证书,点击 "高级" 并继续访问。
步骤 2: 初始配置向导
首次登录后,系统会引导你完成初始配置。
-
Setup Type:
- Evaluation: 评估模式,默认启用所有功能,适合学习和测试。
- Grid: 分布式部署模式。
- Standalone: 独立模式(AIO)。
- 对于新手,选择
Evaluation即可。
-
Configure Hosts: 如果是分布式部署,这里需要添加和管理传感器,在 Evaluation 模式下,会自动将本机配置为传感器。
-
Configure Sensors: 选择要启用的传感器类型。
- Network: 网络传感器,捕获和分析网络流量。
- Host: 主机传感器,用于监控安装了 Wazuh Agent 的服务器。
- Log: 日志传感器,用于接收 Syslog 等日志。
- 建议初学者勾选
Network和Host。
-
Configure IDS Rules: 选择 IDS 引擎(Suricata 或 Snort)和规则集来源。
ETOpen和Snort是免费的,Emerging Threats Pro (ETPro)是付费的但质量更高,初学者可以选择免费的组合。 -
Finish: 点击完成,系统将开始下载和配置规则、更新系统,这个过程可能需要一些时间,请耐心等待。
核心模块详解
1. IDS/IPS (Snort / Suricata)
- 作用: 检测网络中的已知攻击模式(特征码)和异常行为。
- 数据来源: 网络流量。
- 如何查看:
- 登录
SOC控制台。 - 在左侧菜单找到
HIDS(Host-based Intrusion Detection) 或NIDS(Network-based Intrusion Detection)。 - 这里会列出所有告警,你可以按时间、严重性、源/目的 IP 等进行筛选。
- 点击一个告警,可以看到详细的规则信息、数据包捕获和会话信息。
- 登录
2. 网络发现 (Wazuh / OSSEC)
- 作用: 监控主机安全,包括文件完整性监控、进程监控、Windows 事件日志、Linux 审计日志等。
- 数据来源: 安装在受监控主机上的 Wazuh Agent。
- 如何查看:
- 在
SOC控制台,点击顶部导航栏的Wazuh Dashboard。 - 这里会展示主机的健康状态、告警统计、规则触发情况等。
- 你可以查看具体的告警,例如某台服务器的
sshd配置文件被修改了。
- 在
3. 日志管理 (Elasticsearch / Logstash / Kibana - ELK Stack)
- 作用: 集中收集、存储、索引和搜索所有来源的日志(系统日志、应用日志、传感器告警等)。
- 数据来源: 几乎所有设备。
- 如何查看:
- 在
SOC控制台,点击顶部导航栏的Kibana。 - 首次使用需要创建 "Index Pattern"(索引模式),
logs-*或alert-*。 - 进入 "Discover" (发现) 页面,你可以在这里自由地搜索和过滤日志,这是进行深度事件调查的核心工具。
- 在
4. 网络流量分析 (Zeek / Bro)
- 作用: 对原始网络流量进行深度解析,生成结构化的日志,揭示应用层的行为和连接信息。
- 数据来源: 网络流量。
- 关键日志:
conn.log: 所有网络连接的记录(源/目的IP、端口、协议、流量字节数)。http.log: 所有 HTTP 请求的详细记录。dns.log: 所有 DNS 查询的记录。files.log: 捕获的文件传输记录。
- 如何查看:
- 在
SOC控制台,点击顶部导航栏的Kibana。 - 在 "Discover" 中,选择
logs-*索引模式,然后搜索source:conn或source:http等字段。
- 在
5. 漏洞扫描 (Nexpose / OpenVAS)
- 作用: 主动发现网络中系统和应用的已知安全漏洞。
- 数据来源: 对目标资产进行扫描。
- 如何查看:
- 在
SOC控制台,找到Vulnerability Management(漏洞管理) 模块。 - 这里会列出扫描出的漏洞,按严重性(严重、高危、中危、低危)分类,并提供漏洞详情和修复建议。
- 在
实战:如何发现一个攻击
假设我们想检测一次成功的 SSH 暴力破解。
场景描述
攻击者(IP: 10.10.100)正在尝试用字典攻击登录我们的内部服务器(IP: 168.1.10)。
调查步骤
-
从 IDS 入手(快速发现)
- 登录
SOC->NIDS。 - 在搜索框中输入
ssh或brute force。 - 你可能会看到 Suricata/Snort 触发了
ET SCAN Potential SSH Brute Force或类似规则的告警,这给了你一个明确的怀疑方向。
- 登录
-
深入日志分析(确认证据)
- 登录
Kibana。 - 进入 "Discover" 视图,确保选择了正确的索引模式(如
logs-*)。 - 过滤 SSH 登录失败日志:
- 如果服务器是 Linux,日志通常在
auth.log,搜索message: "Failed password for invalid user"或message: "Failed password for root"。 - 构建一个查询:
message: ("Failed password" AND "from 10.10.10.100")。 - 你会看到大量来自
10.10.100的失败登录尝试。
- 如果服务器是 Linux,日志通常在
- 关联网络连接(Zeek 日志):
- 切换到另一个查询,查看 Zeek 的
conn.log。 - 查询:
source.ip: "10.10.10.100" AND destination.port: 22 AND destination.ip: "192.168.1.10"。 - 你会看到在短时间内,
10.10.100与168.1.10的 22 端口之间建立了大量 TCP 连接,这正是暴力破解的特征。
- 切换到另一个查询,查看 Zeek 的
- 登录
-
主机侧验证(Wazuh)
- 登录
Wazuh Dashboard。 - 查看来自
168.1.10的告警。 - 你可能会因为
auth.log文件被频繁修改(Wazuh 的文件完整性监控)而收到告警,这进一步佐证了攻击行为。
- 登录
通过以上三个步骤的关联分析,你就可以完整地还原这次攻击的全过程,并确定攻击源和受害目标。
高级功能
- Hunting (威胁狩猎): 在 SOC 控制台,可以基于预设的或自定义的查询,在海量数据中进行主动搜索,寻找潜在的威胁。
- PCAP Analysis: 在 IDS 告警详情或 Kibana 日志中,可以直接下载或在线查看相关的网络数据包捕获文件,用于深度分析。
- Alert Correlation: SOC 会自动将来自不同数据源(如 IDS 日志和系统日志)的、相关联的告警合并成一个事件,简化分析流程。
- Playbooks (剧本): SOC 支持创建自动化响应剧本,当检测到某个 IP 的暴力破解告警时,可以自动触发剧本,将该 IP 添加到防火墙的黑名单中。
最佳实践与维护
- 定期更新: 保持系统和所有安全工具的更新,以获得最新的特征库和漏洞修复。
- 磁盘空间管理: Elasticsearch 会消耗大量磁盘空间,定期清理旧索引或配置索引的生命周期策略。
- 优化规则: IDS 规则可能会产生误报,定期审查告警,禁用或优化误报率高的规则。
- 备份配置: 定期备份 Security Onion 的配置文件,特别是管理服务器的配置。
- 文档化: 记录你的网络架构、部署方案和自定义查询,方便日后维护和交接。
总结与学习资源
Security Onion 是一个功能极其强大的平台,本教程仅覆盖了其核心用法,要真正掌握它,需要大量的实践。
官方资源(最重要!):
- Security Onion Documentation: 最权威、最全面的文档,遇到问题第一反应就应该是查这里。
- Security Onion Training: 官方提供的培训课程和认证。
- Security Onion Community Forums: 官方社区论坛,可以提问和交流。
其他资源:
- YouTube 上有大量关于 Security Onion 的视频教程,搜索 "Security Onion tutorial" 即可找到。
- 关注安全博客和技术社区,许多安全专家会分享他们的使用经验。
请记住:Security Onion 是一把“双刃剑”,它可以帮助你更好地防御,但如果配置不当或理解不深,也可能产生大量无用的告警,让你“淹没在日志的海洋里”,花时间学习和理解其背后的原理至关重要。
祝你使用愉快!
