版权申明:本文版权为Stanley所有,仅限于非盈利性网站、BSS、BLOG转载和收藏,未经允许,严禁用于商业用途。转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
Snort
是一套非常优秀的开放源代码网络监测系统,在网络安全界有着非常广泛的应用。其基本原理基于网络嗅探,即抓取并记录经过检测节点以太网接口的数据包并对其进行协议分析,筛选出符合危险特征的或是特殊的流量。网络管理员可以根据警示信息分析网络中的异常情况,及时发现入侵网络的行为。其名称Snort(喷鼻息)也是来源于“嗅探”(sniff)的反义词。
Snort
最开始是针对于Unix/Linux平台开发的开源IDS软件,后来才加入了对Windows平台的支持。但直至现在对于Snort的应用(尤其是Snort的前端传感部分)主要还是基于Unix/Linux平台的,因为现在的普遍观点都支持Unix内核的网络效率要大大高于Windows内核。不过由于Windows平台的易用性和普及性,在Windows Server上建立开放而又便宜的Snort IDS对于网络研究及辅助分析还是非常有意义的。
第一次在Windows系统下部署基于Snort的IDS是一个非常痛苦的过程,网络上充斥着过时的文档和以讹传讹的借鉴心得,一开始我就走了不少弯路。不过假如能够理清思路其实并不困难。
I.
系统结构
基于Snort和BASE的入侵检测系统通常采用“传感器—数据库—分析平台”的三层架构体系。传感器即网络数据包捕获转储程序。
WinPcap
作为系统底层网络接口驱动,Snort作为数据报捕获、筛选和转储程序,二者即可构成IDS的传感器部件。为了完整覆盖监控可以根据网络分布情况在多个网络关键节点上分别部署IDS传感器。
Snort
获得记录信息后可以存储到本地日志也可以发送到Syslog服务器或是直接存储到数据库中,数据库可以是本地也可以是远程的,Snort2.8.0支持MySQL、MSSQL、PostgreSQL、ODBC、Oracle等数据库接口,扩展性非常好。
Snort
的日志记录仅仅包含网络数据包的原始信息,对这些大量的原始信息进行人工整理分析是一件非常耗时而且低效率的事情,我们还需要一个能够操作查询数据库的分析平台。无论是从易用性还是平台独立性考虑,WEB平台都是首选。ACID是Snort早期最流行的分析平台,使用PHP开发,不过之后的一段时间开发组不再更新和支持这套系统,现在已经由基于它再开发的BASE所取代。
这三种角色既可以部署于同一个主机平台也可以部署在不同的物理平台上,架构组织非常灵活。如果仅仅需要一个测试研究环境,单服务器部署是一个不错的选择;而如果需要一个稳定高效的专业IDS平台,那么多层分布的IDS无论是在安全还是在性能方面都能够满足。具体的部署方案还要取决于实际环境需求。
II.
安装环境
预安装环境:
主要硬件: HP DL140: Xeon 2.4GHz; 2G DDR; Broadcom NetXtreme Gigabit Ethernet X2;
操作系统: Windows Server 2003 Std SP2 R2
部署软件包:
传感器组件:
WinPcap 4.0
;网络数据包截取驱动程序
[Link] http://winpcap.polito.it
Snort 2.8.0 for Win32
;Sourcefire VRT Certified Rules Released 2007-08-27;
Windows
版本的Snort安装包以及官方认证Snort规则库(须注册)
[Link] http://www.snort.org
数据库组件:
MySQL 5.0.45 for Win32
;MySQL GUI Tools 5.0 r12 for Win32;
MySQL
数据库及管理工具
[Link] http://www.mysql.com
ADODB 4.95a
;(Active Data Objects Data Base for PHP5)
PHP5
的数据库连接组件(支持MySQL/MSSQL/PostageSQL等)
[Link] http://sourceforge.net/project/showfiles.php?group_id=42718
分析平台:
Apache 2.2.6 for Win32-x86 with OpenSSL 0.9.8e
;