基于Windows的入侵检测snort BASE.docx
《基于Windows的入侵检测snort BASE.docx》由会员分享,可在线阅读,更多相关《基于Windows的入侵检测snort BASE.docx(22页珍藏版)》请在冰豆网上搜索。
基于Windows的入侵检测snortBASE
基于windows的入侵检测系统配置和验证综合实验
1.实验目的
●通过本实验,学习和熟悉在windows环境下配置入侵检测系统的步骤
●掌握构成windows环境入侵检测系统的各种软件的安装和使用方法。
●熟悉一些常用的入侵检测系统配置和操作命令及方法。
2.实验要求
2.1预备知识
在windows下建立入侵检测系统一般采用“传感器—数据库—分析平台”的三层架构体系架构。
本实验基于Snort和BASE进行构建入侵检测系统。
传感器即网络数据包捕获转储程序,其中WinPcap作为系统底层网络接口驱动,Snort作为数据报捕获、筛选和转储程序,二者即可构成IDS的传感器部件。
为了完整覆盖监控可以根据网络分布情况在多个网络关键节点上分别部署IDS传感器。
要监听流经本机网卡的所有数据包,必须绕过系统正常工作的处理机制,直接访问网络底层,需要把网卡的工作模式置于混杂(promiscuous)模式。
当网络接口处于这种“混杂”方式时,该网络接口具备“广播地址”,它对所有接收到的帧都产生硬件中断以提醒操作系统处理流经该物理媒体上的每一个报文(绝大多数的网络接口具备置成promiscuous方式的能力)。
操作系统直接访问数据链路层,截获相关数据,由应用程序而非上层如IP层、TCP层协议对数据过滤处理,这样就可以监听到流经网卡的所有数据。
在实际应用中,其中存在若干用户不关心的数据,严重影响了系统工作效率。
因此需要对数据包进行过滤,只将用户关心的敏感数据向上层提交,从而提高工作效率。
包捕获和包过滤通常在内核层,具体实现依赖于操作系统。
这样就需要提供一个这样的库:
它建立在包捕获和包过滤模块之上,依赖于操作系统,但提供一套系统无关的调用接口供用户空间程序使用,用户程序通过它与内核部分通信而且能独立于操作系统。
Libpcap(其Windows版本为WinPcap)就是这样的一个函数库。
Snort是一套非常优秀的开放源代码网络监测系统,在网络安全界有着非常广泛的应用。
其基本原理基于网络嗅探,即抓取并记录经过检测节点以太网接口的数据包并对其进行协议分析,筛选出符合危险特征的或是特殊的流量。
网络管理员可以根据警示信息分析网络中的异常情况,及时发现入侵网络的行为。
数据库用来存储入侵检测系统的数据包信息,本实验采用MySQL数据库,在Snort获得记录信息后直接存储到MySQL数据库中。
由于Snort的日志记录仅仅包含网络数据包的原始信息,使用WEB平台下的BASE软件对这些大量的原始信息进行操作查询数据库的分析。
这三种角色既可以部署于同一个主机平台也可以部署在不同的物理平台上,架构组织非常灵活。
如果仅仅需要一个测试研究环境,单服务器部署是一个不错的选择;而如果需要一个稳定高效的专业IDS平台,那么多层分布的IDS无论是在安全还是在性能方面都能够满足。
具体的部署方案还要取决于实际环境需求。
2.2实验完成要求
(1)参考实验步骤,在虚拟机上建立在windows环境下的入侵检测系统
(2)按照实验报告要求如实填写好实验报告。
3.实验环境
本实验的网络环境为TCP/IP交换环境,需要用到安装有windows操作系统虚拟机的学生主机1台。
(真实系统与虚拟机系统连接图)
4.准备工作
1)学生实验用机安装有虚拟机VMwareWorkstation软件,并装有包含2个分区的window操作系统。
2)本实验在进行过程中需要使用到以下软件,请从实验系统页面下载并统一保存到非系统分区D:
\IdsInstallTool文件夹下。
①WinPcap_4_0_2安装程序
②Snort2.8.0forWin32安装程序
③Snort规则库;
④mysql-6.0.7-alpha-win32安装程序
⑤PHP5的数据库连接组件:
adodb506a
⑥Apache2.2.6forWin32-x86withOpenSSL0.9.8e
⑦PHP5.2.4forWin32Non-install
⑧WEB前端:
BasicAnalysisandSecurityEngine1.3.6
⑨nmap-4.75-setup
⑩Nessus.exe
5.实验步骤
5.1实验任务一:
部署传感器组件
1)安装WinPcap程序,点击已下载的安装文件WinPcap4.0.2.exe,执行默认安装过程,完成安装。
2)安装并配置Snort程序。
(1)点击已下载的安装文件Snort2.8.3.1.Installer.exe,开始安装。
图1.2.1选择snort默认支持的数据库类型
图1.2.2选择默认的snort安装组件
设置snort的安装路径,将snort安装在非系统分区内,可设为D:
\Snort。
然后点击next按钮,进入最后一步,再点击close按钮完成安装。
图1.2.3设置的snort安装路径
(2)将下载的snort规则包snortrules-snapshot-CURRENT.tar.gz进行解压,并将解压后生成的“rules”文件夹下的所有内容拷贝到d:
\snort\rules下。
(3)用写字板程序打开snort的配置文件d:
\snort\etc\snort.conf,对其进行如下编辑:
①设置本机所在网络地址,根据实验环境真实网络地址,将配置文件中原有的
varHOME_NETany
更改如下:
varHOME_NET192.168.X.X/24
②设置规则包路径,将配置文件中原有的
varRULE_PATH../rules
更改如下:
vard:
\snort\rules
③设置数据库连接,将配置文件中的原有配置
#outputdatabase:
log,mysql,user=rootpassword=testdbname=dbhost=localhost
更改如下(其中user,password字段需与后面步骤中设置数据库用户时一致):
outputdatabase:
log,mysql,user=snortuserpassword=snortdbname=snortdbhost=localhost
④设置动态预处理库目录,将配置文件中原有的
dynamicpreprocessordirectory/usr/local/lib/snort_dynamicpreprocessor/
dynamicengine/usr/local/lib/snort_dynamicengine/libsf_engine.so
更改如下:
dynamicpreprocessordirectoryD:
\Snort\lib\snort_dynamicpreprocessor
dynamicengineD:
\Snort\lib\snort_dynamicengine\sf_engine.dll
3)安装并配置MySQL数据库程序,将已下载的mysql-6.0.7-alpha-win32.Zip压缩包进行解压,然后点击生成的Setup.Exe程序进行安装
图1.3.1选择MySQL自定义安装方式
更改MySQL的安装路径,将其安装在非系统分区下,再点击“NEXT”按钮进入下一步,然后点击“IINSTALL”按钮执行安装。
图1.3.2设置MySQL的安装路径
安装的最后一步选择马上配置选项,然后点击“FINISH”按钮完成安装
图1.3.3完成MySQL的安装
下一步进行配置MySQL数据库,选择MySQL配置类型为详细配置:
图1.3.4选择MySQL配置类型
下一步,选择服务类型为服务器形式。
图1.3.5选择MySQL服务类型
下一步,选择MySQL应用方式为多功能数据库类型
图1.3.6选择MySQL应用方式
下一步,选择MySQL数据表存放目录地址:
D:
\Data
图1.3.7选择MySQL数据表存放目录
下一步,选择MySQL并发连接数为由策略支持类型
图1.3.8选择MySQL并发连接数
下一步,设置MySQL网络选项,使其支持TCP/IP网络环境,开启StrictMode
图1.3.9配置MySQL网络选项
下一步,选择MySQL默认字符集为utf8类型。
图1.3.10选择MySQL默认字符集
下一步,选择MySQL开启命令控制台选项
图1.3.11开启MySQL命令控制台
下一步,设置MySQLroot用户口令,用户root为数据库管理员帐号,该用户及其口令用于数据库初始登录口令。
图1.3.11设置MySQL根用户密码
最后,点击“EXECUTE”按纽,执行配置,执行完毕后点击“FINISH”完成配置。
4)创建数据库和用户,并授予权限。
进入windows命令提示符界面,输入登录命令:
mysql-uroot-p并在提示下输入安装过程中设置的root账户密码。
图1.4.1登录MySQL命令控制台
建立数据库snortdb,snortarc和数据库用户snortuser,并对snortuser进行授权,命令如下:
mysql>createdatabasesnortdb;
mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnortdb.*tosnortuser@localhostidentifiedby"111111";(注意此处密码的设置需与后步操作中的一致)
mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnortarc.*tosnortuser@localhostidentifiedby"111111";
5)最后,退出MySQL命令行控制台,继续在windows命令提示符界面下,将snort安装文件中的MySQL数据库文件导入MySQL数据库系统。
导入数据库信息命令如下:
mysql-uroot-p\snort\schemas\create_mysqlsnortdb
mysql-uroot-p\snort\schemas\create_mysqlsnortarc
完成后查看数据库情况,确认创建成功。
5.2实验任务二:
部署分析平台
1)安装Apache程序,点击已下载的apache_2.2.10-win32-x86-openssl-0.9.8i.Msi文件开始安装。
在对Apache服务器的信息进行配置时,按下图进行填写。
图2.1.1配置Apache服务器信息
下一步,选择安装的类型为自定义安装。
图2.1.2选择安装类型
下一步,按下图选择Apache安装文件,并设置安装路径为D:
\Appalication\Apache\
最后点击“NEXT”按钮,执行安装
图2.1.3选择Apache安装文件及安装路径
安装完毕后,用写字板程序打开D:
\Application\Apache\conf\httpd.conf,对Apache的配置文件进行如下编辑,注意在Apache配置文件中目录层次一律使用正斜杠分隔:
①设置网站根目录,将配置文件中原有的
DocumentRoot"D:
/Application/Apache/htdocs"
/Application/Apache/htdocs">
更改如下:
DocumentRoot"D:
/Application/wwwroot"
/Application/wwwroot">
②添加php默认目录索引,将配置文件中原有的
DirectoryIndexindex.html
更改如下:
DirectoryIndexindex.htmlindex.htmindex.Php
2)安装配置PHP软件
将已下载的PHP非安装软件包php-5.2.5-Win32.Zip进行解压,解压后文件放置于目录D:
\Application\php。
在安装目录D:
\Application\php下,将文件php.ini-dist进行复制并粘贴在同一文件夹下,新文件重命名为php.Ini,再用写字板程序编辑php.Ini内容如下:
①设置扩展库目录,将配置文件中原有的
extension_dir="./"
更改如下:
extension_dir="D:
\Application\php\ext"
②开启所需的扩展插件,将配置文件中原有的
;extension=php_gd2.dll
;extension=php_mysql.dll
更改如下:
extension=php_gd2.dll
extension=php_mysql.dll
3)对PHP与Apache进行整合
在Apache的配置文件D:
\Application\Apache\conf\httpd.Conf的最下方添加以下语句,从而提供Apache对PHP的支持:
#自定义设置,注意使用正斜杠
PHPIniDir"d:
/Application/php"
LoadFile"d:
/Application/php/php5ts.dll"
LoadModulephp5_module"d:
/Application/php/php5apache2_2.dll"
AddTypeapplication/x-httpd-php.php
设置完成后重启Apache确认是否运行正常,假如出现错误,可以使用Apache的TestConfiguration查找错误原因。
4)安装并设置PHP的插件
(1)安装PHP与数据库连接插件adodb,将已下载的adodb506a.tgz软件包解压缩,并将其复制到WEB发布目录下,即:
D:
\Application\wwwroot\adodb5,注意后面在配置BASE时会需要设定这个目录进行调用。
(2)安装PHP图形插件,进入windows命令提示符,并进入到PHP的主目录下,运行Pear插件的安装脚本go-pear.bat对pear安装选项进行配置,安装过程中输入:
local命令选择拷贝本地文件进行安装,再次输入命令:
yes进行确认,最后回车开始默认安装过程,具体过程如图:
图2.4.1安装Pear插件
(3)安装PHP的Pear图表支持插件在命令提示付中进入pear.bat所在目录,即D:
\Application\php。
输入以下命令:
pearinstallimage_color
pearinstallimage_canvas-alpha
pearinstallimage_graph-alpha
pearlist (查看当前pear安装情况)
5)安装并配置BASE平台
将已下载的base-1.4.1-src.Zip解压缩,再复制并重命名BASE软件包base,再将其放至于WEB发布
目录:
D:
\Application\wwwroot\base
首先打开并编辑D:
\application\base\includes\base_action.inc.php文件,将文件中原有的
include_once("Mail.php");//r.riouxaddedforPEAR:
:
Mail
include_once("Mail/mime.php");//r.riouxaddedforPEAR:
:
Mailattachments
更改如下:
#include_once("Mail.php");//r.riouxaddedforPEAR:
:
Mail
#include_once("Mail/mime.php");//r.riouxaddedforPEAR:
:
Mailattachments
然后在浏览器中输入:
http:
//localhost/base/setup/进行初始配置;
打开配置页面后,点击“Continue”进入到下一步。
图2.5.1配置base界面
第一步,选择BASE平台语言为“chinese”,然后将PHP的adobe组件软件包的路径输入。
图2.5.2输入adodb组件的安装目录
第二步,输入安装数据库时所配置的数据库名和用户名,及其密码。
图2.5.3输入数据库相关信息
第三步,可以不设置BASE的用户认证与管理员账号信息,直接点击“提交查询内容”进入下一步。
图2.5.4设置BASE的用户认证与管理员账号信息
第4步,点击“CreateBASEAG”创建BASE的AG库,进入下一步。
图2.5.5创建BASE的AG库
最后一步,直接点击“step5”,完成BASE的设置。
图2.5.6完成BASE设置
完成设置后就可以使用http:
//localhost/base/地址登录使用BASE。
5.3实验任务三:
Snort服务设置及其测试
1)配置Snort服务
进入windows命令提示符界面,
(1)使用命令d:
\snort\bin\snort.exe–W可以查看当前主机上的所有网卡信息,以便在设置抓包接口时能够选择正确的监听网卡。
(2)使用d:
\snort\bin\snort-v–i2测试网络抓包是否正常,(-i2中的数值就是前面使用-W参数查看到的网卡的编号)。
注意完成后的统计信息,确保掉包率为0%。
(3)使用d:
\snort\bin\snort-cd:
\snort\etc\snort.conf-ld:
\snort\log-Kascii-i2测试最终使用的命令行参数运行正常。
(4)在命令行下进入Snort程序目录执行:
snort/SERVICE/INSTALL-cd:
\snort\etc\snort.conf-ld:
\snort\log-Kascii-i2收到'[SNORT_SERVICE]SuccessfullyaddedtheSnortservicetotheServicesdatabase.'信息就表示Snort已作为系统服务安装到主机中。
(5)进入services.msc启动Snort服务并设置为自动启动。
查看系统Eventlog无错误信息以确认Snort服务运行正常。
此时Snort以Windows系统服务的方式执行网络监听。
2)攻击测试
(1)在真实主机上使用NMAP工具对虚拟机进行端口扫描
在真实主机上打开已下载的nmap-4.75-setup软件包进行默认安装,安装后
登录系统命令提示符,再进入到nmap安装文件夹下,然后使用命令nmap对虚拟机系统进行扫描,扫描结果如下图:
图3.2.1nmap扫描结果
然后再返回虚拟机系统观测分析引擎报警数据。
(2)在真实主机上使用Nessus工具对虚拟机进行漏洞扫描
在真实主机上安装Nessus软件包后,先打开Nessus的用户管理,配置管理用户帐户及其口令,如下图:
图3.2.2增加Nessus用户
下一步,打开NessusServerConfiguration,配置服务段参数,配置完成后点击“NessusScannerService”按钮,开启服务端程序。
图3.2.3配置Nessus服务端
然后打开NessusClient,点击“Connect”按钮,打开连接管理窗口。
在连接管理窗口中点击添加本机IP,然后点击“Connect”开始连接服务端程序。
图3.2.4配置客户端的连接
连接成功后,再添加虚拟机ip地址,点击“Scannow”开始扫描。
图3.2.5添加扫描对象地址
扫描结束后,结果如下图所示:
最后,返回虚拟机系统上查看BASE记录下来的数据包和报警信息
图1-4-1登录BASE查看数据包和报警信息的界面
6.实验报告要求
写出实验完成过程,并记录各步骤中的配置命令,思考各部件之间的关系。