通常,在 Windows环境中安装 Snort系统,因为Snort软件功能的缘故,大家一般都会降低Snort的版本进行实验,难以将Linux上的SnortIDS架构完全移植到 Windows环境中,这是由于没有解决Windows环境中安装barnyard2的问题。在上一篇博文中,我们实现了一个“Snort+Barnyard2+ MySQL+ PulledPork”体系结构的IDS系统,架构如图1所示,它实现了跟Linux环境中一致的架构,它从一个 IDS的网卡接收到流量开始,通过 Snort的处理,将警报(Unified2格式)存储在/var/log/snort/目录中,接下来barnyard2会将警报读取,并存储到 MySQL。
图1 Windows环境下的Snort IDS架构
从图1架构图可以发现Barnyard2相当于一个中转站,起到承上启下的作用。本实验中关键是怎样安装barnyard2,由于GitHub有源代码但没有Windows环境下安装包,无法在Windows环境运行,要实现上图所示的架构就必须准备Windows环境下的安装文件,这里有两种方式可以将Barnyard2源码包编译成Windows下的可执行程序:
- MS VC编译环境,来输出可支持程序,需要调试代码,对初学者而言难度较大。
- 采用Cygwin Unix仿真器在Windows上编译Barnyard2。
在Windows平台通过模拟器来编译C源码包生成可执行程序,对初学者操作起来有些难度,本文推荐第2种方法,通过脚本将源码编译和调试,起到了“屏蔽”技术细节的作用,实现了将CentOS7环境中Snort IDS,迁移到Windows环境。下面,我们看一下操作步骤:
步骤1:设置环境变量
当cygwin安装完成后,需要设置系统环境变量(这里我们把cygwin安装到D盘)
添加路径:
D:\cygwin\bin;D:\winids\mysql\bin;D:\winids\snort\bin;D:\winids\Strawberry\perl\bin
准备Barnyard2源码(在这篇文章里提供地址下载:https://blog.51cto.com/chenguang/2505396)
步骤2:下载Cygwin安装包
下面,我们开始使用Cygwin模拟器,在Windows上自动编译Barnyard2。以管理员身份打开CMD窗口,进入D:\temp目录,并执行complile.bat批处理程序。
根据屏幕提示选择第一项“Compile Barnyard2 for MySQL”、“Start Compiling Barnyard2 for MySQL ”
这里需要注意,选择第一项,Cygwin开始从互联网安装下列组件:
unzip,zip,bison,automake,cmake,gcc-core,gcc-g++,libtool,make,libreadline-devel,zlib,zlib-devel,perl,patch,libgmp-devel,libedit-devel,libmariadb-devel,mariadb-common
选择带MySQL组件的Barnyard2,接下来,开始Cygwin程序安装。通过Compile.bat批处理文件来调用go-compile-m.sh脚本文件。编译完后将会生成可执行文件,并打包成压缩包。
经过一段时间编译,程序安装完成后在D盘根目录下产生名为barnyard2-x64-2.1.14-build337.zip的压缩包。
我们将barnyard2-mysql-x6402.1.14-build337压缩包放到D:\winids目录,我们在安装配置barnyard2时会用到。
总结:
本文介绍了如何制作Windows环境下barnyard2的二进制安装包。本节的操作内容比较简单,主要作为上一节IDS部署补充知识点。如果大家还对Linux环境下如何源码编译安装Barnyard2的方法不太了解可参考课程《手动构建Snort系统》https://edu.51cto.com/course/23698.html ,另外在Windows环境下编译程序,还有几个值得注意的地方:
- 服务器必须采用有线网卡连接交换机,尽量不要采用手机热点联网;
- Win系统主机名:winids;
- 系统硬盘分为两个分区:C:安装操作系统,D:数据分区,用于安装Cygwin;
- 所有软件均安装到D:\winids目录,所有原始安装包都集中存放在D:\temp;
- 使用administrator系统管理员身份登录系统进行各项操作;
- 软件cygwin不要安装在C盘,本实验安装在D盘;
- 在Windows环境下以系统管理员权限打开CMD窗口;
- 将7z.zip文件解压缩,放到C:\Windows目录下;