1、基于Snort入侵检测系统用Snort,Apache,MySQL,PHP及ACID构建高档IDS第一章 入侵检测系统及Snort简介在当今公司应用环境中,安全是所有网络面临大问题。黑客和入侵者已成功入侵了某些大公司网络及网站。当前已经存在某些保护网络架构及通信安全办法,例如防火墙、虚拟专用网(VPN)、数据加密等。入侵检测是近来几年浮现相对较新网络安全技术。运用入侵检测技术,咱们可以从已知袭击类型中发现与否有人正在试图袭击你网络或者主机。运用入侵监测系统收集信息,咱们可以加固自己系统,及用作其她合法用途。当前市场中也有诸多弱点检测工具,涉及商品化和开放源码形式,可以用来评估网络中存在不同类型安
2、全漏洞。一种全面安全系统涉及诸各种工具:l 防火墙:用来制止进入及走出网络信息流。防火墙在商业化产品和开放源码产品中均有诸多。最知名商业化防火墙产品有Checkpoint (),Cisco ()及Netscreen()。最知名开放源码防火墙是Netfilter/Iptables()。l 入侵检测系统(IDS):用来发现与否有人正在侵入或者试图侵入你网络。最知名IDS是Snort,可以在下载。l 弱点评估工具:用来发现并堵住网络中安全漏洞。弱点评估工具收集信息可以指引咱们设立恰当防火墙规则,以挡住恶意互联网顾客。当前有许多弱点评估工具,例如Nmap()和Nessus().以上这些工具可以配合使用
3、,交互信息。某些产品将这些功能捆绑在一起,形成一种完整系统。Snort是一种开放源码网络入侵检测系统(NIDS),可以免费得到。NIDS是用来检测网络上信息流入侵检测系统(IDS)。IDS也涉及安装在特定主机上并检测袭击目的是主机行为系统。IDS迄今为止还是一门相称新技术,而Snort在IDS中处在领先地位。本书由入侵检测简介及有关概念入手,你将学习如何安装及管理Snort以及与Snort协同工作其她产品。这些产品涉及MySQL数据库()、入侵数据库分析管理工具ACID()。Snort可以将日记数据(例如告警和其她日记消息)记录到数据库中。MySQL用作存储所有这些数据数据库引擎。运用ACID
4、及Apache ()Web服务器,咱们可以分析这些数据。Snort、Apache、MySQL及ACID共同协作,使咱们可以将入侵检测数据记录到数据库,然后用web界面察看和分析这些数据。此书组织构造使读者可以跟着随后章节一步一步建立一种完整入侵检测系统。安装及整合各种工具环节将在如下章节逐渐简介:第二章将简介编译及安装Snort基本知识。在这一章中,你将可以用基本安装及默认规则建立一种可以工作IDS,同步可以建立可以记录入侵活动日记文献。第三章简介Snort规则关于知识,Snort规则构成及如何依照你系统环境及需要建立自己规则。建立良好规则是构建入侵检测系统核心,因而本章非常重要。本章同步也简
5、介Snort不同版本间规则不同。第四章简介input及output插件。插件与Snort一同编译,并用来调节检测引擎输入和输出某些。Input插件用在实际检测过程发生前准备好捕获数据包。Output插件用来将数据数据格式化,以用于特定目,例如一种output插件可以将输出检测信息转换成SNMP trap信息,而此外一种output插件可以将信息转换成数据库信息。这一章将详细简介如何配备及使用这些插件。第五章简介MySQL数据库与Snort共同工作。MySQL插件使Snort可以将日记数据记录到数据库以便随后分析。在这一章中,你将理解如何在MySQL中建立数据库,如何配备数据库插件,以及将日记数
6、据记录到数据库中。第六章简介ACID,以及如何用ACID获得你在第五章建立数据库中信息,并用Apache服务器显示它。ACID一种提供丰富数据分析能力重要工具,你可以用它来获得袭击频率、袭击类别、察看这些袭击办法有关资源等等。ACID用PHP脚本语言、图形显示库(GD library)和PHPLOT(一种用来绘制图表工具)来工作,可以分析SQL中数据并绘制图表。第七章重要简介可以和Snort一起工作其她某些有用工具。在读完此书后,你将建立一种完整,具备各种组件系统,如图1-1所示。在图中你可以看到,Snort捕获并分析数据,然后用output插件将数据储存在MySQL数据库中。Apache服务
7、器在ACID,PHP、GD library及PHP包协助下使连接到服务器顾客可以通过浏览器显示数据。顾客可以在网页上应用不同查询来分析、备份、删除数据或者显示图表。基本上,你可以将Snort、MySQL、Apache、PHP、ACID、GD库以及ACID都安装到一台计算机上,而事实上在读完本书后,你可以建立一种类似于如图1-2所示得更加贴近实际应用系统。在公司中,人们普通使用各种Snort探测器,在每个路由器或者防火墙背面都放置探测器。在这种状况下,你可以用一种集中数据库来收集所有探测器信息,并在这个数据库服务器上运营Apache Web服务器,如图1-3所示。1 1 什么是入侵检测?入侵检测
8、是指用来检测针对网络及主机可疑活动一系列技术和办法。入侵检测系统基本可以分为两大类:基于特性入侵检测系统和异常行为检测系统。入侵者常具备用软件可以检测到特性,如病毒。入侵检测系统将检测包括已知入侵行为特性或者异常于IP合同数据包。基于一系列特性及规则,入侵检测系统可以发现并记录可疑行为并产生告警。基于异常入侵检测系统普通是分析数据包中合同头部异常,在某些状况下这种方式要比基于特性入侵检测系统要更好某些。普通状况下,入侵检测系统在网络上捕获数据包与规则比对或者检测其中异常。Snort基本上是一种基于规则IDS,但是input插件可以分析合同头部异常。Snort规则存储在文本文献中,并可以用文本编
9、辑器修改。规则以类别分组。不同类别规则存储在不同文献中。最后,这些文献被一种叫做snort.conf主配备文献引用。Snort在启动时读取这些规则,并建立内部数据构造或链表以用这些规则来捕获数据。发现入侵特性并运用规则捕获它们是一项具备技巧性工作,由于在实时检测中你应用越多规则,那么你将需要越多解决能力,因此用尽量少规则来捕获尽量多特性是非常重要。Snort已经预先定义了许多入侵检测规则,并且你可以自由添加自定义规则。同步,你也可以移除某些内建规则以防止错误告警。111 某些定义在详细理解入侵检测及Snort之前,你需要理解某些网络安全有关定义,这些定义将在这本书随后章节中重复应用。对这些名词
10、基本理解对于理解其她更加复杂安全概念是非常必要。1111 IDS入侵检测系统或IDS是一种用来检测入侵行为软件、硬件或者两者结合。Snort是大众可以获得开放源码IDS。IDS实际能力依赖于组件复杂度及精致性。实体IDS是硬件和软件结合,诸多公司可以提供及决方案。如前面提到,IDS可以采用特性分析技术、异常检测技术,或者两者同步应用。1112 网络IDS或NIDSNIDS是用来捕获在网络介质上传播数据并与特性数据库比对入侵检测系统。跟据数据包与特性数据库匹配状况,IDS产生告警或者将日记记录到文献或数据库中。Snort重要是作为NIDS来使用。1113 主机IDS或HIDS面向主机入侵检测系统
11、或称HIDS作为一种代理安装在一台主机上,这种入侵检测系统可以分析系统及应用程序日记来检测入侵行为。其中某些HIDS是被动状态,只有当某些事情发生了才会告知你,此外某些是积极状态,可以嗅探网络中针对某一主机通信状况并实时产生告警。1114 特性特性是数据包中包括信息特点。特性用来检测一种或各种袭击行为。例如,目的是你web服务包中如果浮现“scripts/iisadmin”,也许意味着一种入侵尝试。依照袭击行为本质不同,特性数据也许会出当前数据包中不同位置。例如,你也许会在IP包头、传播层头(TCP或UDP头)及/或应用层头或载荷中发现袭击特性。你将在本书背面更多理解袭击特性。普通IDS依托特
12、性来发现入侵行为。在发现新入侵特性时,某些商业化IDS需要从厂商那里得到更新特性库。此外某些IDS,例如Snort,你可以自己更新特性库。1115 告警告警是任何一种对入侵行为告知。当IDS检测到入侵者,它将用告警来告知安全管理员。告警形式可以使弹出窗口、终端显示及发送e-mail等等。告警同步也被存储到日记文献或者数据库中,以便供安全专家察看。在本书背面,你将得到关于告警详细信息。Snort告警由output插件控制,并可以产生各种形式报警。Snort也可以将同一种告警发送到不同目的,例如,将告警发送到数据库同步,产生SNMP trap信息。某些插件可以修改防火墙配备,使入侵者在防火墙或者路
13、由器上被控制。1116 日记日记信息普通存储在文献中。默认状况下,Snort将这些信息存储在/var/log/snort目录下,但是也可以在启动Snort时用命令行开关来变化这个目录。日记信息可以存储为文本格式或者二进制格式,二进制格式文献可以供Snort或者Tcpdump随后访问,当前也有一种叫做Barnyard新工具可以分析Snort产生二进制日记文献。将日记存储为二进制文献可以有更高效率,由于这种格式开销相对较低。将Snort应用在高速网络环境中,将日记存储为二进制文献是非常必要。1117 误告警误告警是错误将非入侵行为报告为入侵行为告警。例如,内部主机错误配备有时会产生触发规则,从而产
14、生误告警。某些路由器,例如Linksys家用路由器,会产生某些信息,导致UpnP有关告警。为了避免误告警,你要修改和调试默认规则,在某些状况下,你也许需要停止某些规则使用,以避免误告警。1118 探测器运营入侵检测系统机器也叫做探测器,由于它用来“探测”网络中活动。在本书背面某些,如果用到探测器这个词,那么它是指运营Snort计算机或者其她设备。112 IDS应当放在网络中什么位置?依照你网络拓扑构造不同,你应当在一种或各种位置放置IDS。IDS放置位置也要取决于你想检测入侵行为种类:内部入侵、外部入侵,或者两个都要检测。例如,如果你想仅仅检测外部入侵活动,并且你只有一种路由器接到Intern
15、et,那么放置IDS最佳位置也许紧靠着路由器或者防火墙内部网络接口。如果你有多条接入Internet借口,也许你但愿在每个入口处放置一台IDS。有时你也但愿可以检测来自内部威胁,那么可以在每个网段都放置一台IDS。在诸多状况下,你并不需要在所有网段都实行入侵检测,你可以仅仅在敏感区域放置IDS。要懂得,越多IDS就意味着越多工作量和维护费用。因而IDS布置要取决于你安全方略,也就是你想防范什么样入侵。图1-4表达普通放置IDS典型位置。正如你在图1-4中看到那样,普通你应当在每个路由器和防火墙背面放置IDS,在你网络中包括非军事化区(DMZ)状况下,在DMZ中也可以放置IDS。要注意是,DMZ
16、中IDS告警方略不应像专用网络中那样严格。113 蜜罐(Honey Pots)蜜罐是一种以故意暴露已知弱点来愚弄黑客系统。当黑客发现蜜罐时,普通会在它上面耗费某些时间,在此期间,你可以记录黑客行为,从中找出黑客活动状况和所使用技术。一旦你理解了这些技术,你可以运用你得到信息来加固你真正服务器。当前有诸各种构建和放置蜜罐办法。在蜜罐上应当运营某些公开服务,这些服务涉及Telnet服务(端口23),HTTP服务(端口80),FTP服务(端口21)等等。你应当将蜜罐放在你紧靠你应用服务器某个位置,这样黑客容易错误将蜜罐当成真正应用服务器。例如,如果你应用服务器IP地址势192.168.10.21和1
17、92.168.10.23,那么你可以将你蜜罐IP地址设为192.168.10.22,同步设立你防火墙和路由器,使黑客对服务器某些端口访问重定向到蜜罐上面,那么入侵者就会把蜜罐当成是真正服务器。你应当仔细考虑告警产生机制,以使你蜜罐受到威胁时候可以立即得到信息。将日记存储在其她机器上是个好主意,这样虽然黑客侵入了蜜罐,也无法删除日记文献。那么什么时候你应当安装蜜罐呢?那要依照你状况来决定:n 如果你机构有足够资源用来追踪黑客,那么你应当建立一种蜜罐。所谓资源涉及硬件以及人力。如果你没有足够资源,那么安顿蜜罐就没有什么必要,要懂得获取你不会用到信息是没有什么意义。n 仅仅当你可以以某种方式来用蜜罐
18、获得信息时候,蜜罐才是有用。n 如果你想收集关于行为证据来起诉黑客,那么你也可以用到蜜罐。抱负状况下,蜜罐应当看起来像一种真实系统,你可以制作某些假数据文献,假账户等等,使黑客信觉得真,这样才干使黑客在上面逗留足够长时间,从而你可以记录更多活动。你可以在蜜罐项目网站,可以找到某些你感兴趣资料,是你可以对蜜罐有进一步理解。你也可以去此外一种蜜罐网站理解她们开放源码密罐有关信息。其她某些可以获得更多信息地方是:南佛罗里达蜜罐项目网站:有关白皮书:114 安全区域和信任级别一段时间此前,人们将网络划分为两大类区域:安全区域和非安全区域。某些时候这种划分也就意味着网络是在路由器或防火墙内部或者外部。当
19、前典型网络普通依照不同安全方略级别和信任级别划分为各种区域。例如,公司财务部门拥有非常高安全级别,在这个区域中仅仅容许对少数服务操作,不容许Internet服务;而在DMZ或称非军事化区中,网络是向Internet开放,此区域信任级别与财务部门迥然不同。依照信任级别和安全方略不同,你应当在不同区域中应用不同入侵检测规则和方略。对安全级别规定不同网络在物理上是分离。你可以在对安全规定不同每个区域都安装一套具备不同规则IDS来检测可疑网络活动。例如,在财务部门网络中没有web服务器,指向80端口数据包将被纪录为入侵行为,而这样规则不能用在DMZ中,由于DMZ中web服务器是对每个人开放。12 ID
20、S 方略在你在网络中安装IDS之前,你必要有一种可以检测入侵者并做出相应动作方略。一种方略必要可以批示一系列规则以及这些规则如何应用。IDS方略应当包括如下内容,并且你可以依照你规定添加更多内容:谁来察看IDS信息?IDS提供应你对入侵行为产生告警信息机制。告警系统或者是简朴文本文献形式,或者更加复杂,也许集成到类似于HpOpenView这样网管软件或MySQL这样数据库中。在你系统中需要有人负责来监视入侵行为和制定方略。入侵行为可以通过弹出窗口或web页面实时监视。在这种状况下,操作者必要要理解告警意义所在以及告警信息中事件安全级别。谁来管理IDS,维护日记等等?对于所有系统,都需要建立一种
21、寻常维护体制,IDS也同样。谁来解决安全事件?如果没有安全事件解决机制,也就主线没有必要安装IDS。依照安全事件安全级别需要,某些状况也许需要政府机构介入。事件解决程序是什么样?方略应当规定某些事件响应机制,依照涉及安全级别高低向不同管理层报告。例行报告:总结前一天、上一周、或者上一种月所发生有关事情。特性库升级:黑客总是不断创造新袭击办法。如果IDS理解袭击特性,就可以检测到袭击。Snort规则用袭击特性库来检测袭击。由于袭击特性经常在变化,你也必要为你IDS规则更新特性库。你可以定期直接在Snort网站上获得特性库更新,也可以在一种新袭击方式被发现时自己更新。每个项目都需要文档系统。IDS
22、方略应当描述当袭击被检测届时应当记录什么样文档。文档可以涉及简朴日记或者对入侵行为完整纪录。你也可以采用各种方式来记录数据。例行报告也属于文档构成某些。基于你IDS方略,你可以清晰懂得你网络究竟需要多少IDS探测器和其她资源,更精准计算IDS成本和费用。13 Snort部件Snort在逻辑上可以提成各种部件,这些部件共同工作,来检测特定功绩,并产生符合特定规定输出格式。一种基于SnortIDS包括下面重要部件:l 包解码器l 预解决器l 探测引擎l 日记和告警系统l 输出模块图1-5显示了这些部件关系。任何来自Internet包到了包解码器,然后被送到输出模块,在这里或者被丢弃,或者产生日记或
23、告警。在这个某些中,咱们将简要简介这些部件。在你通读这本书并建立某些规则后,你将对这些部件以及它们之间如何互相作用更加熟悉。131 包解码器包解码器从不同网络接口中获取包并准备预解决或者送到探测引擎。网络接口也许是以太网、SLIP、PPP等等。132 预解决器预解决器是Snort在探测引擎做出某些操作来发现数据包与否用来入侵之前排列或者修改数据包组件或者插件。某些预解决器也可以通过发现数据包头部异常来执行某些探测工作,并产生告警。预解决器工作对于任何IDS探测引擎根据规则分析数据都是非常重要。黑客有诸多愚弄IDS技术。例如,你建立这样一条规则,用来在HTTP包中发现包括“scripts/iis
24、admin”入侵特性,如果你将字符匹配过于严格限制,那么黑客只需要做某些细小变通,就能很容易耍弄你。例如:“scripts/./iisadmin”“scripts/examples/./iisadmin”“scripts/.iisadmin”为了使问题复杂化,黑客也会在字符中嵌入16位URI字符或者Unicode字符,这对web服务器来说是同样合法,要注意web服务器可以理解所有这些字符,并将它们解决成为类似于“scripts/iisadmin”这样字符。如果IDS严格匹配某一字符串,就也许不会探测到这种类型袭击。预解决器可以将字符重新排列,以使IDS可以探测得到。预解决器也或来包分片组装。当
25、一种大数据流传向主机时候,普通数据包会被分割。例如,以太网中默认最大数据包大小是1500字节,这个数值由网络接口MTU(Maximus Transfer Unit)值来拟定。这就意味着如果你发送数据如果不不大于1500字节,它将会被分割成各种数据包,以使每个数据包大小都不大于或等于1500字节。接受方系统可以将这些小分片重新组装,还原成原始数据包。在IDS上,在可以对数据包进行特性分析之前,也需要重新组装数据包。例如,也许入侵特性普通在一种数据包分片上,而此外一半在别分片上面。为了使探测引擎可以精确分析特性,就需要组装所有分片。黑客也用数据分片来对抗入侵检测系统。预解决器用来对抗这些袭击。Sn
26、ort预解决器可以组装数据分片,解码HTTP URI,重新组装TCP流等等。这些功能是IDS中非常重要某些。133 探测引擎探测引擎是Snort中最重要某些,它作用是探测数据包中与否包括着入侵行为。探测引擎通过Snort规则来达到目。规则被读入到内部数据构造或者链表中,并与所有数据包比对。如果一种数据包与某一规则匹配,就会有相应动作(记录日记或告警等)产生,否则数据包就会被丢弃。探测引擎是Snort中时间有关组件,依照你机器解决能力和你所定义规则多少,探测引擎会消耗不同步间来对不同数据包做出响应。在Snort工作在NIDS模式时候,如果网络中数据流量过大,有时也许会由于来不及响应而丢弃某些包。
27、探测引擎负载取决于如下因素:l 规则数量l 运营Snort机器解决能力l 运营Snort机器内部总线速度l 网络负载当你在设计NIDS时候,你应当考虑所有有关因素。你需要理解探测系统可以剖析数据包并把规则应用在高不同某些,这些某些也许是:l 包IP头l 包传播层头,涉及TCP、UDP或其她传播层合同头,也可以是ICMP头。l 应用层头。应用层头涉及DNS头,FTP头,SNMP头,SMTP头等等尚有诸多。有时你可以用某些间接办法来获得应用头信息,例如位偏移等等。l 包载荷。这意味着你可以建立这样一种规则,用探测引擎来寻找传播数据中字符。在不同版本Snort中,探测引擎由不同工作方式。在所有1.x
28、版Snort中,一旦探测引擎将数据包匹配到某个规则时候,就会停止进一步过程,然后依照规则产生告警或者记录日记,这就意味着虽然如果包匹配多条规则,仅仅第一种规则被应用,并不再进行其她匹配,这样做有好处,但是除了下面状况:如果包匹配第一种规则是低优先级,就只产生低优先级告警,虽然这个包也匹配高优先级背面其她规则。这个问题在第二版Snort中得到了修正:包先对所有规则进行匹配,然后再产生告警,在对所有规则进行匹配之后,选取最高优先级规则告警。第2版Snort探测引擎是完全重写,从而比先前版本快了许多。在写这本书时候,Snort 2.0还没有开始发行,早些时候测试显示新引擎比老引擎要快将近18倍。13
29、4 日记和告警系统根据在包中所找到东西,一种包可以用来记录行为或者产生告警。日记可以存为简朴文本文献、tcpdump格式文献或者其她形式。在默认状况下,所有日记文献都存储在/var/log/snort目录中。你可以在命令行中用-l选项来修改日记和告警存储位置。更多命令行选项将在下一章中讨论。这些选项可以用来修改日记和告警类型和细节等等。135 输出模块输出模块或插件可以依照你指定保存日记和告警系统产生输出信息方式来执行不同动作。基本上这些模块用来控制日记和告警系统产生输出信息格式。依照配备,输出模块可以做下列事情:l 简朴在/var/log/snort/alerts文献或其她文献中记录日记l
30、发送SNMP trapl 将日记记录到类似于MySQL或Oracle数据库中。你将在这本书背面理解更多关于使用MySQL信息l 产生XML输出l 修改路由其或者防火墙配备l 向Windows主机发送SMB消息其她某些工具可以用来发送如e-mail信息或者web页面浏览等格式告警,在背面章节中你将理解更多信息。表1-1是IDS各种部件汇总。表1-1 IDS部件名称描述包解码器为解决过程准备包预解决器或输入插件分析合同头部,规格化头部,探测头部异常,包分片组装,TCP流组装探测引擎将包与规则比对日记和告警系统产生告警和日记输出模块将告警和日记输出到最后目的14 关于互换机依照你用互换机不同,你会有
31、各种方式将Snort机器安装在互换机端口上。某些互换机,例如CISCO,容许你复制所有通信到你连接Snort机器那个端口上,这样端口普通指是Spanning端口。安装Snort最佳位置是直接连到路由其或者防火墙背面,这样Snort可以在数据进入互换机或HUB之前捕获所有Internet数据流。例如,你防火墙有连接InternetT1线路,并用互换机连接内部网络,典型连接方案如图1-6所示:如果你互换机有Spanning端口,你可以像图1-7所示那样将IDS及器连接到spanning端口上,这样IDS可以看到所有与Internet通信以及内部通信。你也可以将IDS连接到防火墙与互换之间HUB上,
32、这样所有进入和流出通信对于IDS也是可见,此方案如图1-8所示。但是要注意,如果IDS按图1-8安顿,那么IDS将不能得到内部通信数据包,只能来见与Internet之间通信。这种方案对于内部网络是可信,而预想袭击来自外部是非常有用。15 跟踪TCP数据流Snort新增长了一种叫做Stream4预解决器,这种预解决器可以同步解决数千并发数据流。关于它配备将在第四章中讨论。它可以重新组装TCP数据流,并进行状态检测。这就意味着你可以组装一种特定TCP会话,并从运用各种TCP包进行袭击方式中找出异常。你也可以查找流向或(和)流出某个服务器端口数据包。16 Snort支持平台Snort支持各种硬件平台
33、和操作系统。当前Snort支持下列操作系统: Linux OpenBSD NetBSD Solaris (Sparc或者i386) HP-UX AIX IRIX MacOS Windows你可以到Snort网站查询Snort当前支持平台列表。17 如何保护IDS自身有一种核心问题是,如何保护运营IDS系统?如果IDS自身安全受到了威胁,你收到告警也许是错误,也许就主线收不到告警。入侵者也许会在做出实际袭击之间先让IDS失效。有许多方式来保护你系统,从通用建议到某些复杂办法,下面会提到某些办法:l 一方面你可以做事情是不要再你运营IDS探测器机器上运营任何服务。网络服务是用来探寻系统最普遍方式。
34、l 新威胁浮现后,厂商会发布相应补丁,只是一种持续不断,永无休止过程。你IDS应当安装从厂商那里得到最新补丁。例如,如果你Snort在Window机器上运营,你应当安装所有微软发布最新安全补丁。l 配备你IDS机器,使其不会对ping(ICMP echo)做出回应。l 如果你在Linux机器上运营IDS,请用netfileter/iptables来制止任何不必要数据,这时Snort依然可以看到所有数据包。l 如果你IDS机器仅仅用来做入侵检测,那么除非完全有必要,不要在上面进行任何其她活动以及设立其她顾客账号。除了这些普通办法之外,Snort也可以在某些特殊办法下应用。下面有两种特别技术来防止
35、Snort遭到袭击。171 在隐秘端口(Stealth Interface)上运营Snort你可以在隐秘端口上运营Snort,这种端口仅仅监听进入数据包而不向外部发送任何数据包。在隐秘端口上咱们用一种特殊电缆,在你运营Snort主机上,将端口1针和2针短路,3针和6针连到对端。你可以到SnortFAQ页面http/.org/docs/faq.html寻找这种办法更多信息。172 在没有IP地址接口上运营Snort你也可以在一种没有配备IP地址接口上运营Snort。例如在Linux机器上,你可以用“ifconfig eth0 up”这样命令来激活没有配备IP地址接口eth0。这种办法好处是,由于
36、Snort主机没有IP地址,因而没有人可以访问它。你可以在eth1上配备IP地址用来访问这个探测器。见图1-9。在Windows系统上,你可以用一种不绑定TCP/IP合同接口,这样就不会在这个接口上浮现IP地址了。不要忘掉同步也要禁用其她合同和服务。在某些状况下,当接口不配备IP地址时候,你会遇到wincap(Windows用来捕获包库)不可用提示,如果遇到这样状况,你可以用下面办法:l 在你想做隐秘端口网络接口上配备TCP/IP合同,同步禁用其她一切合同和服务。l 启用DHCP客户端。l 禁用DHCP服务器。这样就会使网络接口没有IP地址,网络接口依然可以绑定TCP/IP合同。18 有关资源
37、1. 入侵检测 FAQ : ID_FAQ.htm2. 蜜罐项目:3. Snort FAQ :4. Honeyd 蜜罐: 5. Winpcap : 6. Cisco systems : 7. Checkpoint 网站: 8. Netscreen :9. Netfilter : 10. Snort :11. Nmap工具: 12. Nessus : 13. MySQL 数据库:14. ACID: 15. Apache web 服务器: 第二章 安装Snort并开始初步工作Snort可以仅仅安装为守护进程或者一种涉及诸多其她工具完整系统。如果你仅仅安装Snort,你可以得到入侵数据文本文献或二进制
38、文献,然后可以用文本编辑器或其他类似于Barnyard工具察看,本书背面将对此做出描述。在简朴安装状况下,你也可以让告警信息以SNMP trap形式发送到类似于HP OpenView或者OpenNMS之类网管系统上。告警信息也可以以SMB弹出窗口形式发送到Windows机器上。如果你与其他工具一起安装,你可以做某些更加复杂操作,例如将Snort数据发送到数据库并通过Web界面来分析。分析工具可以让你对捕获数据有更加直观结识,而不用对晦涩日记文献耗费大量时间。其他某些可以用到工具列在下面,它们中没有特均有特定任务。一种综合Snort系统用这些工具来提供具备后台数据库Web顾客界面。MySQL用来
39、Snort纪录告警日记。也可以用类似于Oracle数据库,但在Snort环境中MySQL更加惯用。事实上,Snort可以用任何ODBC兼容数据库。l Apache用作web服务器l PHP用作web服务器和MySQL数据库之间接口。l ACID是用来Web界面来分析Snort数据PHP软件包。l GD库被ACID用来生成图表l PHPLOT用来在ACIDweb界面将数据体现为图表形式。为了是PHPLOT工作,GD库必要要对的配备。l ADODB被ACID用来连接MySQL数据库。21 Snort 安装方案Snort安装方式要取决于运营环境,下面列举了某些典型安装方案以供参照,你可以依照你网络状
40、况进行选取。211 测试安装简朴安装只涉及一种Snort探测器。Snort将数据记录到文本文献中。日记文献供Snort管理员随后察看。由于这种方式在实际应用中分析日记成本比较高因而仅适合测试环境。要用这种方式安装Snort,你可以在获得编译好版本。对RedHat Linux来说,你可如下载RPM包。对Windows系统,你可如下载可执行文献安装到你系统上。212 安装单探测器应用IDS单探测器Snort可应用安装适合只有一条Internet线路小型网络。将探测器放在路由器或者防火墙背面,以检测进入系统入侵者。但是要是你对所有Internet流量感兴趣,你也可以将传感器放在防火墙外面。在这种安装
41、方式中,你可以从Snort网站下载编译好版本,也可如下载源代码依照自己规定编译,以获得自己需要特性,这种规定在编译好版本中是做不到。Snort编译环节将在本章详细讨论。在应用系统安装中,也可以让Snort实现自动启动和关闭,这样Snort在系统启动是可以自动启动。如果你在Linux中安装编译好版本,RPM包会帮你做到这一点。在Windows系统中,你可以将Snort作为服务来启动或者放在启动组批解决文献中。Windows有关问题将在第8章涉及。日记将纪录为文本文献或者二进制文献,并用类似于SnortSnarf工具分析数据。SnortSnarf将在第6章中详细讨论。213 单探测器与网管系统整合
42、在应用系统中,你可以将Snort配备成向网管系统发送trap。在公司应用中,有诸各种网管系统在应用。最常用商业网管系统公司有惠普、IBM、Computer Associates等。Snort运用SNMP trap整合到网管系统中。当你看完本章Snort编译环节后,就会理解Snort是如何提供SNMP能力。第4章将简介更多关于配备SNMP trap目的、community名称等更多信息。214 带有数据库和web界面单探测器Snort最通惯用法是与数据库整合。数据库用来记录日记,并可以随后通过web界面访问。这种安装典型设立包括3个基本部件:Snort 探测器数据库服务器web服务器Snort将
43、日记记录到数据库中,你可以通过连接到它web浏览器察看这些数据。这种方案可以参见第1章图1-1。所有3个部件也可以安装在同一种系统上,如第1章图1-2所示。Snort可以用不同类型数据库,如MySQL,PostgresSQL,Oracle,Microsoft SQL Server和其她ODBC兼容数据库。PHP用来在数据库中获取数据,并产生页面。这样安装提供应你一种易于管理功能全面IDS,并具备和谐顾客界面。为了使你可以用数据库记录日记,你必要给Snort提供数据库顾客名称、密码、数据库名称和数据库服务器地址。在单探测器方案中,如果数据库服务器就安装在运营传感器机器上,你可以用“localho
44、st”作为主机名。你在编译Snort时就要选取记录数据库功能,这一点将在本章背面详细描述。Snort使用数据库配备将在第4、5、6章讨论。215 用集中数据库管理各种Snort探测器在分布式环境中,你也许需要在各种位置安装Snort探测器。管理所有这些探测器并分别分析它们收集数据是一项艰难任务。在公司应用中,有某些办法可以将Snort设立和安装成分布式IDS。其中一种办法是将各种探测器连接到同一种中心数据库,如图1-3所示。所有探测器产生数据都存储在这个数据库中。同步运营一种类似于Apacheweb服务器。然后顾客可以用web浏览器察看这些数据并加以分析。但要理解这种配备存在某些实际问题:l
45、所有探测器在启动Snort时候必要可以访问到数据库,如果不能,Snort就终结进程。l 数据库必要保证让探测器所有时间都能访问,否则,数据将丢失。l 如果探测器和数据库服务器之间有防火墙,你要打开相应端口,有时这样做会与防火墙安全方略不匹配或者违背安全方略。在探测器不能直接访问数据库服务器时候,有某些变通办法。探测器可以配备为将文献存储在本地,然后用类似于SCP工具定期将这些文献上传到中央数据库服务器。SCP用SSH合同来进行安全文献传播工具。防火墙管理员要放行SSH端口通信。你可以用Snort自身,Barnyard或其她某些工具从日记文献中提取数据并将它们放到数据库中,你可以在后来用web界
46、面来察看这些数据。这种方式唯一问题是数据库中数据并非严格“实时”数据。延迟大小要看你用SCP上传数据到中心数据库服务器频率。这种方式如图2-1所示。要注意,中心数据库服务器必要要运营SSH服务器以可以用SCP来上传数据。如第一章中提到那样,这本书最后目是协助你安装Snort并让所有软件包可以协同工作。当你通读此书后,你将理解这些部件之间是如何互相作用,共同工作形成一种完整入侵检测系统。本书中涉及这些软件都可以这本书网站。你也可以发现这个网站上某些脚本可以协助你轻松在一种新系统上安装这些软件包。事实上,用这本书提到这个网站上某些脚本,你可以以root身份用仅仅几种命令行就建立一种可用IDS。如果
47、你用Snort版本比本书涉及要新,你可以在。这本书将详细简介这些部件在RedHat Linux 7.3机器上安装,但是在其她版本Linux或者其她平台上过程与之类似。为了以便本书简介,所有部件都安装在/opt目录下面。但是如果用编译好软件包,安装位置也许有所不同。当你用本书上或者从本书网站获得脚本,文献将被安装在这个目录下面。在本章中,你将理解如何将Snort作为一种独立产品安装,在背面章节中,将简介其她某些部件。你可以得到二进制形式或者源代码形式Snort。对于大多数安装来说,编译好二进制软件包是非常好。如前面提及,如果你想为Snort定制某些特性,你需要下载源代码版Snort自行编译。例如,有人喜欢SMB告警,但此外某些人也许以为它们不安全。如果你需要不支持SMB告警Snort,那么你需要自己编译它。这对于某些如SNMP trap、MySQL等其她特性也是同样。此外一种自己编译Snort理由是你需要理解正在开发中代码。本章将指引你一步一步安装Snort。基本安装过程是非常简朴,并且Snort已经提供应你包括大多数已知袭击特性预定义规则。固然,自定义安装还是要费某些工夫。22 安装Snort在这一某些,你将理解如何安装编译好Snort和如何自己编译和安装。安装编译好RPM包非常简朴,仅需要几步。但是如果你Snort是源代