Featured image of post Security-Onion-2分布式实践之安装篇

Security-Onion-2分布式实践之安装篇

AI 摘要
本文介绍了如何在生产环境中分布式部署安全洋葱系统,并提供了详细的安装步骤和功能验证方法。

前言

Security Onion (以下称安全洋葱)是一款免费且开源的,用于威胁发现、企业安全监视和日志管理的 Linux 发行版本。 目前,安全洋葱已经迭代至 2.X,与 1.X 版本不同,2.X 版本基于容器开发,实现了将各个组件和服务容器化,更易于使用者部署和定制。

安全洋葱的安装较为简单,网络上也有诸多的 ALL IN ONE 的安装教程,但考虑到这些部署方式不太适合生产环境使用,所以本篇主要讲述如何在生产环境分布式部署安全洋葱系统。本篇并不涉及系统的调优,如果你此前已经安装并部署了安全洋葱,可以跳过此章节。

本文中使用的安全洋葱版本为 v2.3.30(截至本文编写时)。

准备工作

官方文档建议采用标准的分布式部署方式进行部署安全洋葱,至少以下三个节点:

节点类型说明
manager node主要节点,负责接收采集到的原始数据
forward node流量分析节点,也叫 sensor-node
search-node搜索节点,存储 ES 数据

我部署了 4 个节点,大家根据实际情况进行扩展:

节点IP配置
security-manager10.10.0.18 cores, 16g memory, 200g disk
security-sensor10.10.0.1008 cores, 32g memory, 12t disk
security-search-110.10.0.118 cores, 16g memory, 2t disk
security-search-210.10.0.128 cores, 16g memory, 2t disk

架构大致如下:

so-distributed.webp

开始安装

Security-manager

1.从 ISO 引导启动,设置完用户名和密码,回车后开始安装系统,安装完成后重启系统。

2.登录系统,输入用户名和密码,准备开始配置。

so-manager-setup-1.webp

3.选择安装类型为distributed

so-manager-setup-2-choose-install-type.webp

4.选择节点类型为manager

so-manager-setup-3-choose-node-type.webp

5.选择安装环境为standard,这里需要注意 security-manager 这台主机需要能够联网。

so-manager-setup-4-choose-install-condition.webp

6.设置主机名

so-manager-setup-5-set-hostname.webp

7.设置管理口,并配置静态地址(这里建议不要选择DHCP分配地址,会影响服务/节点之间的通信)

so-manager-setup-6-choose-nic.webp

so-manager-setup-7-set-static-address.webp

8.选择系统补丁计划(默认),设置家庭网络(默认)

so-manager-setup-8-choose-os-path-schedule.webp

so-manager-setup-9-set-home-network.webp

9.选择安装类型为高级,进行功能定制化

so-manager-setup-10-choose-manager-type.webp

10.设置 ES 集群名称(默认)

so-manager-setup-11-set-es-cluser-name.webp

11.选择元信息分析引擎(zeek or suricata)。考虑到 zeek 可定制化更强些,所以我选择的是 zeek 处理 metadata,suricata 处理 nids-alerts。事实上,两种方式均可,官方这里有讨论//TODO。

so-manager-setup-12-choose-gen-metadata.webp

12.选择需要发送的日志类型。

请注意,这指的是需要被发送到 manager 节点的日志类型,不是 zeek 要处理的协议(这需要额外进行配置)

建议按照实际监测需求和节点存储容量进行权衡。有选择恐惧症的可以先按默认的来,后面可以再修改的:)。

so-manager-setup-13-choose-logs-to-send.webp

13.选择 IDS 规则集(默认)。你也可以选择高级订阅版。

so-manager-setup-14-choose-ids-ruleset.webp

14.选择安装的组件列表(默认)。按需选择。

  • Grafana
    • 主机的健康监控和报警
  • Fleet & osquery
    • HIDS,侧重于主机信息被动/主动采集
  • Wazuh
    • HIDS,侧重于威胁检测、完整性监控等
  • TheHive
    • 安全事件响应平台
  • Playbook
    • 检测 Playbook 的工具
  • Strelka
    • 文件提取/分析,用于威胁搜索、威胁检测和事件响应

so-manager-setup-15-choose-components.webp

15.为其他组件设置邮箱和密码

16.选择 WEB 界面的访问方式。我选择的是IP,也可以改为域名方式。

so-manager-setup-16-choose-web-access.webp

17.选择下载系统更新包的方式。建议选择通过 manager 节点下载

