(大家在进行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 7 安装课程:学习网址 image.png