实验7基于snort的IDS配置实验.docx
《实验7基于snort的IDS配置实验.docx》由会员分享,可在线阅读,更多相关《实验7基于snort的IDS配置实验.docx(18页珍藏版)》请在冰豆网上搜索。
实验7基于snort的IDS配置实验
实验7基于snort的IDS配置实验
1.实验目的
通过配置和利用Snort,了解入侵检测的大体概念和方式,掌握入侵检测工具的利用方式,能够对其进行配置。
2.实验原理
入侵检测大体概念
入侵检测系统(IntrusionDetectionSystem简称为IDS)工作在运算机网络系统中的关键节点上,通过实时地搜集和分析运算机网络或系统中的信息,来检查是不是出现违背安全策略的行为和是不是存在入侵的迹象,进而达到提示入侵、预防解决的目的。
入侵检测系统作为一种主动防护的网络安全技术,有效扩展了系统保护人员的安全管理能力,例如安全审计、监视、解决识别和响应的能力。
通过利用入侵检测系统,能够有效地避免或减轻来自网络的要挟,它已经成为防火墙以后的又一道安全屏障,并在各类不同的环境中发挥关键作用。
1.入侵检测系统分类
按照收集数据源的不同,IDS可分为基于网络的入侵检测系统(Network-basedIDS,简称NIDS)和基于主机的入侵检测系统(Host-basedIDS,简称HIDS)。
NIDS利用监听的方式,在网络通信的原始数据包中寻觅符合网络入侵模版的数据包。
NIDS的网络分析引擎放置在需要保护的网段内,独立于被保护的机械之外,不会影响这些机械的CPU、I/O与磁盘等资源的利用,也不会影响业务系统的性能。
NIDS一般保护的是整个网段。
HIDS安装在被保护的机械上,在主机系统的审计日记或系统操作中查找信息源进行智能分析和判断,例如操作系统日记、系统进程、文件访问和注册表访问等信息。
由于HIDS安装在需要保护的主机系统上,这将影响应用系统的运行效率。
HIDS对主机系统固有的日记与监视能力有很高的依赖性,它一般保护的是其所在的系统。
NIDS和HIDS各有优缺点,联合利用这两种方式能够实现更好的检测效果。
2.入侵检测系统的实现技术
入侵检测系统的实现技术能够简单的分为两大类:
基于特征的检测(Signature-based)和基于异样的检测(Anomaly-based)。
基于特征的检测技术主要包括模式匹配和协议分析两种检测方式:
模式匹配就是将搜集到的信息与已知的网络入侵和系统误用模式知识库进行比较,以发觉入侵行为。
这种检测方式只需搜集相关的数据集合和保护一个知识库就可以进行判断,检测准确率和效率也相当高。
可是,该技术需要不断进行升级以对付不断出现的解决手法,而且不能检测未知解决手腕。
协议分析相对于模式匹配技术是一种更新的入侵检测技术。
它第一捕捉数据包,然后对数据包进行解析,包括网络协议分析和命令解析,在解析的代码中快速检测某个解决特征是不是存在。
协议分析技术大大减少了计算量,即便在高负载的高速网络上,也能逐个分析所有的数据包。
基于异样的检测技术有很多,例如采用统计模型、专家系统等技术来实现。
它第一要对系统的行为进行统计,取得系统正常使历时的统计性能,如访问次数、操作失败次数和延时等。
统计性能被用来与网络、系统的行为进行比较,当观察值在正常值范围之外时,IDS就会判断有入侵发生。
异样检测的长处是能够检测到未知入侵和复杂的入侵,缺点是误报、漏报率高。
3.入侵检测系统的部署原则
基于主机的入侵检测系统其安装部署简单,主要安装在检测的主机系统中,而基于网络的入侵检测系统复杂很多,需要考虑部署原则,以优化性能。
NIDS总的来讲包括探测器和控制台两个部份:
探测器(Sensor)是专用的硬件设备,负责网络数据流的捕捉、分析检测和报警等功能。
控制台(Console)是管理探测器的工具,它负责接收探测器的检测日记数据,并提供数据查询和报告生成等功能,一个控制台能够管理多个探测器。
NIDS探测器的大体部署原则是保证每一个网络数据包都能够被探测器侦听和捕捉。
共享式局域网是最简单的网络,它由共享式HUB连接各个主机。
在这种网络环境下,一般来讲,只需要配置一个网络探测器就可以够达到监控全网的目的。
对于简单的互换式网络,即互换机中存在一个能够监听所有端口的SPAN端口(即监听端口)。
在这种环境下,只要将SPAN端口设置为监听所有端口的模式,并在此端口配置一个网络探测器,就可以够实现对内部网络安全的控制。
而对于复杂的互换式局域网,存在多个不同的互换机,且没有SPAN端口的网络,这时要想让一个探测器监听所有的互换机上的内容是不现实的,因此必需有多个探测器进行监听。
从另外一种角度分析,咱们能够将一个复杂的互换式局域网分成多个简单的互换式网络或共享式网络组成,只要保证所有子网的流量能被探测器捕捉就可以够实现对整个网络安全的控制。
Snort简介
Snort最初只是一个简单的网络管理工具,后来进展成一个遍及世界的企业散布式入侵检测系统。
自从1998年Snort诞生以来,现在有几十万个探测器散布活着界各地,已经成为应用最普遍的NIDS。
它的开创者MartyRoesch最初将Snort设计为一个辅助分析网络流量的个人工具。
那时的Snort只是将二进制tcpdump数据转换成用户可读的形式,“Snort”那个名字只是随意起的。
Snort作为一个免费的、跨平台的软件包,能够用作监视小型TCP/IP网的嗅探器、日记记录、入侵探测器。
它能够运行在Linux/UNIX和Win32系统上,Snort的功能很多,如实时通信分析和信息包记录、包装有效载荷检查、协议分析和内容查询匹配、探测缓冲溢出、秘密端口扫描、CGI解决、SMB探测、操作系统侵入尝试、对系统日记、指定文件、Unixsocket或通过Samba的WinPopus进行实时报警。
Snort有三种主要模式:
数据包嗅探器、信息包记录器或成熟的侵入探测系统。
遵循开发/自由软件最重要的老例,Snort支持各类形式的插件、扩充和定制,包括数据库或是XML记录、小帧探测和统计的异样探测等。
信息包有效载荷探测是Snort最有效的一个特点,这就意味着很多额外种类的入侵行为能够被探测到。
对于Snort的分析主要集中在对于其规则(rule)的分析,由于Snort采用模式匹配的方式进行检测,所以这些规则就是入侵检测的核心部份。
各类网络解决,病毒的特征代码,都被编制成相应Snort的规则,通过检测误用,实现对外来入侵的识别。
在分析规则的基础上,通过在网上找最新的解决方式的特征代码,尝试编制新的规则。
此刻网络解决手腕很多,如DDOS解决,网络扫描,木马解决等。
本实验主要以PING解决和网络扫描为例介绍Snort的检测能力。
3.实验环境
硬件:
一台安装Windows2000/XP系统的联外网的主机。
软件:
(1).ACID(AnalysisConsoleforIntrusionDatabases)基于PHP的入侵检测数据库分析控制台
0.9.6Adodb(ActiveDataObjectsDataBase)PHP库
Windows版本的ApacheWeb服务器
2.0.46
PHP图形库
1.12.2Windows版本的Mysql数据库服务器
4.0.13
Windows版本的PHP脚本环境支持
4.3.2
Windows版本的Snort安装包
网络数据包截取驱动程序
基于PHP的Mysql数据库管理程序
2.5.1
实验步骤
(1)手动安装Snort。
(可选择自动安装包,见步骤2)
安装Apache
选择定制安装,安装路径修改成c:
\apache安装程序会自动成立c:
\apache2目录,继续以完成安装。
安装的时候注意,若是安装了IIS而且启动了WebServer,因为IISWebServer默许在TCP80端口监听,所以会和ApacheWebServer冲突,能够修改ApacheWebServer为其他端口。
安装PHP
解紧缩4.3.2至c:
\php;
拷贝至WINDOWS\system32;
拷贝至WINDOWS\;
修改
extension=
拷贝c:
\php\extension\至WINDOWS\
(注:
以上添加gd图形库支持)
在中添加
LoadModulephp4_module"c:
/php/sapi/"
AddTypeapplication/x-httpd-php.php
启动Apache服务
netstartapache2
在c:
\apache2\htdocs目录下新建文件,文件的内容为:
phpinfo()?
>
利用测试php是不是安装成功,应出现如图1所示。
图1PHP安装成功
安装snort
默许安装到c:
\snort
安装配置Mysql数据库
默许安装到c:
\mysql
新建复制到C:
\WINDOWS\
内容为:
[mysqld]
basedir=c:
\mysql
bind-address=
配置root口令
c:
\>cdmysql\bin
c:
\mysql\bin>mysql
mysql>setpasswordfor"=password('newPWD');
(这里newPWD为此处为用户自己设置的密码)
以root身份登岸命令为
Mysql–uroot–p
设置数据库,删除默许的账号只允许root从localhost连接(利用Phpmyadmin)
成立snort运行必需的snort库和snort_archive库
mysql>createdatabasesnort;
mysql>createdatabasesnort_archive;
利用c:
\snort\contrib目录下的create_mysql脚本成立Snort运行必需的数据表
c:
\mysql\bin\mysql-Dsnort-uroot-p\snort\contrib\create_mysql
c:
\mysql\bin\mysql-Dsnort_archive-uroot-p\snort\contrib\create_mysql
成立acid和snort用户
mysql>grantusageon*.*to"identifiedby"acidpassword";
mysql>grantusageon*.*to"snort"@"localhost"identifiedby"snortpassword";
或采用phpmyadmin进行操作。
为acid用户和snort用户分派相关权限
mysql>grantselect,insert,update,delete,create,alteronsnort.*to";
mysql>grantselect,insertonsnort.*to";
mysql>grantselect,insert,update,delete,create,alteronsnort_archive.*to";
或采用phpmyadmin进行操作。
安装adodb
解紧缩至c:
\php\adodb目录下。
安装acid
解紧缩0.9.6至c:
\apache2\htdocs\acid目录下
修改文件
$DBlib_path="c:
\php\adodb";
$alert_dbname="snort";
$alert_host="localhost";
$alert_port="";
$alert_user="acid";
$alert_password="acidpassword";
/*ArchiveDBconnectionparameters*/
$archive_dbname="snort_archive";
$archive_host="localhost";
$archive_port="";
$archive_user="acid";
$archive_password="acidpassword";
$ChartLib_path="c:
\php\jpgraph\src";
成立acid运行必需的数据库:
依照系统提示成立。
安装jpgrapg库
解紧缩1.12.2至c:
\php\jpgraph;
修改
DEFINE(“CACHE_DIR”,”/tmp/jpgraph_cache/”)(取消原来的注释)
安装winpcap
配置Snort
编辑c:
\snort\etc\,需要修改的地方包括:
include
include
改成绝对路径
includec:
\snort\etc\
includec:
\snort\etc\
设置snort输出alert到mysqlserver
outputdatabase:
alert,mysql,host=localhostuser=snortpassword=snortdbname=snort
测试Snort是不是正常工作:
c:
\snort\bin>snort-c"c:
\snort\etc\"-l"c:
\snort\log"-vdeX
-X参数用于在数据链接层记录rawpacket数据
-d参数记录应用层的数据
-e参数显示/记录第二层报文头数据
-c参数用以指定snort的配置文件的路径
-v参数用于在屏幕上显示被抓到的包
测试Snort
启动Apache和mysql服务。
netstartapache2;
netstartmysql
运行ACID:
打开阅读器,地址为。
若是有图2所示,则表示ACID安装成功。
图2ACID设置成功
运行Snort:
在运行中输入命令c:
\snort\bin\snort-c"c:
\snort\etc\"-l"c:
\snort\log"-de,若是有图3所示,说明Snort能够正常运行。
图3Snort正常运行
(2)利用安装包快速安装配置Snort。
(推荐采用)。
以上手动安装,进程比较灵活,但花费时刻校长。
也能够采用自动安装包的形式进行安装。
自动安装包是一个利用WINRAR制作的自解压程序。
将手动安装的文件直接解压到相应位置,这种方式快捷高效,可是要求路径的一致。
安装进程如下:
执行,弹出自解压界面,必需利用默许安装路径。
如图4所示:
图4默许解压到c:
\snort
解压安装
图5解压安装
解压完毕后,弹出注意事项,看完后关闭,继续安装。
提示安装MYSQL,选取默许路径c:
\mysql。
如图6所示:
图6默许安装mysql到c:
\mysql
提示安装,若是已经安装了新版本winpcap,安装进程中会提示有新版本文件,是不是要覆盖。
这里要用版的覆盖新版文件,不然会出现问题。
提示安装Apache。
第一填写服务器信息,选择“forallUsers”的推荐设置。
图7安装apache选择“forAllUsers,onPort80”
选择“Custom”安装方式,不采用默许安装路径,设置Apache安装路径为c:
\apache。
图.8安装apache选择自概念方式
图.9安装apache到c:
\apache
以后程序会自动解压文件,并最后开启apache和mysql服务。
测试进程同手动安装测试步骤。
(3)完善配置文件
1)打开c:
/snort/etc/文件,查看现有配置。
2)设置snort的内、外网检测范围。
将文件中varHOME_NETany语句中的any改成自己所在的子网地址,即将snort监测的内网设置为本机所在局域网。
如本地IP为,则将any改成。
并将varEXTERNAL_NETany语句中的any改成!
,即将snort监测的外网改本钱机所在局域网之外的网络。
3)设置监测包括的规则。
找到文件中描述规则的部份,如图10所示:
图10文件中包括的检测规则文件
前面加#表示该规则没有启用,将之前的#号去掉,其余规则维持不变。
(4)利用控制台查看检测结果
1)启动snort并打开acid检测控制台主界面,如图11所示:
图11ACID检测控制台主界面
2)点击右边图示中TCP后的数字“80%”,将显示所有检测到的TCP协议日记详细情形,如图12所示:
图12TCP协议日记网页
TCP协议日记网页中的选项依次为:
流量类型、时刻戳、源地址、目标地址和协议。
由于snort主机所在的内网为,能够看出,日记中只记录了外网IP对内网的连接(即目标地址均为内网)。
3)选择控制条中的“home”返回控制台主界面,在主界面的下部有流量分析及归类选项,如图13所示:
图13acid检测控制台主界面
4)选择“last24hours:
alertsunique”,能够看到24小时内特殊流量的分类记录和分析,如图14所示:
图1424小时内特殊流量的分类记录和分析
能够看到,表中详细记录了各类型流量的种类、在总日记中所占的比例、出现该类流量的起始和终止时刻等详细分析。
在控制台主界面中还有其他功能选项,请读者自己练习利用。
(5)配置snort规则
下面咱们练习添加一条规则,以对符合此规则的数据包进行检测。
1)打开c:
\snort\rules\文件,如图15所示:
图15文件
2)在规则中添加一条语句,实现对内网的UDP协议相关流量进行检测,并报警:
udpids/dns-version-query。
语句如下:
alertudpanyany<>$HOME_NETany(msg:
"udpids/dns-version-query";
content:
"version";)
保留文件后,退出。
3)重启Snort和acid检测控制台,使规则生效。
(6)利用Snort检测ping解决。
Snort主如果利用模式匹配的方式检测解决。
其特征值保留在Rules文件夹中。
其中文件中的规则alerticmp$EXTERNAL_NETany->$HOME_NETany(msg:
"ICMPLargeICMPPacket";dsize:
>800;reference:
arachnids,246;classtype:
bad-unknown;sid:
499;rev:
4;)用于检测大的ping包,长度超过800的包即被以为是大包。
运行Snort,而且用长度超过800的大包去ping靶机。
Ping-l801-t(IP地址为靶机地址)
同时打开ACID,看是不是有ICMP类报警产生。
如图16所示:
图.16利用ACID查看检测结果
(7)利用Snort检测Superscan扫描。
Superscan是一款功能壮大的扫描器,能够对搜集各网段主机信息。
Snort对Superscan设计了专门的规则,能够实现对Superscan的过滤。
运行Snort,打开Superscan对目标网段进行扫描。
如图17所示:
图17利用Superscan扫描网段
打开ACID,看是不是有Superscan报警产生。
如图18所示:
图18利用ACID检查Superscan报警
5.实验要求:
1.掌握自动安装方式,能够熟练安装Snort。
尝试采用手的方式安装。
2.通过安装和配置Snort,针对步骤
(1)-(5)写一份完整的实验报告或实验分析。
3.尝试修改规则,使得Snort小的ping包也会产生报警。
尝试添加新的规则,实现对阅读某些网站进行报警。