so-manager-setup-17-choose-update-os-by-manager-proxy.webp

18.设置 soremote 密码,后面用于添加其他节点。

so-manager-setup-18-set-soremote-passwd.webp

19.设置允许访问WEB界面的网段。建议只添加安全运维段的主机IP, 不在该网段的主机将无法访问WEB界面。

so-manager-setup-19-set-so-allow.webp

20.确定应用配置,等待完成安装。

so-manager-setup-20.webp

so-manager-setup-21.webp

21.配置防火墙规则,允许其他节点访问管理节点的 Salt 服务 (重要

很多人在部署非管理节点的时候总是提示安装失败,就是因为缺少这个步骤导致的。 sosetup.log中的报错日志类似:[ERROR ] 'mine.send': False

1
2
firewall-cmd --permanent --zone= --add-port=4505-4506/tcp
firewall-cmd --reload

Security-sensor

1.完成基础的系统安装后,我们开始配置流量分析节点。

2.选择安装类型为 distributed

3.选择节点类型为 sensor

so-sensor-setup-1-choose-install-type.webp

4.设置主机名

so-sensor-setup-2-set-hostname.webp

5.选择管理口,并配置静态地址

so-sensor-setup-3-choose-nic.webp

6.设置 manager 节点,并输入 soremote 密码,与 manager 节点完成连接。

so-sensor-setup-4-set-manager-hostname.webp

so-sensor-setup-5-set-manager-ip.webp

so-sensor-setup-6-connect-to-manager.webp

7.选择镜像口

so-sensor-setup-7-choose-monitor-nic.webp

so-sensor-setup-8.webp

8.选择系统补丁计划(默认),选择下载系统更新包的方式为 manager。

9.选择安装类型为高级,进行功能定制化。

10.进行 CPU 绑定(Zeek、Suricata)

so-sensor-setup-9-bind-cpu-zeek.webp

so-sensor-setup-10-bind-cpu-surucata.webp

11.配置镜像口MTU(默认)

so-sensor-setup-11-mtu.webp

12.等待安装完成。

1.完成基础的系统安装后,我们开始配置流量分析节点。

2.选择安装类型为 distributed

3.选择节点类型为 searchnode

4.设置主机名

5.选择管理口,并配置静态地址

6.设置 manager 节点(输入 soremote 密码)

7.选择系统补丁计划(默认),选择下载系统更新包的方式为 manager。

8.选择安装类型为高级,进行功能定制化。

9.配置 ES 堆大小(默认)

so-search-setup-1-set-es-heap-size.webp

10.配置 Logstash 堆大小(默认)

so-search-setup-2-set-logstash-heap-size.webp

11.配置 Logstash pipeline 线程(默认)

so-search-setup-3-set-logstash-pipeline-workers.webp

12.配置 logstash pipeline 批处理大小(默认)

so-search-setup-4-set-logstash-pipeline-batch-size.webp

13.配置 logstash input 线程数(默认),如果发现存在消息积压(redis),可以适当调整以上几个参数。

so-search-setup-5-set-logstash-input-num.webp

14.配置 ES 索引关闭时间(默认为 30 天)。关闭索引不会删除数据,如果需要查询历史数据可以再单独开启。如果内存足够的话,可以设置为 90 天。

so-search-setup-6-set-days-of-indices-open.webp

15.配置 ES 存储大小,我配置的是 1948(2T-100G),可以择优调整。

so-search-setup-7-set-es-size.webp

16.等待安装完成。

功能验证

1.打开 https://10.10.0.1 安全洋葱控制台并登陆

2.点击 Grid 标签,查看网格状态,检查节点是否已经全部上线。

soc-web-grid.webp

在这里,大家可以看到节点列表中还出现了一个陌生的节点类型 securityonion-fleet,这个是其实是独立部署的 Fleet 服务,由于需要管理的 osquery 客户端较多,容易影响性能,所以就把它从管理节点拆分出来了。

3.点击 Alerts 标签,检查是否可以正常。

soc-web-alert.webp

4.点击 Hunt 标签,检查是否正常。

soc-web-hunt.webp

5.点击 Grafana 标签,检查各个主机节点是否正常。

soc-grafana.webp

6.点击 Kiabana 标签,检查 ES 服务是否正常。

soc-kibana.webp

好了,如果服务一切正常的话,你可以开始打工人生活了:)

参考链接

Licensed under CC BY-NC-SA 4.0
Last updated on 2024/10/17
Built with Hugo
Theme Stack designed by Jimmy