在Windows系统中安装软件,通常是一通Next...Finish,相比Linux要容易,所以很多同学在准备IDS实验环境时自然会想到采用Windows系统,本文对阅读者的网络基础知识以及对实验机器的配置要求都不高,适合新人学习。下面我们以Windows 2003 Server系统为例来安装Snort 2.9.0+MySQL+ACID。
1.准备实验环境
以下安装需用户准备Windows 2003 Server(32位 英文版)系统,随后不是安装Snort而是先安装AMP(Apache+MySQL+PHP+Perl) 集成运行环境。
Apache、MySQL 、PHP、Perl每一个开源工具在Windows下都有对于的二进制安装包,但对于新手而言将这些工具整合起来协同工作并非易事,所以本节安装采用集成安装包的方式,所谓集成安装包就是将这些功能打包在一个安装包中,免去了大量后期配置,是新人能够快速上手,面对多种安装方案,如何选择?Windows平台下的Web前端开发环境常见的有4种:
- AppServ
- XAMPP
- WAMP
- phpStudy
对比这4种工具,其中AppServer软件安装包最小,占用资源也比较少最适合新手完成实验。以administrator用户登录系统完成下列程序的安装。在Win2003及以上系统搭配的版本AppServ 8.5以上版本。
步骤2:启动Apache和MySQL
查看PHP环境
2.配置数据库
我们使用集成环境,不牵扯到安装数据库,为了确保新手顺利完成数据库的设置,这里采用先编写脚本,然后将脚本直接导入数据库的方式进行,打开文本编辑器先一个脚本setmysql.txt,内容如下:
下面我们简要分析一下这个脚本的内容:
• create database snort; //创建数据库snort;
• create database snort_archive; //创建数据库archive
• //下面分别授权用户acid、snort对数据库的操作权限
• grant usage on *.* to "acid"@"localhost" identified by "acidtest"; //创建账号acid,密码acidtest
• grant usage on *.* to "snort"@"localhost" identified by "snorttest"; //创建账号snort,密码snorttest
• set password for "acid"@"localhost" = password('123456'); //将用户acid设置访问密码
• set password for "snort"@"localhost" = password('123456');//将用户snort设置访问密码
• //下面这几条是为用户acid、snort分配数据库访问权限。
• grant select,insert,update,delete,create,alter on snort .* to "acid"@"localhost";
• grant select,insert,update,delete,create,alter on snort_archive .* to "acid"@"localhost";
• grant select,insert,update,delete,create,alter on snort .* to "snort"@"localhost";
• grant select,insert,update,delete,create,alter on snort_archive .* to "snort"@"localhost";
确认数据库已经启动之后,下面我们开始导入脚本setmysql.txt
查看新建的数据库信息
C:\mysql –u root –p
输入管理员密码
从上面的显示结果来看,成功导入这两个数据库。
• 注意:如果选择snort 2.9.1以上的版本取消了数据库输出插件,同样在schemas目录下也取消了create_mysql脚本。(将barnyard2-1.9.tar文件中目录schemas下的create_mysql模板导入c:\snort\目录)
3.安装Adodb、jpgraph-2.3.4
在安装文件夹内有adodb465.zip、jpgraph两个压缩包。我们需要将他解压到指定位置。将adodb、jpgraph都解压到C:\AppServ\php5\目录
4.安装ACID
将 ACID压缩包解压到C:\AppServ\www目录。
进入 c:\Appserv\www\acid\目录修改acid_conf.php配置文件。修改第12行如下图所示。
修改3~36,修改39~43行,如下图所示。
上面讲述的方法,同样适用于BASE安装。
5.安装PEAR
PEAR:PHP扩展与应用库(PHP Extension and Application Repository),这是出图的必备组件。
安装方法:
• 进入C:\AppServ\php5
• 将php.ini-dist复制成php.ini, 在php.ini文件中将 extensinotallow=php_mbstring.dll 移动到 extensinotallow=php_exif.dll 之前。
接着执行php5目录下的批处理文件go-pear.bat,注意如果选择其他版本的AppServ,在PHP目录下就没有go-pear.bat这个批处理文件。
回答问题,保持默认。
6.设置ACID
• 打开浏览器输入网址:http://127.0.0.1/acid/acid_db_setup.php
如果上述准备工作做好,我们可看到下面的画面。
在打开页面中点取“Create ACID AG”按钮,让系统自动在mysql中建立 acid 运行必须的数据库
点击Goto the Main page to use the application.
7.安装Snort
Snort默认安装在C盘系统分区,要确保有足够的磁盘剩余空间(至少20GB剩余空间)。
网络数据包截取驱动程序:WinPcap 4.1.3 (WinPcap_4_1_3.exe)
Windows版本的Snort安装包:Snort 2.9.0.4 for Win32
Snort和winpcap都保持默认安装路径。
在Snort安装完成之后,我们为了在命令行下启动snort方便,需要修改系统环境变量,具体做法如下图所示。
首次运行Snort,我们来查看snort相关命令和启动参数。
通过查询我们发现“-W”可以列出所有可用接口的列表,我们知道系统往往有多块网卡,我们需要知道Snort在那一块网卡上监听,所以用到下面的命令
Snort -W
网卡编号为1。下面我们分别以不同的模式来启动Snort。
8.嗅探模式启动Snort
开启嗅探模式,方法:snort –v –i1注意命令行的操作
注意,大家在做实验时,上面命令中”-i 1”参数是根据实验计算机来设定。此时还不会再C:\Snort\log目录记录任何信息,在另一台主机ping IDS主机,屏幕立刻显示报警信息。
9.数据包记录模式启动Snort
开启数据包记录(Packet Logger)模式,需要怎么操作?我们需要了解下面的知识点。Snort安装目录下默认有log文件夹,可将日志直接保存到该目录(c:\snort\log\)如果没有log目录我们可以手动创建。
参数解释:
- -dev 表示详细嗅探模式
- -h 表示监控网段,当不指定表示本机IP
- -l 表示日志内容的存储位置
- K 表示字符集以ASCII码存储,也就是文本格式
注意:如不指定目录的位置启动snort时就会出现下面的错误
备注:数据包记录器模式是 Snort 使用 Packet Logger 模式,把数据包记录到硬盘上,并指定到一个目录中,如果长期在这种模式下工作,会占用大量磁盘空间。
在Snort运行的同时,我们打开C:\snort\log目录观察里面文件的变化。在红色箭头所指的位置始终没有任何信息输出,信息都记录在了log目录下。可以看出里面出现了一些已Ip为命名的文件夹,进入文件夹里面是XXX.ids文件,我们可以用Notepad++打开。
10.IDS模式启动Snort
对于刚安装完成的Snort程序,我们还没有对它进行配置,如果直接用下面的命令启动会遇到系统报错。
C:\Snort\bin\snort –c c:\snort\etc\snort.conf –i1
好了,下面我们对Snort进行配置用文本编辑器打开c:\snort\etc\snort.conf。对于Snort 2.9的配置文件首先把ipvar改成var
对于预处理器的配置先不启动。下面开始设置输出插件。
把dynamic library 规则原先注销的规则都启用
完成snort.conf配置后保存退出。Snort测试规则和Linux环境中相同复制过来就可以直接使用,开始用下面的命令启动
这种报警会记录到文件。如何显示在屏幕呢,需要用到一个参数“”“-A console”,看个实例
11.安装Snort服务
将snort安装成系统服务,每次启动Snort都要到CMD控制台下,比较麻烦,如何将Snort设置为系统服务呢?我们输入下面的命令
[SNORT_SERVICE] Successfully added the Snort service to the Services database. 如果看到上面的提示说明是成功的。
此时我们打开系统服务检查Snort是否已经添加。
在这里右键点击Snort服务可以调节自动还是手动启动Snort服务。
注意事项:发现Snort进程出现错误,以外终止,我们可以到控制面板的事件查看器中打开应用程序日志,筛选出最近的日志。
12 总结
Windows环境下安装Snort IDS,虽然省去源码编译和安装依赖包的问题,但配置和启动Snort有些小问题(找不到网卡,无法启动Snort),需要我们在试验过程中特别注意。本文讲述的这种架构比较简单,如果使用最新的Snort输出插件不支持MySQL连接 。我们可以编译Barnyard2源码生产可执行文件,利用Barnyard2输出插件来连接数据库。