实验9-10 在Windows下搭建入侵检测平台

实验九-实验十 在Windows下搭建入侵检测平台

实验目的:掌握在Windows中搭建基于snort的入侵检测系统(IDS),熟悉简单的配置方法,能够使用IDS检测并分析网络中的数据流。

Snort是一个强大的基于误用检测的轻量级网络入侵检测系统,它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时警报。

实验环境:windows

实验步骤

  1. 安装所需软件:
    1. WinPcap(WinPcap_4_1_2.exe):windows下的捕获网络数据包的驱动程序库
    2. Snort(Snort_2_9_2_2_Installer.zip):将其捕获的数据发送至数据库,可在官网一并下载snort规则库
    3. PHPStudy:PHPStudy集成了apache、php、MySQL环境,不需要单独装这三个软件
    4. Acid(acid-0.9.6b23.tar.gz):是基于php的入侵检测数据库分析控制台。通过adodb从mssql.snort数据库中读取数据,将分析结果显示在网页上,并使用jpgraph组件对其进行图形化分析
    5. Adodb(adodb465.zip):php数据库的连接组件
    6. Jpgraph(jpgraph-3.0.7.tar.gz):Object-Oriented图形链接库For PHP
    7. Snortrules(snortrules-snapshot-2923.tar.gz):Snort检测规则库

具体步骤如下:

1. 安装phpstudy

实验9-10 在Windows下搭建入侵检测平台_第1张图片

安装成功启动后页面如下:
实验9-10 在Windows下搭建入侵检测平台_第2张图片

实验9-10 在Windows下搭建入侵检测平台_第3张图片
(127.0.0.1可以打开即可,内容不一定是hello world)
用PHP study的话可以替换掉最开始麻烦的apache、php、mysql等的安装,后续在配置时稍微修改下就可以。

2. 安装winpcap

双击WinPcap_4_1_2.exe,按照向导提示安装即可。

3. 安装snort

解压缩Snort_2_9_2_2_Installer.zip,默认安装即可,安装完成后使用下面命令测试是否安装成功:

c:\snort\bin> snort -W (W为大写)

使用命令时记得进入到自己的所安装的snort的bin目录下,比如我的是F:\snort\bin
实验9-10 在Windows下搭建入侵检测平台_第4张图片
当你看到左上角有个可爱的小猪,说明你安装成功了。

4. 安装和配置mysql

因为我选择用之前安装好的phpstudy进行实验,所以需要在phpstudy中进行相关的配置。

刚安装的同学可以先配置mysql的环境变量,后续可以直接在cmd中打开mysql,教程 ctrl+鼠标点击教程跳转

配置成功后,类似效果如下:实验9-10 在Windows下搭建入侵检测平台_第5张图片
在MySQL的dos控制台中建立snort库和snort_archive库。

mysql> create database snort;

mysql> create database snort_archive;

mysql> use snort

