在上一篇文章中详细为大家讲解了在Windows 10 系统中,如何搭建“Snort+Barnyard2+MySQL+PulledPork”的Snort IDS平台。通过ping这台主机,实现Snort自动报警并将报警文件存储到数据库。今天我们要将存入数据库的报警信息通过WebUI的方式展示出来,我们采用架构"Apache+PHP+BASE",实验环境需在上一节课的基础上完成。
如果大家对Windows10下如何安装Snort还不够了解,可参阅https://edu.51cto.com/course/30938.html这门课程。有了课程的基本知识后,再次回顾这篇文章将会有更深刻的感受。下面介绍实验步骤。
一、安装Apache
我们首先要在系统中安装Web Server,下面以安装Apache for Windows为例。下载软件包:https://www.apachelounge.com/download/ 安装包统一放置于D:\temp目录。
接着为Apache安装 FastCGI ASF。
二、配置Apache
下面分别对Apache和FastCGI进行配置,notepad打开httpd.conf配置文件。
以下配置供大家参考。
原始行(37): Define SRVROOT "c:/Apache24"
修改为: Define SRVROOT "d:\winids\apache24"
原始行(60): Listen 80
修改为: Listen winids:80
在“ #LoadModule xml2enc_module modules / mod_xml2enc.so”行(185行)下方,添加下一行。
原始行(228): #ServerName www.example.com:80
修改为: ServerName winids:80 ##测试系统Windows的hostname:winids
原始行(252): DocumentRoot "${SRVROOT}/htdocs"
修改为: DocumentRoot "${SRVROOT}\htdocs\base"
原始行(253): <Directory "${SRVROOT}/htdocs>
修改为: <Directory "${SRVROOT}\htdocs\base">
原始行(266): Options Indexes FollowSymLinks
修改为: Options -Indexes
原始行(286): DirectoryIndex index.html
修改为: DirectoryIndex base_main.php
接着增加配置FCIG模块,代码如下:
编辑完成,保存退出。
三、将Apache添加为服务
如果要实现开机自动运行Apache,需做如下设置。
d:\winids\apache24\bin\httpd.exe -k install
Installing the Apache2.4 service
The Apache2.4 service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
查看Windows系统服务:
命令行下控制服务启动与停止
故障分析:
首次做实验最常见的错误截图如下
这句话是Apache内置的启动提示语句,暂时没有找到取消和更改的方法。Apache每次启动都会检测配置文件httpd.conf有没有错误,如果在Errors reported here must be corrected before the service can be started.当这句话下边出现提示或错误时,必须先把这些问题解决了才能成功启动Apache服务。
所以大家看到Errors reported here这句下边没有任何提示则说明Apache启动很成功!可以放心进行其他相关操作。大家在修改配置文件的方式采用循环迭代小改进逐步排除错误。
四、安装PHP
软件下载:https://windows.php.net/downloads/releases/archives/
在命令提示符输入命令 '7z x d:\temp\php-5.6.40-Win32-VC11-x64.zip -od:\winids\php',我们将php.ini-development改名为php.ini,作为PHP的配置文件。
下面开始编辑这个文件。
原始行(372): max_execution_time = 30
修改为: max_execution_time = 60
原始行(449): error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
修改为: ;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
原始行(709): ;include_path = ".;c:\php\includes"
修改为: include_path = "d:\winids\php"
原始行(734): ; extension_dir = "ext"
修改为: extension_dir = "d:\winids\php\ext"
原始行(891): ;extensinotallow=php_gd2.dll
修改为: extensinotallow=php_gd2.dll
原始行(900): ; extensinotallow=php_mysql.dll
修改为: extensinotallow=php_mysql.dll
原始行(936): ;date.timezone =
修改为: date.timezone =Asia/Beijing
原始行(1445): ;session.save_path = "/tmp"
修改为: session.save_path = "c:\windows\temp"
文件修改完毕,保存退出。
测试PHP环境
注意:如果以上介绍的单独安装的配置方法,比较麻烦可以采用XAMMP这是集成的AMP是实验环境。PHP 7.2以上版本运行BASE会报错。
五、安装配置BASE
解压缩之后,开始复制配置文件。
编辑base_conf.php
原始行(50): $BASE_urlpath = '';
修改为: $BASE_urlpath = 'http://winids';
原始行(80): $DBlib_path = '';
修改为: $DBlib_path = 'd:\winids\adodb5';
原始行:
改为如下内容:
原始内容:
改为如下内容:
原始行(189): $show_rows = 48;
修改为: $show_rows = 90;
原始行(271): $resolve_IP = 0;
修改为: $resolve_IP = 1;
原始行(277): $show_expanded_query = 0;
修改为: $show_expanded_query = 1;
原始行(290): $portscan_file = '';
修改为: $portscan_file = 'd:\winids\snort\log\portscan.log';
原始行(431): $colored_alerts = 0;
修改为: $colored_alerts = 1;
原始行(434行): $priority_colors = array ('FF0000','FFFF00','FF9900','999999','FFFFFF','006600');
修改为: $priority_colors = array ('000000','FF0000','FF9900','FFFF00','999999');
结束修改,保存退出。
安装ADODB
设置BASE
前期准备工作做好之后,设置非常简单,在Apache、MySQL服务启动之后,在输入https://127.0.0.1/BASE,后续页面设置,参考博文https://blog.51cto.com/chenguang/2505396 ,本文不再赘述。下面通过一段视频展示如何通过批处理程序实现自动化安装配置SnortIDS。
六、系统联调
为了说明本文介绍方法的可行性,下面两段视频演示了Snort+Barnyard2+MySQL+BASE方案的安装、配置和调试过程。需要说明的是视频演示过程中采用了Apache+PHP+MySQL基础开发环境。
1)基础系统安装
https://www.bilibili.com/video/BV1Qx4y1K7qd/?vd_source=b1c8f017fe628cf4c40c285933f51fb5
2)将Snort+barnyard2设置为服务
https://www.bilibili.com/video/BV1XX4y1U7qn/?vd_source=b1c8f017fe628cf4c40c285933f51fb5
七、用Splunk分析Snort日志
BASE目前已停止更新,如果大家想尝鲜更多的可视化方案,这里推荐Splunk。Splunk是一款数据分析系统(有社区版和商业版两种类型)。它在快速收集、搜索、分析、实时获取数据方面的能力较为突出,效率高,能够处理PB级数据,并且它支持对数据源进行实时监控。支持自定义过滤规则。Splunk使用简单,通过用户图形界面进行各种统计分析操作,能够对数据进行可视化展示,更加形象直观。
本实验中利用Splunk实时监控Snort的警报日志文件alert.ids(有的系统是fast.log文件)。Splunk安装程序非常简单,本文不再赘述。下面我们在Windows 10系统中安装Snort+BASE环境并安装Splunk然后导入alert.ids报警文件。
开始日志搜索
八、总 结
本文将着重于演示如何在Windows10系统上安装 Snort,以及可视化配置。本文所述的方法对 Windows用户非常有用,即使没有Linux环境下IDS配置经验,也能实现快速搭建Snort IDS可视化系统。今后作者还将为大家介绍更多IDS报警可视化解决方案。