在上一篇文章中详细为大家讲解了在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目录。

Windows 10 环境下Snort日志可视化实战_Windows

接着为Apache安装 FastCGI ASF。

Windows 10 环境下Snort日志可视化实战_Apache_02

二、配置Apache

下面分别对Apache和FastCGI进行配置,notepad打开httpd.conf配置文件。

Windows 10 环境下Snort日志可视化实战_Apache_03

以下配置供大家参考。

原始行(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模块,代码如下:

Windows 10 环境下Snort日志可视化实战_snort_04

编辑完成,保存退出。

三、将Apache添加为服务

如果要实现开机自动运行Apache,需做如下设置。

d:\winids\apache24\bin\httpd.exe -k install

Windows 10 环境下Snort日志可视化实战_Apache_05

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系统服务:

Windows 10 环境下Snort日志可视化实战_snort_06

命令行下控制服务启动与停止

Windows 10 环境下Snort日志可视化实战_snort_07


故障分析:

首次做实验最常见的错误截图如下

Windows 10 环境下Snort日志可视化实战_Apache_08

   这句话是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的配置文件。

Windows 10 环境下Snort日志可视化实战_snort_09

下面开始编辑这个文件。

Windows 10 环境下Snort日志可视化实战_php_10

原始行(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环境

Windows 10 环境下Snort日志可视化实战_php_11

注意:如果以上介绍的单独安装的配置方法,比较麻烦可以采用XAMMP这是集成的AMP是实验环境。PHP 7.2以上版本运行BASE会报错。

五、安装配置BASE

Windows 10 环境下Snort日志可视化实战_php_12

解压缩之后,开始复制配置文件。

Windows 10 环境下Snort日志可视化实战_snort_13

编辑base_conf.php

Windows 10 环境下Snort日志可视化实战_php_14

原始行(50): $BASE_urlpath = '';

修改为: $BASE_urlpath = 'http://winids';

原始行(80): $DBlib_path = '';

修改为: $DBlib_path = 'd:\winids\adodb5';

原始行:

Windows 10 环境下Snort日志可视化实战_Windows_15

改为如下内容:

Windows 10 环境下Snort日志可视化实战_Apache_16

原始内容:

Windows 10 环境下Snort日志可视化实战_Apache_17

改为如下内容:

Windows 10 环境下Snort日志可视化实战_snort_18

原始行(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

Windows 10 环境下Snort日志可视化实战_Apache_19

设置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报警文件。

Windows 10 环境下Snort日志可视化实战_Windows_20

Windows 10 环境下Snort日志可视化实战_Apache_21

开始日志搜索

Windows 10 环境下Snort日志可视化实战_Apache_22

Windows 10 环境下Snort日志可视化实战_Apache_23

八、总 结

      本文将着重于演示如何在Windows10系统上安装 Snort,以及可视化配置。本文所述的方法对 Windows用户非常有用,即使没有Linux环境下IDS配置经验,也能实现快速搭建Snort IDS可视化系统。今后作者还将为大家介绍更多IDS报警可视化解决方案。