大家在进行SELKS实战之前必须具备Elastic Stack的基础知识。
SELKS是Stamus Networks公司所开发的一个开源ELK项目,社区版是在GPL v3许可下发布,目的是实现一个开箱即用的IDS系统。社区版SELKS包括以下组件:
字母缩写 | 组件名称 |
---|---|
S | Suricata |
E | Elasticsearch |
L | Logstash |
K | Kibana |
S | Scirus(社区版) |
注:Scirius 社区版 是一个专门用于suricata规则集管理的web应用程序, 它采用Django开发。
网络安全监控系统会产生大量的事件,SELKS为用户提供了一些基本的工具,用来对事件进行分类,过滤事件,或者发出报警。这样可以帮助减少分析员查看的事件数量,也节省了磁盘储存空间。
本文主要介绍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桌面环境
SELKS6有两个版本的镜像,一个是带桌面环境的,另一个是为专家准备的,不带桌面的高性能版本。初次接触SELKS的用户推荐前者。
CPU 至少8核
内存:至少16GB (系统中的组件logstash非常消耗内存。
磁盘可用空间:至少500GB
虚拟机安装网卡工作模式推荐桥接模式,网卡设置为嗅探模式。 网卡配置文件位于/etc/network/interfaces,设置静态IP是必备的。
安装过程和Debian Linux相似,可以完全脱离外网环境安装,这里就不详细讲解,下图为系统登录界面。
桌面环境
点击鼠标右键调出菜单,图形化操作这里就不做过多的阐述,下面重点讲讲配置。
为了提高速度,操作系统和/data/nsm/中的数据可以驻留在SSD上。如果没有条件上SSD设备,也可以考虑将/data/moloch/raw/挂载到单独的磁盘分区上。这样一来,速度可能会慢一些。
为规避一些由误操作引起的系统错误,建议大家做好系统备份,再进行以下操作。
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)
username:selks-user
password: selks-user
刚进入系统时自然是看不到可视化的最终效果,那么初级用户可以先加载系统提供的Demo数据,系统提供了很多Demo数据,我们先加载尝试以下内容。
数据加载成功之后,效果如下图所示:
首页中,将SELKS分为了四个模块对应四个界面,
该界面包含如下:
Scirius 规则集管理与软件管理
Canvas(能够实现定时刷新数据实现动态显示界面)
SELKS的WebUI和Security Onion Solutions的比较相似,可视化的功能还非常多,本文不做详细讲解。这种基于Suricata的IDS的开源集成平台,可以快速搭建起一套企业级的安全平台,虽然系统本生安装非常简单,但在日常运维过程中需要运维人员具备一定ELK基础知识以及Suricata的基础知识。