mysql> source create_mysql(create_mysql文件在.\Snort\schemas\下,复制到MySQL下的bin目录中,才可以使用

mysql> show tables;

mysql> use snort_archive

mysql> source create_mysql

mysql> show tables;

为mysql建立snort和acid账号,使idscenter或acid能访问mysql中与snort有关的数据库文件

使用语句:

mysql> grant usage on . to “acid”@“localhost” identified by “acidtest”;

mysql> grant usage on . to “snort”@“localhost” identified by “snorttest”;

再为snort和acid账户分配相关权限,语句:

mysql> grant select,insert,update,delete,create,alter on snort .* to “snort”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort .* to “acid”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort_archive .* to “snort”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort_archive .* to “acid”@“localhost”;
为acid用户和snort用户设置密码
mysql>set password for “snort”@“localhost” = password(“your password”);
mysql>set password for “acid”@“localhost” = password(“your password”);

5. 安装adodb

实验9-10 在Windows下搭建入侵检测平台_第6张图片
解压缩adodb465.tgz到D:\phpStudy\PHPTutorial\php\php-5.2.17目录下

因为原实验文档中所选择的php版本较低,使用高版本php会报错,故选择PHP study中最低版本的php

实验9-10 在Windows下搭建入侵检测平台_第7张图片

可在这里切换,切换后重启

6. 安装jpgraph

解压缩jpgraph-x.x.x.tar.gz到D:\phpStudy\PHPTutorial\php\php-5.2.17
实验9-10 在Windows下搭建入侵检测平台_第8张图片
⑨ 安装acid

解压缩acid-0.9.6b23.tar.gz到D:\phpStudy\PHPTutorial\WWW\acid目录下。

在开启PHP study后可以通过浏览器访问到acid,类似如下:
实验9-10 在Windows下搭建入侵检测平台_第9张图片
修改acid_conf.php为下列格式,(用写字板打开)。

$DBlib_path = “D:\phpStudy\PHPTutorial\php\php-5.2.17\adodb465\adodb”;

$DBtype = “mysql”

$alert_dbname = “snort”;

$alert_host = “localhost”;

$alert_port = “”;

$alert_user = “snort”;

$alert_password = “your password”;

$archive_dbname = “snort_archive”;

$archive_host = “localhost”;

$archive_port = “”;

$archive_user =“acid”;

$archive_password = “your password”;

$ChartLib_path = “D:\phpStudy\PHPTutorial\php\php-5.2.17\jpgraph-2.3.3”;

具体的路径信息根据个人的安装路径差别略有不同,仅供参考

重启apache服务。

浏览器打开http://主机IP地址/acid/acid_db_setup.php建立acid运行必须的数据库。鼠标点击create ACID AG

7. 配置snort

针对snort文件夹中没有的文件,可以在资料包中的另外两个snort文件中找到,直接复制过来就可以

Snort安装好后,需要配置etc里面的snort.conf文件。

windows下snort.conf文件必须修改的几处:

原: var RULE_PATH …/rules
改为: var RULE_PATH F:\Snort\rules

原: #dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
改为:dynamicpreprocessor directory F:\Snort\lib\snort_dynamicpreprocessor(后面一定不要有/)

原: #dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
改为:dynamicengine F:\Snort\lib\snort_dynamicengine\sf_engine.dll

原:#dynamicdetection directory /usr/local/lib/snort_dynamicrules
改为:dynamicdetection directory F:\Snort\lib\snort_dynamicrules

然后将F:\Snort\so_rules\precompiled\FC-12\i386\2.9.0.1里的所有文件拷贝到F:\Snort\lib\snort_dynamicrules //上面的FC-12不一定对,可以先试一下。看各自的系统都不一样。

原: include classification.config 改为: include F:\Snort\etc\classification.config

原: include reference.config 改为: include F:\Snort\etc\reference.config

原: # include threshold.conf 改为: include F:\Snort\etc\threshold.conf

原:# Does nothing in IDS mode
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6
在之前加上#,注释掉。

原:preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
改为:preprocessor http_inspect: global iis_unicode_map C:\Snort\etc\unicode.map 1252 compress_depth 65535 decompress_depth 65535
因为在windows下unicode.map这个文件在etc文件夹下。

修改配置文件时需要自行配置数据库,实验文档没写
在#database下修改,并取消注释,比如:

output database: log, mysql, user=snort password=snort dbname=snort host=127.0.0.1 port=3306
output database: alert, mysql, user=snort password=snort dbname=snort host=127.0.0.1 port=3306

配置好后,保存。

下载并导入规则库

windows下安装好snort后默认是没有规则库,需要自己下载。导入规则文件库,解压下载下来的snort-2.9.0.3.tar.zip,得到四个文件夹。将文件夹下的文件复制到snort安装目录下对应的文件中。

设置预处理器(非必要)

在snort.conf里面可以直接设置某些检测的预处理器,比如:

设置端口扫描的预处理器,把第二行的注释取消,并在最后加上log的保存文件。
# Portscan detection. For more information, see README.sfportscan
# preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }logfile { postscan.log }

设置arp欺骗的预处理器,同样取消注释,把IP和MAC改为你的IP和MAC值。
# preprocessor arpspoof
# preprocessor arpspoof_detect_host: 192.168.1.76 BC:AE:C5:81:BE:95

其他预处理器设置类似。

设置输出

在这下面设置你的输出,需要输出什么就注释掉对应的行。
###################################################
# Step #6: Configure output plugins
# For more information, see Snort Manual, Configuring Snort - Output Modules
###################################################

比如:
# syslog
# output alert_syslog: LOG_AUTH LOG_ALERT

# pcap
# output log_tcpdump: tcpdump.log

插入output alert_fast: alert.ids(输出fast模式的报警日志)

选择网卡:

进入命令行,在snort.exe文件所在目录用snort -W查看系统可用网络接口。记住需要监视的网卡的编号,比如为2,那么在以后的使用中,用-i 2就可以选择对应的网卡。

将snort安装为系统服务:(非必要

C:\Snort\bin>snort /SERVICE /INSTALL -c …/etc/snort.conf -i 2 -l …/snort/log -de

[SNORT_SERVICE] Successfully added the Snort service to the Services database. 如果看到上面的提示说明是成功的。

在测试之前,你要在local.rules文档里加入下面的语句:

alert ip any any -> any any (msg: “IP Packet detected”;sid:1000000;)

完成后通过命令启动IDS模式的snort

snort -i2 -de -l …/log -c …/etc/snort.conf。

命令执行后的DOS界面如图:
实验9-10 在Windows下搭建入侵检测平台_第10张图片
实验9-10 在Windows下搭建入侵检测平台_第11张图片
出现Commencing packet processing时就可以成功监听,运行不成功可能是权限不够,win+x以管理员身份打开powershell

此时浏览器输入http://127.0.0.1/acid/acid-0.9.6b23/acid/acid_main.php会出现类似如下入侵检测数据库分析控制台界面:

实验9-10 在Windows下搭建入侵检测平台_第12张图片
有任何问题可以评论区交流~

你可能感兴趣的:(网安实验,windows,php,数据库)