在WINDOWS XP环境下部署基于网络的开源入侵监测平台——snort


写这个的主要原因是按照别人的步骤部署了snort平台后,部署失败,后来发现其实是一些环境变量设置的问题,并且其中还有个别小错误,也一并进行了纠正。若有表达不清楚的或者错误的地方欢迎大家留言告知。虽然版本有些老,不过主要目的是了解snort平台的使用,至于新版的snort平台,找时间测试一下。

要准备的软件:

Snort: 版本snort-2.8.3.1.Installer.exe,csdn下载  http://download.csdn.net/download/leonits/12046240

Snort 规则库:rules文件夹,csdn下载 http://download.csdn.net/download/leonits/12046258

Winpcap:版本3.1-WinPcap.exe,csdn下载 http://download.csdn.net/download/leonits/12046247

AppServ: 版本appserv-win32-2.5.10.exe,AppServ软件的安装可以代替Apache、PHP、MySQL、phpMyAdmin 4种软件各自的安装过程。说实话,不如wamp或者phpstudy方便。CSDN下载地址:http://download.csdn.net/download/leonits/12046237

acid-0.9.6b23: 基于php的入侵检测数据库分析控制台,用于安装snort的基础软件。 基于php的入侵检测数据库分析控制台,用于安装snort的基础软件。http://download.csdn.net/download/leonits/12046274

adodb: Snort软件部署须要的一个软件 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的中间函式组件。 虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据库的功能,一直未能标准化,每一种数据库,都使用另一种不同且不兼容的应用程序接口(API)。为了填补这个缺憾,因此才有 ADODB 的出现。

JpGraph:解压缩jpgraph-2.3.4.tar.gz,jpgraph的类在src目录下,每次使用都要引用src/jpgraph.php,然后再引用具体的图表类型的类,例如要画折线图,就要引入src/jpgraph_line.php。官网:https://jpgraph.net/
下载:

下面开始安装:

1.安装snort:

 运行snort-2.8.3.1.Installer.exe

 

Snort  安装完成后,“rule”文件夹中缺少文件,下载提供的规则库文件snortrules-snapshot-2.8.tar.rar,将其中的rules拷贝过来。

2.Winpcap

 步骤简单,此处略

3.AppServ:

选择安装目录为:C:\AppServ

1)点击AppServ安装程序,根据提示一步一步操作下去即可。

appserv详细安装教程

2)选择AppServ的安装目录,选择你要安装的目录,以方便管理

appserv详细安装教程

3)全部选中,点击下一步,继续安装appseerv

appserv详细安装教程

4)配置Apache中的Server Name、Email以及HTTP服务的端口,Server Name一般设置为localhost或者127.0.0.1,默认端口为:80,如果80端口已有其他服务,需要修改HTTP的服务端口,比如8080

 

appserv详细安装教程

4)配置AppServ中的Mysql服务用户名和密码   MySql服务数据库的默认管理帐户为root,默认字符集为UTF-8,可根据需要自行修改相关的字符集编码,一般英文UTF-8比较通用。中文GBK比较常用

appserv详细安装教程

5)下一步后开始自动安装AppServ,最后点击Finish后,AppServ会自动启动APACHE和MYSQL服务, 建议开机时自动启动,我在测试时没有选择开机自动启动AppServ,导致时常AppServ无法运行,每次都需要手工启动。

 

appserv详细安装教程

6)测试appserv是否安装配置成功,在浏览器中输入http://localhost,即可看到下图,说明AppServ安装成功了。

注意事项:

(1)Administrator's Email Address:输入管理员的邮箱地址。本机如果已经安装了IIS并且启动了Web Server,则会因为IIS Web Server默认在TCP 80 端口监听,和Apache Web Server发生冲突。可以修改Apache Web Server在其他端口监听,当然也可以禁用或者卸载IIS。此处将监听端口设置为8080,然后"Next"

(2)安装完成后,要将C:\AppServ\php5目录下的php.ini-dist文件改名为php.ini,并启动Apache和MySQL

AppServ安装成功后,在浏览器输入http://localhost:8080/,出现如下界面:

 

