快速安装可视化IDS系统Security Onion

背景:

网上有不少关于snort+barnyard2+base搭建IDS的文章,可是当你花费数天时间,还是无法完全安装完成时,及时当你安装完成发现不是你想要的平台式,时间成本如何计算?


       为了节约时间,本节为大家介绍的软件叫安全洋葱Security Onion(本文中简称:SO),它和OSSIM一样,是基于Debian Linux的系统,内部集成了很多开源安全工具例如: OSSEC、NIDS、HIDS以及各种监控工具等等,可以让你在一支烟的功夫完成整个系统建设,下面我们就一起体会一下它如何进行安装和深层防御的吧。

wKiom1dJBNzxxVBkAAF_icwFlK0877.png


为了了解这套系统,首先得教小白如何快速安装这套可用的IDS系统。先要准备实验用的ISO安装文件(下载地址:https://sourceforge.net/projects/security-onion/  )。接着进行如下操作:

 

1.将SO安装到硬盘 (该步不能省略)

 

环境:

虚拟机软件: Vmware workstation 12

分配内存:4G

分配网卡: 1块

分配磁盘空间: 30G


从SO的iso文件引导系统,选择live,然后等待启动到桌面环境,单击安装图标根据提示进行系统安装。安装完成重启系统。

然后在root权限下使用以下命令

apt-get update && sudo apt-get dist-upgrade   (更新安装的软件)。

rule-update

刚装完系统,会进入系统会启动XFCE桌面。

clip_image002

图1

点击Setup,提示输入密码。

clip_image004


输入当前用户的登录口令,你会看到Security Onion Setup的欢迎界面,单击Yes,Continue!按钮。

clip_image005


接下来,配置网络接口

clip_image007

在这个环节系统会自动优化你的网卡,包括禁用一些有可能干扰监听的一些功能。更多信息查看,如果此时,选择No,not right now,那么就会手动配置你的管理和监听接口。一般我们还是选择Yes,configure /etc/network/interfaces。

 

2.选择管理接口

 

通常,系统会默认的将第一块网卡设定为管理接口,如果只有一块网卡,那么管理接口和监听接口合二为一。

clip_image009

单击OK按钮后,通常需要给网卡指定静态IP地址。除非你在DHCP中配置了静态映射,才选择DHCP自动获取。

clip_image010

指定IP

clip_image011

点击OK,然后指定掩码。

clip_image012

点击OK,然后设定网关。

clip_image013

点击OK后设定DNS。

clip_image014

点击OK后,在弹出设定本地域名的对话框,我们输入本地域名test.com。

clip_image015

点击OK后系统给出管理接口的网络配置清单。

clip_image017

核对无误后点击Yes,make changest按钮,这时系统提示重新启动。点击Yes,reboot!

clip_image019

注意:手动修改网络配置,你可以打开/etc/network/interfaces文件编辑iface eth0 inet static的配置。

编辑完成后重启网络服务。

$sudo /etc/init.d/networking restart

如果你是初学者,最好按系统提示重启服务器。


3.组件安装


当重启系统完成之后,我们再进入系统XFCE桌面环境。按图1中选择setup,弹出图2和图3。

选择Yes,Continue按钮后弹出。

clip_image021

我们选择Yes,skip network configuration,建议初学者选择快速配置。

clip_image023

点击OK,继续。由于SO是使用电子邮件地址作为独立认证机制,下面输入你常用电子邮箱,将被Snorby用于生成报警日志。

clip_image024

点击OK按钮后,下面需要提供NSM(Network Security Monitoring)组件中Sguil模块的用户名,SO会在其他几款NSM工具中使用它。请务必记住。

clip_image025

实例中设定的用户名为cgweb。

 

命名规则只能是字母的组合

 

输入OK后,下面要选择一个字符数字的口令以供让SO安装的NSM软件认证使用。稍后可以通过Sguil和Snorby更改口令。

clip_image027

点击OK后, 确认口令。

clip_image028

当再次确认口令,点击OK按钮后,也就是SO NSM应用程序创建完了凭证,配置脚本会问你,是否想安装企业日志搜索和归档ELSA。

clip_image030

你需要选择Yes,enable ELSA,ELSA为NSM日志数据提供了一个搜索引擎接口。

此时,SO会提示用户,准备做好变更,看你是否同意。

clip_image031

我们选择继续改变。SO要配置系统的时区,可以使用UTC,然后安装与其打包在一起的所有NSM应用程序。

clip_image032

接下来系统会自动设置,当设置完成后,你可以在/var/log/nsm/sosetup.log文件看到安装状态报告。

clip_image033


当设置到ELSA设置环节可能会对花点时间,大家需要耐心等待,最后设置完成,不必重启系统,可使用sostat检查服务运行状态。


wKiom1dKlmzBSR1uAAEpdFHm13I074.png

clip_image035

点击OK,后弹出注意涉及IDS规则管理的内容。

clip_image036

有问题可以访问下图的站点

clip_image037

 

4.检查安装状态

 

当单机系统完成安装,应该采取了解安装状态,首先打开终端,运行下面命令,查看NSM代理是否在线。

clip_image039

如果你发现有组件没有启动成功,可以尝试sudo service nsm restart命令重启。

在排除故障时,你还需要验证传感器连接到服务器的autossh隧道是否正常。

注意:一个IP只能同时连接一台SO服务器。

 

5.Web浏览器访问

 

检查通过后,你可以在浏览器上输入刚分配的IP地址,https://192.168.91.228/,会打开如下SO的欢迎界面。

首次用浏览器登陆会遇到HTTPS证书不可信的提示,因为它没有签名。

clip_image041

当你点击信任就不会再提示了。

clip_image043

你可以通过这个界面来访问Snorby NSM应用程序,单击Snorby连接,弹出如下界面。

clip_image045

界面会显示你的SO IP地址以及端口444。Snorby会提示你输入刚才的电子邮件地址,及口令。单击Welcome,Singn In按钮登录系统。这时根据你传感器部署位置不同以及网络活跃程度不同,在控制面板上看到不同的流量信息。

clip_image047

wKioL1dKmdnQPGV9AAUMJ4zUSZY048.png-wh_50


报警测试:

你在虚拟机环境下,如果不会***测试,哪儿来的***数据包,系统怎么会报警,下面用tcpreplay来向网络回放一些***包的例子(这些内容是无害的)。

#sudo tcpreplay -ieth0 -M10 /opt/samples/markofu/*.pcap

报警如下图所示。

wKiom1dKmSDjK2VdAATIPby-dEY922.png-wh_50


   如对屏幕下方出现的两个特定警报感兴趣,那么可点击条目查看到详情。有比较,才知孰优孰劣,具体分析会在《开源安全运维平台OSSIM最佳实践》一书中讲解。


6.查看服务器状态

系统脚本/usr/sbin/nsm可以调研nsm_server、nsm_sensor底层脚本传递的选项,进而可以检查服务器的状态,输入以下命令

wKioL1fsnlfQlDl2AABfqqN02k8677.jpg-wh_50

那么除了status以外还有其他进程控制命令,例如start,stop以及restart

$sudo /usr/sbin/nsm_sensor --status 查看ossec_agent(sguil)状态

清除传感器数据

wKioL1fsodTBEjQMAAB4Gh6Ud6s045.jpg我们先查看sensor名字,然后清除

$sudo /usr/sbin/nsm_sensor_clear --sensor-name=cgweb-virtual-machine-eth0

wKiom1fsoi7Rgop9AABUb1A2dYM801.jpg


7.删除数据的脚本

如果你想一次删除所有数据,很简单调用高级脚本/usr/sbin/nsm_all_del即可,它首先会提示用户确认。

wKiom1fsnzzxhUXhAACGC6nqeVE833.jpg

还有一个快速删除命令:/usr/sbin/nsm_all_del_quick,它相当危险,因为在删除时不会给出任何提示信息。


8.升级注意事项


首先你需要了解Upgrade与dist-upgrade之间区别是什么。

如果运行upgrade,会得到一组选项,选择dist-upgrade将会产生另一组徐选项。

$sudo apt-get upgrade

$sudo apt-get dist-upgrade

wKioL1fov9LhvuP4AAGF5MCHLO0983.jpg

需要注意的是,国内用户升级会比较慢。更新系统需要在没有配置系统之前,如果你将系统配置完毕之后,在升级系统,之前的配置文件将被覆盖。所以一定要在你什么都没有配置之前做升级工作。

(下回讲解分布式IDS安装与调试)。


9.了解SO数据库


当你设置好嗅探口,将洋葱服务器接入网络后,NSM就开始收集网络信息。传感器就会存储各种数据类型,下面的两个目录的路径和用途大家需要了解。

/nsm           :存储所有日志和完整数据内容。


  SO在/nsm/sensor_data/<sensorname-interface>/dailylogs/YY-MM-DD/目录中以snort.log.<时间戳>的格式文件名存储完整内容的数据。内容为pcap格式。

wKiom1fouqHS29PTAAAqfwNkUv0728.jpg

我们看一个例子:snort.log.1474866755

log后面的数字“1474866755”表示什么意思?他是UNIX时间戳的表示方法,代表了自1970年1月1日以来过去的秒数。

转换方法:

wKioL1fou0WzhcB_AAAXB3idLgk588.jpg

这个目录如此重要,那么SO会定期检查该目录的可用空间,当达到90%阈值时,会做以下几件事:

  • 脚本会从这个目录移除旧的完整内容的pcap文件,

  • 从/nsm/bro/logs移除旧的Bro日志文件。

  • 从/nsm/sensor_data/<sensorname-interface>/dailylogs/argus/目录移除旧的argus会话。

  • 从/nsm/sensor_data/<sensorname-interface>snort-<instancenumber>移除旧的Snort Unified2告警文件。


这个脚本位于/usr/sbin/nsm_sensor_clean,cronjob会每小时都调用/usr/sbin/nsm_sensor_clean脚本,当较早的数据删除,直到磁盘使用率低于90%。


/var/lib/mysql :存储洋葱的数据库。

wKioL1fovHGASqCvAAAtmJ4gLQc292.jpg



重要配置文件说明

Secrity Onion 可修改通用配置文件路径

/etc/nsm/securityonion.conf


SO工具临时配置保存在/etc/nsm/templates/

用于包过滤配置文件 /etc/nsm/rules/bpf.conf

IDS 规则保存在/etc/nsm/rules

PulledPort配置文件保存在/etc/nsm/pulledpork/pulledpork.conf





疑问

Q:安全洋葱能阻止***吗?

A:这一点,和OSSIM一样,不能阻止***。

 

 

 参考:

https://github.com/Security-Onion-Solutions

http://sourceforge.net/projects/security-onion/