最近服务器经常出现不明不白的错误,从表面上看应该是服务器被HACK给攻击或者被入侵了.决心好好研究IDS入侵防护这一块.找到好的资料供大家共享.
版权申明:本文版权为
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
;
[Link] http://apache.mirror.phpchina.com/httpd/binaries/win32/
PHP 5.2.4 for Win32 Non-install
;
PEAR 1.6.1
;
[Link] http://www.php.net
WEB
前端:
Basic Analysis and Security Engine 1.3.6 (
各平台通用,基于
PHP
,目前最新版本为
1.3.8
,但是有一个比较麻烦的
Bug
,后面会解释
)
[Link] http://sourceforge.net/project/showfiles.php?group_id=103348
III.
前期准备
作为一套入侵检测系统,自身安全自然是最重要的。对于
Windows Server 2003
系统安全配置及策略无需多说,假如是用作生产环境的
IDS
,应该使用专属的服务器并尽可能删除任何与配置管理
IDS
无关的服务和组件。如果条件允许,使用
“
传感器
―
数据库
―
分析平台
”
的三层独立架构可以获得更高的运行性能、稳定性与安全性。
确定了系统架构并获得所需要的软件包后,就可以正式开工了。由于我建立的是测试环境,所有的组件安装都在一台机器上完成。
IV.
部署过程
1.
传感器组件:
首先需要注意的是使用高性能的服务器网卡对于提高抓包性能和质量非常有效,我使用的是
2
张
Broadcom NetXtreme
千兆网卡,
30
分钟的抓包测试中,掉包率为
0%
,
CPU
占用率非常低。另外
WinPcap
和
Snort
应尽量使用最新的稳定版本,捕获数据包的质量对于
IDS
来说非常重要,当然这条准则同样适用于其他组件。
WinPcap
和
Snort
都是现成的安装程序,过程非常简单。建议将
snort
安装在非系统分区内,这里为
D:\snort\
。安装完
Snort
后,
rules
目录下还是空的,需要将另外下载的
snort
规则包解压拷贝到
snort
安装目录下,注意规则包所对应的版本。
修改
snort
的设置文件:
d:\snort\rules\var\snort.conf
#
设置规则包路径:
var d:\snort\rules
#
设置数据库连接:
output database: log, mysql, user=snortuser password=snort dbname=snortdb host=localhost
#
设置动态预处理库目录
dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll
2.
数据库组件
这次使用的是
MySQL 5.0.45 for Win32
的完整安装程序,为了更高的安全性和移植性也可以使用不带安装程序的软件包。
软件包的安装较简单,服务端和客户端程序是必选组件,其他可根据需要选择安装。建议安装在非系统分区。
因为截图无法批量上传,其它的..大家下载附件.