7)在浏览器地址栏中输入:http://localhost/phpMyAdmin/index.php,出现如下界面:

用户名:root

密码:安装时你设定的密码

进入界面如下:

8)配置AppServ

(1)编辑Apache服务器配置文件

打开安装目录下Apache2.2\conf文件夹里的httpd.conf,检查

ServerName localhost:80   

DocumentRoot "C:/AppServ/www"

(2)编辑phpMyAdmin中的关键文件

打开C:\AppServ\www\phpMyAdmin\libraries目录下的config.default.php文件,推荐以下修改:

(a)设置phpmyadmin的URL,$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/';这里假设phpMyAdmin在默认站点的根目录下

(b)设置root密码,$cfg['blowfish_secret'] = '******'; 其中******为你设置的root密码。

(c)$cfg['DefaultLang'] = 'zh-gb2312';

(d)$cfg['DefaultCharset'] = 'gb2312';

(e)$cfg['Servers'][$i]['auth_type'] = 'config'; 

(f)$cfg['Servers'][$i]['user'] = 'root';  //mysql管理员账户

(g)$cfg['Servers'][$i]['password'] = '******';

(3) 为安全起见,须删除MySQL安装后默认的any@%、any@localhost和root@%账号。

自己测试的话可以不做,若实际应用则必须做。

mysql>use mysql

mysql>delete from user where user=’’ and host=’%’

mysql>delete from db where user=’’ and host=’%’

mysql>delete from tables_priv where user=’’ and host=’%’

mysql>delete from columns_priv where user=’’ and host=’%’

mysql>delete from user where user=’’ and host=’localhost’

mysql>delete from db where user=’’ and host=’localhost’

mysql>delete from tables_priv where user=’’ and host=’localhost’

mysql>delete from columns_priv where user=’’ and host=’localhost’

mysql>delete from user where user=’root’ and host=’%’

mysql>delete from db where user=’root’ and host=’%’

mysql>delete from tables_priv where user=’root’ and host=’%’

mysql>delete from columns_priv where user=’root’ and host=’%’

注意,上面''是两个单引号!!这样,只允许root从localhost连接。

(4)配置PHP初始化文件php.ini

 先修改C:\AppServ\php5\php.ini,然后复制到C:\WINDOWS\一份,

配置如下:

open_basedir=C:\AppServ\www  //删除前面的;

magic_quotes_gpc=Off

file_uploads=Off

session.save_path="c:\windows\temp"   //删除前面的;

将“;extension=php_mysql.dll”中的前面一个“;”去掉.

修改 extension_dir = 和PHP实际的ext目录(扩展php_mysql.dll 的路径)不一致。

extension_dir = "C:\AppServ\php5\ext"

说明:

该步骤没做,也成功了。但又其他用户提到,所以请注意。
把PHP目录和ext目录添加到环境变量中。方法是:桌面>我的电脑>右键属性>高级>环境变量>系统变量>新建 建立一个(名:如phprc)(值:即指定到磁盘路径:/php/ext目录下)

该步骤没做,也成功了。因为发现安装system32目录下已经有了。

在系统的 system32(C:\windows\system32) 目录下缺少 libmysql.dll文件,解决方法是找到php目录下的libmysql.dll,并将libmysql.dll复制到C:\windows\system32目录中,然后重新启动Web服务。
 

(5)针对mysql进行。首先,建立Snort运行必需的Snort库和Snort_archive库:

c:\>mysql -u root -p

mysql>create database snort;

mysql>create database snort_archive;

此版本不用修改C:\Snort\schemas下的create_mysql文件。

 

(6)使用C:\Snort\schemas目录下的create_mysql脚本建立Snort运行时必需的数据表:

C:\AppServ\MySQL\bin\mysql -D snort -u root -p < C:\Snort\schemas\create_mysql

C:\AppServ\MySQL\bin\mysql -D snort_archive -u root -p < C:\Snort\schemas\create_mysql

执行完create_mysql脚本后,用户可以通过在mysql提示符下运行sql语句show tables来验证配置的正确性。

 

