摘要: (大家在进行SELKS实战之前必须具备Elastic Stack的基础知识) 1.什么是SELKS ? SELKS是Stamus Networks公司所开发的一个开源ELK项目,社区版是在GPL v3许可下发布,目的是实现一个开箱即用的IDS系统。社区版SEL...
(大家在进行SELKS实战之前必须具备Elastic Stack的基础知识)
1.什么是SELKS ?
SELKS是Stamus Networks公司所开发的一个开源ELK项目,社区版是在GPL v3许可下发布,目的是实现一个开箱即用的IDS系统。社区版SELKS包括以下组件:
字母缩写 | 组件名称 |
---|---|
S | Suricata |
E | Elasticsearch |
L | Logstash |
K | Kibana |
S | Scirus(社区版) |
- 注:Scirius 社区版 是一个专门用于suricata规则集管理的web应用程序, 它采用Django开发。
网络安全监控系统会产生大量的事件,SELKS为用户提供了一些基本的工具,用来对事件进行分类,过滤事件,或者发出报警。这样可以帮助减少分析员查看的事件数量,也节省了磁盘储存空间。
2.SELKS6关键内容
本文主要介绍SELKS6,它是基于Debian9的发行版,面向网络安全管理。它基于自己的图形规则管理器提供一套完整的、易于使用的 Suricata入侵检测系统。该系统还包含Kibana IDS/NSM控制面板以图形化日志,以及Suricata的规则管理界面Scirius。在使用该版本之前需要大家了解下面的重要内容。
- 操作系统: Debian Linux 9(stretch)
- 内核版本:4.9.0-8
- 默认登录操作用户名selks-user,密码:selks-user,
- 登录Web界面的用户名selks-user,密码:selks-user,
- 图形界面采用Python django框架开发
- 默认root用户密码:StamusNetworks
- 系统默认使用Xfce桌面环境
- 更多帮助:StamusNetworks/SELKS
3.下载ISO
SELKS6有两个版本的镜像,一个是带桌面环境的,另一个是为专家准备的,不带桌面的高性能版本。初次接触SELKS的用户推荐前者。
4.服务器硬件要求(以虚拟机安装为例)
- CPU 至少8核
- 内存:至少16GB (系统中的组件logstash非常消耗内存。
- 磁盘可用空间:至少500GB
- 虚拟机安装网卡工作模式推荐桥接模式,网卡设置为嗅探模式。 网卡配置文件位于/etc/network/interfaces,设置静态IP是必备的。

安装过程和Debian Linux相似,可以完全脱离外网环境安装,这里就不详细讲解,下面为大家介绍一些安装SELKS的经验和技巧。


点击鼠标右键调出菜单,图形化操作这里就不做过多的阐述,下面重点讲讲配置。
5.数据存储注意事项
为了提高速度,操作系统和/data/nsm/中的数据可以驻留在SSD上。如果没有条件上SSD设备,也可以考虑将/data/moloch/raw/挂载到单独的磁盘分区上。这样一来,速度可能会慢一些。
6.系统配置
为规避一些由误操作引起的系统错误,建议大家做好系统备份,再进行以下操作。
a.设置静态IP和DNS
很多初学者不太注意设置IP的问题,喜欢动态分配,这种方式会给今后的实验增加很多障碍。系统安装完成之后,应首先设置Server或Sensor的网卡IP为静态IP修改网卡配置文件/etc/network/interfaces

设置DNS
DNS配置文件/etc/resolv.conf
当IP 和DNS都配置完成之后,重启网络服务。
使用下面的命令
#systemctl restart networking.service
设置网卡FPC(完整数据包捕获)模式
顾名思义,FPC捕获给定网段上的所有流量,并将其存储到磁盘中以供以后检索。它能够提取数据包捕获并对其执行任何操作(包括测试IDS警报、分析其Netflow统计信息)。设置FPC非常关键。
首次登入系统我们需要在SHELL命令行下输入下面的命令
#selks-first-time-setup_stamus
通过这条命令我们可以确认,系统里面的网卡名称为ens33。

按照说明并键入所需的嗅探接口名称(ens33,然后选择完成数据包捕获(FPC)选项。接着选择FPC,输入数字1并回车。
如果你在其他虚拟机中看到的网卡名称和本文介绍的不同,可以换成其他的。设置过程中容易出错,查询日志的位置在/opt/selks/log/目录。
b.允许root远程登录
由于SELKS默认下不允许root远程登录,会造成远程调试不方便,我们需要在SELKS上修改SSH配置文件。
#vi /etc/ssh/sshd_config
在配置文件中加入一行
PermitRootLogin yes
//yes表示root可以ssh登录,no表示不允许。
接着重启SSH服务。
#/etc/init.d/ssh restart
c.调整分辨率
系统刚安装完成时,分辨率只有800 x 600,需要安装虚拟机增强工具,在下面的位置调整。

d.更新系统
SELKS补丁更新比较快,每个月都有新的内容发布,所以刚安装完成的系统需要第一时间进行系统升级。

e.检查服务状态
下面的命令可以显示所有关键服务的运行状态。
#systemctl status suricata
#systemctl status elasticsearch
#systemctl status logstash
#systemctl status kibana
#supervisorctl status scirius
#systemctl status evebox

此外系统还提供了一条健康度的检测脚本
#selks-health-check_stamus
该脚本执行后,正常启动的服务都是绿色的active(running)状态,而有问题的服务会显示红色的failed字样。
f.初始设置JAVA
SELKS附带Debian标准的预安装OpenJDK,对于Elasticsearch,Oracle或OpenJDK都是可以接受的。由于许可问题,Oracle JAVA在默认情况下不能与SELKS一起提供。
如果您决定从OpenJDK切换到Oracle JAVA,请按照下面的说明操作。确保系统是最新的-SELKS升级。
一般来说,在安装SELKS之后,您可以很容易地切换到Oracle Java,执行以下脚本:
root@SELKS:~# /opt/selks/Scripts/Java/setup-oracle-java_stamus.sh

该脚本是selks scripts stamus脚本包package of scripts的一部分,已经安装在SELKS系统中。
注意:这将默认安装Java8 oracle-java8-installer and libc6-dev 包。
g.浏览器中访问(强制https)


不记得用户名称和密码,请问上看。

系统提供了很多Demo数据,我们先加载尝试以下。




首页中,将SELKS分为了四个模块对应四个界面,
该界面包含如下:
- Scirius 规则集管理与软件管理

- Kibana 仪表板

- EveBox alert
- Moloch 用于pcap导出和数据包捕获
- Scirius Hunt

查看事件

Canvas(能够实现定时刷新数据实现动态显示界面)

SELKS的WebUI和SOS 2.3.x的比较相似,详细对比等到下次再介绍。
稿源:https://zhuanlan.zhihu.com/p/340140208
作者:李晨光