随着网络的不断发展,网络安全也越来越受到关注,原有的防火墙已经越来越难以独立保障网络的安全,这其中包含很多原因,主要是由于防火墙始终在明处抵挡外来的攻击,黑客针对防火墙的手段不断翻新,让它防不胜防,另一方面,很多攻击来源于网络内部,例如内部用户的越权操作或恶意破坏等,这些都对网络安全构成了极大的威胁。为更全面的保护网络不受攻击,入侵检测系统将发挥出不可替代的作用。首先入侵检测是被动式的,它的传感器节点可以遍布在网络中,攻击者不易觉察,即使有个别点被破坏,也不会全部瘫痪。其次,入侵检测的传感器节点处在内部网络中,可以很好的发现并杜绝内部用户的越权操作。由此可见,将防火墙和入侵检测结合起来使用可以更有效的保证网络安全。
本文将介绍一个轻载的建立在windows平台上的入侵检测系统winsnortacid1.7的安装和使用,所谓轻载是指该软件在运行的时候只占用极少的网络资源,对原有网络性能影响很小。以下将分步介绍winsnortacid1.7的安装过程。
snort是自由软件,可以从Internet上免费下载, 要完整的安装winsnortacid1.7必须先从snort(www.snort.org)的站点上下载以下软件:
Snort (Win32 MySQL Binary!) 1.7.1;
Snort Rules 1.7;
WinPcap 2.2;
MySQL Shareware 3.23.40;
"create_mysql" database creator;
PHP 4.0.6;
ADODB 1.1.2;
ACID 0.9.6b6;
万事俱备后就可以开始安装了。
一、安装Snort MySQL Version 1.7
1. 在C盘生成5个目录:"C:\Snort" , "C:\Snort\PHP”, "C:\Snort\ADODB", "C:\Snort\Bin" , "C:\Snort\Logs";
2. 将Snort (Win32 MySQL Binary!) 1.7.1解压到"C:\Snort\Bin"目录;
3. 将Snort Rules 1.7解压到"C:\Snort\Bin",覆盖原有的rules;
4. 用写字板打开并编辑C:\Snort\Bin 目录下的snort.conf,找到"var HOME_NET any"语句,如果想监测所有网络,假设主机的IP为10.0.0.20,则改为10.0.0.0/24,如果只想监测本机则改为10.0.0.20/32,不改动则缺省是监测所有的网络;
5. 在snort.conf中查找以下语句:(引号以内)
"output database: log, mysql, user=snort dbname=snort host=localhost";
如果有同样的语句,就删除掉该句前的注释符”#”,没有就添加这条语句;
6. Snort.conf文件中的每个INCLUDE *.rules文件都必须写上完整的路径。如下例所示: include c:\snort\bin\exploit.rules
7. 安装WinPcap.exe;
8. 重新启动计算机;
二、安装MySQL Database
1. 如果在Windows 2000或XP Server或Advanced Server中运行了终端服务,那就必须从控制面板中的添加/删除中安装MySQL。否则就可以直接双击setup运行;
2. 选择所有的缺省设置,确保安装在c:根目录;
3. 如果一切正常,会在托盘中生成一个MySQL图标。笔者试着装了两次,虽然都没有报错,但也没有在托盘中自动生成小图标。不过,不要紧只要打开c:\ MySQL\bin目录下的winmysqladmin.exe,就都搞掂了;
4. 右键单击托盘中的MySQL图标,选择Show Me;
5. 选择Start Check活页,那里的一切都应该显示ok或yes。如果没有这样,就重新启动一次计算机再检查一次;
6. 选择my.ini setup活页,输入用户名和密码,然后点击Save Modifications按钮,保存修改的文件;
7. 点击Create Shortcut on Start Menu按钮,将在启动组里添加MySQL。以后每次重新启动计算机时,MySQL都会自动启动;
三、生成一个Win32 MySQL database
1. 右键单击托盘内的MySQL图标,选择Show Me,MySQL显示在屏幕上,选择database活页,右键单击服务器名,选择Create Database,输入数据库名snort。
2. 要在命令模式下产生一个用户,在命令模式下进入C:\MySQL\Bin目录,输入MySQL,此时屏幕上会显示mysql,输入:\u mysql;再输入:
grant INSERT,SELECT,CREATE,DELETE on snort.* to snort@localhost; ;
确定用户已经添加进去,在"mysql "模式下输入:\u mysql ,
3. 在"mysql "模式下输入:show tables;(会看到一个列表,显示了user entry),
4. 在"mysql "模式下输入:select * from user;(会看到列出了用户snort);
四、在MySQL中生成Acid的库表
1. 拷贝"create_mysql"文件到C:\MySQL\Bin目录;
2. 在命令模式下进入到"C:\MySQL\Bin"目录,输入:
MySQL -u snort snort
为了确信这些列表确实添加了,可以打开MySQL,选择Database活页,再选择Snort数据库,这时会看到生成的数据库列表;如果系统报错,不能添加列表进去,可以尝试输入以下语句:
MySQL -u snort@localhost snort
五、测试Snort
1. 在命令模式下进入到"C:\ Snort \Bin"目录,输入:Snort ?W,会看到罗列出的很多适配器,可以在他们上面安装入侵检测的传感器,这些适配器分别编号为:1,2,3,等;
2. 在"C:\Snort\Bin "模式下输入:
snort -v ?ix(X是传感器的编号,笔者选用了本机作为传感器,输入了snort -v ?i1);打开浏览器,随便访问一些网址,目的是为了生成一些网络流量,在windows的命令窗口中你将会看到所有连接的具体信息;
3. 在任务管理器中关掉这个进程;
4. 再回到命令模式,在"C:\Snort\Bin "下输入:
Snort -c C:\Snort\Bin\Snort.conf -l C:\Snort\Logs ?ix(X是传感器的编号),
如果不出意外,Snort会在"C:\Snort\Logs"目录下生成一个Alert.ids文件,笔者按照此方法做时,系统报错,后改为以下语句:
Snort -c C:\Snort\Bin\Snort.conf -l C:\Snort\Logs;最终在"C:\Snort\Logs"目录下成功生成一个Alert.ids文件,该文件可以用写字板打开查看;
5. 再在任务管理器中关掉这个进程;
六、将Snort设置成为windows NT4 Server / 2000 / XP的一项服务
1. 首先,需要安装两个windows资源工具:srvany.exe,instsrv.exe(这两个软件可以从Google.com上搜索到)。并将它们放到本机的根目录,在笔者机上的目录是d:\winnt,在其他机子上可能会是c:\WINDOWS或c:\winnt。
2. 在运行一栏中敲入cmd后回车,进入命令模式;
3. 必须先安装SRVANY服务,在命令模式中输入INSTSRV SrvAny \srvany.exe,其中是指srvany.exe放置的具体位置(笔者机子位置是d:\winnt);
4. 在命令模式下输入INSTSRV.EXE snort \SRVANY.EXE,其中是指srvany.exe放置的具体位置(笔者机子位置是d:\winnt);
5. 在运行框中添入regedit,开始编辑注册表。(首先备份原有的注册表文件,在注册表菜单下点击导出注册表文件,然后保存即可);
6. 在注册表中找到子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Snort,并且选中它;
7. 从编辑菜单中选择新建,选择项,然后输入Parameters;
8. 选中Parameters项,右键单击,选择新建,字符串,输入Application;
9. 右键单击Application,选择修改,输入C:\Snort\Bin\Snort.exe;
10. 选中Parameters项,右键单击,选择新建,字符串,输入AppParameters;
11. 右键单击AppParameters,选择修改,输入-c C:\Snort\Bin\Snort.conf -l C:\Snort\Logs -ix(x为传感器编号,本机输入的是1);
12. 选中Parameters项,右键单击,选择新建,字符串,输入AppDirectory;
13. 右键单击AppDirectory,选择修改,输入C:\Snort;
14. 从开始菜单-〉程序-管理工具,打开服务,右键单击snort,选择属性,选择启动方式为自动。
至此snort已经成功的安装在你的主机上了,但是为了方便管理,它还提供了一套配套的基于web页面的管理方式。具体安装方式如下:
七、安装PHP
1. 将PHP解压到C:\Snort\PHP目录。
2. 拷贝文件php.ini-dist到本机的根目录,并将它改名为php.ini。
3. 注意:笔者机子的根目录是d:\winnt,其它的有可能是c:\windows。
4. 用写字板打开php.ini,修改以下两个变量:
1) max_execution_time = 60
2) session.save_path = "\Temp" folder.
注意:指的是本机的根目录,笔者机子的根目录是d:\winnt,其它的有可能是c:\windows。
八、配置PHP运行在NT Server / 2000 / XP的IIS 4/5环境下
1. 打开管理工具中的Internet管理工具;
2. 右键单击默认web站点,选择属性;
3. 在主目录活页下,点击配置按钮,选择应用程序映射;
4. 点击添加按钮,在可执行程序框内添入c:\snort\php\php.exe
5. 在下面的扩展名框中添入.php;
6. 选择脚本引擎;
7. 点击确定即可。
九、安装ADODB ―― 一个高性能的数据库库
1. 解压ADODB到C:\Snort\ADODB目录,编辑ADODB.INC.PHP,找到$ADODB_Database,输入修改为$ADODB_Database = 'C:\Snort\adodb';
2. 解压并移动Acid到缺省的web站点目录下,笔者机子为d:\Inetpub\wwwroot3. 配置acid目录下的acid_conf.php,只需要修改以下变量:
$DBlib_path = "C:\Snort\ADODB";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "";
4. 重新启动计算机
5. 打开浏览器输入http://loca