(7)必需在Apache服务器主机(本贴为localhost)上建立acid和snort用户,并为它们分配相关权限和访问密码,使acid能正常访问后台数据库mysql中snort相关的数据文件(该步骤也可以通过http://localhost/phpmyadmin/index.php图形界面操作):

MySQL>grant usage on *.* to "acid"@"localhost" identified by "acidtest";

MySQL>grant usage on *.* to "snort"@"localhost" identified by "snorttest";

MySQL>grant select, insert, update, delete, create, alter on snort.* to "acid"@"localhost";

MySQL>grant select, insert on snort.* to "snort"@"localhost";

MySQL>grant select, insert, update, delete, create, alter on snort_archive.* to "acid"@"localhost";

MySQL>set password for "snort"@"localhost"=password('snorttest');

MySQL>set password for "acid"@"localhost"=password('acidtest');

 

4.安装Adodb、jpgraph和ACID

将adodb和jpgraph复制到C:\AppServ\php5目录下,分别生成C:\AppServ\php5\adodb和C:\AppServ\php5\jpgraph目录。将acid-0.9.6b23复制到C:\AppServ\www目录下生成C:\AppServ\www\acid。

注意:adodb、jpgraph、acid目录名一定要相同

接下来修改C:\AppServ\www\acid中的acid_conf.php文件,如下:

$DBlib_path = "C:\AppServ\php5\adodb";

$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "acid";
$alert_password = "acidtest";

$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "acid";
$archive_password = "acidetest";

$ChartLib_path="C:\AppServ\php5\jpgraph\src"

5.配置Snort

编辑C:\Snort\etc\snort.conf。修改引用路径:

var HOME_NET any //修改为本主机的网段 例如:var HOME_NET 10.0.0.0/24

portvar HTTP_PORTS 80 //若本主机web服务器为8080或者其他,则修改为相应的端口

var RULE_PATH C:\snort\rules

dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

dynamicdetection directory C:\snort\lib\snort_dynamicrule

并设置Snort输出alert到mysql server:

output database: alert, MySql, host=localhost user=snort password=snorttest dbname=snort encoding=hex detail=full 

classification.config文件记录了关于snort规则分类的信息,reference.config文件中记录了一些关于报警信息的参考网站的URL,这些参考将在snort规则中引用。

snort.conf中的相对路径

include classification.config

include reference.config

改为绝对路径:

include C:\Snort\etc\classification.config

include C:\Snort\etc\reference.config

 

6.测试snort

命令行测试:

先打开Apache和MySql,打开cmd控制台

c:\snort\bin\>snort -c "C:\Snort\etc\snort.conf" -l "C:\Snort\log" -i 2 

//若想在控制台显示捕获的数据,可以加上 -vde 参数即可

//-i 2 后面这个数字代表的是你的第几块网络适配器,可以使用c:\snort\bin\>snort -W 查看本地连接属于第几块适配器

 

启动后,打开IE浏览器,先输入http://localhost/acid/acid_db_setup.php,图中箭头提示创建acid表,点击该按钮,然后出现屏幕上方出现四个表成功创建的记录,箭头位置变成”DONE“,即可。

然后再打开一个IE窗口,地址栏输入  http://localhost/acid/acid_main.php,出现下面的界面则表示平台已经运行。

在C:\Snort\rules目录下的local.rules中,添加自己的规则并进行测试。

例如:alert ip any any <-> any any (msg:"IP Packet Detected";sid:10000;)

之后用其他电脑或本主机ping测试,就可以在上面的界面中看到预警信息了。

注意:启动过程中可能会提示某个rules加载错误,

我遇到的是include $RULE_PATH/netbios.rules错误,直接在snort.conf文件中找到改规则前加#注释掉即可。

本贴的主要内容参考了下面的资料:
https://www.cnblogs.com/leaveyourownlife/p/4245022.html
https://jingyan.baidu.com/article/91f5db1bf72ac01c7f05e3a7.html
https://www.ibm.com/developerworks/cn/web/wa-snort1/

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值