您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > Snort的配置与使用
第六章Snort的配置与使用入侵检测技术本章内容Snort的安装与配置Snort的总体结构分析Snort的使用Snort的规则使用Snort构建入侵检测系统实例6.1SNORT的安装与配置3一、Snort简介snort是一个用C语言编写的开放源代码的软件Snort是一个跨平台的,轻量级的网络入侵软件,基于libpcap的数据包嗅探器和日志记录工具Snort采用基于规则的网络信息搜索机制,对数据包进行内容的模式匹配,从中发现入侵和探测行为。MartinRoesch→……→SnortTeamSnort2.9.7.61.Snort的组成数据包解码器检测引擎日志和报警子系统数据包检测引擎数据包解码器日志报警2.Snort的工作模式(3种)嗅探器数据包记录器网络入侵检测系统4.Snort的工作模式(3种)嗅探器——嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。./snort–v./snort–vd./snort–vde数据包记录器——数据包记录器模式把数据包记录到硬盘上。./snort–dev–l./log网络入侵检测系统——网络入侵检测模式是最复杂的,而且是可配置的。用户可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。./snot–dev–l./log–csnort.conf二、Snort软件的下载下载snort入侵检测的核心部分下载winpcap或者libpcap网络数据包截取驱动程序,用于从网卡中抓取数据包辅助软件:Acid(AnalysisConsoleforIntrusionDatabases)基于PHP的入侵检测数据库分析控制台ADOdb(ADOdbDatabaseAbstractionLibrary)Adodb库为PHP提供了统一的数据库连接函数ApacheWindows版本的ApacheWeb服务器JpgraphPHP所用图形库MysqlWindows版本的Mysql数据库,用于存储snrot的日志,报警,权限等信息PHPWindows中PHP脚本的支持环境三、Windows环境下Snort的安装ACID+snort的入侵检测系统1.搭建apache+PHP的运行环境2.安装snort和Winpcap3.安装MySQL4.安装ADOdb5.安装Jpgraph6.安装和配置ACID7.配置和启动snort几点说明1.在snort中有一脚本create_mysql,用于建立所有必要的表。C:\mysql\binmysql–uroot–p(Mysql)createdatabasesnort;(Mysql)quit(c:\mysql\bin)Mysql–Dsnort–uroot–pC:\snort\contrib\create_mysql为用户分配权限(mysql)grantusageon*.*toacid@loacalhostidentifiedby“acidPwd”;(mysql)grantselect,insert,update,delete,create,alteronsnort.*toacid@localhost;需要了解的Mysql命令:显示数据库列表:showdatabases;显示库中的数据表:usemysql;showtables;建库与删库:createdatabase库名;dropdatabase库名;激活和配置ACID解压缩acid至apache安装目录的htdocs\acid目录下修改\htdocs\acid下的acid_conf.php文件DBlib_path=C:\php\adodb;$DBtype=”mysql”;$alert_dbname=snort;$alert_host=localhost;$alert_port=3306;$alert_user=acid;$alert_password=acidpwd;/*ArchiveDBconnectionparameters*/$archive_dbname=snort_archive;$archive_host=localhost;$archive_port=3306;$archive_user=acid;$archive_password=acidpwd;$ChartLib_path=”C:\php\jpgraph\src”;配置并启动snort打开C:\snort\etc\snort.conf文件,将文件中的下列语句:includeclassification.configincludereference.config修改为绝对路径:includeC:\snort\etc\classfication.configincludeC:\snort\etc\reference.config在该文件的最后加入下面语句:目的:将日志记录到数据库中outputdatabase:alert,mysql,host=localhostuser=snortpassword=snortpwddbname=snortencoding=hexdetail=full进入命令行方式,输入下面的命令:C:\snort\binsnort–c“C:\snort\etc\snort.conf”–l“C:\snort\log”–d–e–XX参数:用于在数据链接层记录rawpacket数据;dec参数:用以指定snorti参数:指定监视的网络适配器的编号。上面的命令将启动snort,如果snort正常运行,系统最后将显示如下图所示四、Snort的配置配置snort.conf文件④定制snort规则集。设置网络相关变量Snort.conf中的主要环境变量有:varHOME_NETany本地网络varEXTERNAL_NETany外地网络varDNS_SERVER$HOME_NETvarHTTP_SERVER$HOME_NETvarSQL_SERVER$HOME_NETvarTELNET_SERVER$HOME_NETvarSNMP_SERVER$HOME_NETvarHTTP_PORTS80varORACLE_PORTS1521varRULE_PATH../rules本地规则路径配置预处理器是在基于规则的模式匹配之前运行的模块,通常为规则匹配进行一些前期的处理。如:IP分片重组(frag2)、TCP流重组(stream4)、各种应用层解码等。根据需要配置,通常采用默认值.配置输出插件主要在报文匹配某条规则需要输出时,调用相应的输出插件。根据snort.conf说明进行相应配置。例:outputdatabase:log,mysql,user=westfoxdbname=detectorhost=localhostpasswordpassword=t123port=1234outputdatabase:alert,mysql,host=localhostuser=snortpassword=snorttestdbname=snortencoding=hexdetail=full定制snort规则集#include被包含文件的完整路径和文件名include$RULE_PATH/local.rules6.2Snort的总体结构分析Snort的模块结构插件机制Snort的总体流程入侵检测流程Snort分析32一、Snort总体结构分析预处理插件处理插件输出插件规则处理模块解码模块主控模块日志模块辅助模块使用/归纳Snort的模块组成及其相互关系二、Snort的插件机制优点增强可扩展性简化编码工作使代码功能内聚,模块行强,程序相对易读插件模块包括预处理插件、处理插件和输出插件3种,它们通常对应规则中的一个或几个关键字,规则匹配中遇到这些关键字时就会激活相应的插件,以完成相应的功能。1.预处理插件它们的源文件名都是以spp_开头的,在规则匹配(误用检测)之前运行,完成的功能主要分为以下几类。模拟TCP/IP堆栈功能的插件:如IP碎片重组、TCP流重组插件。各种解码插件:如HTTP解码插件、Unicode解码插件、RPC解码插件、Telnet协商插件等。规则匹配无法进行攻击检测时所用的检测插件:如端口扫描插件、Spade异常入侵检测插件、Bo检测插件、Arp欺骗检测插件等。2.处理插件它们的源文件名都以sp_开头,在规则匹配阶段的ParseRuleOptions中被调用,辅助完成基于规则的匹配检测过程。每个规则处理函数通常对应规则选项中的一个关键字,实现对这个关键字的解释或辅助解释。这些插件的主要功能如下。协议各字段的检查,如TCPFlag,IcmpType,IcmpCode,Ttl,IpId,TcpAck,TcpSeq,Dsize,IpOption,Rpc,IcmpId,IcmpSeq,IpTos,FragBits,TcpWin,IpProto和IpSame等。一些辅助功能,如Respond,Priority,PatternMatch,Session,React,Reference等,这些插件分别完成响应(关闭连接)、严重级别、模式匹配(内容)、会话记录、攻击响应(高级的响应机制)、攻击参考信息等功能。3.输出插件它们的源文件名都以spo_开头,这些插件分为日志和警告两种类型放入两个列表中,在规则匹配过程中和匹配结束之后调用,以便记录日志和警告。以一个HTTP解码预处理器插件为例来解释插件的内部结构:每个插件都有一个安装函数,名称为SetupXXX(),如Spp_http_decode.c:SetupHttpDecode()。在解释规则文件时,如果检测到相应的关键字,系统就会使用规则文件中这些关键字后的字符串作为参数来调用相应的初始化函数。在检测过程中,一旦规则匹配成功,就会触发处理函数的执行,预处理器就会在预处理过程中对数据报调用相应处理函数进行处理。三、Snort的总体流程ParseCmdLine解释命令行开始OpenPcap初始化SetPktProcessors设置解码函数InitPreprocessorsInitPlugInsInitOutputPlugins预处理器、处理插件、输出插件的初始化CreateDefaultRulesParseRulesFile解释规则文件生成所需的规则链设置警告InterfaceThread循环抓包检测终止检测流程开始ProcessPacket:(*grinder)(&p,pkthdr,pkt):对数据报文解码如果需要,打印报文Preprocess:调用所有的预处理器对报文进行处理Detect:EvalPacket对报文匹配所有的规则,检测入侵CallLogFuncs调用所有的输出插件结束循环调用检测流程检测到入侵不是入侵行为四、入侵检测流程规则解析流程规则匹配流程入侵检测流程——规则解析流程Snort规则内存表示逻辑图规则头SrcIPDesIPSrcPortDesPort规则头SrcIPDesIPSrcPortDesPort主链链首规则选项CONTENTTCPFlagsICMPCodes/TypesPayloadSizeetc.规则选项CONTENTTCPFlagsICMPCodes/TypesPayloadSizeetc.规则选项…规则选项…从链入侵检测流程——规则匹配流程Snort规则匹配检测流程获取RuleLists链表头Detect开始链表中还
本文标题:Snort的配置与使用
链接地址:https://www.777doc.com/doc-4070648 .html