基于windowssnort 下的入侵检测apache+snort+mysql+base汉语版文档格式.docx
《基于windowssnort 下的入侵检测apache+snort+mysql+base汉语版文档格式.docx》由会员分享,可在线阅读,更多相关《基于windowssnort 下的入侵检测apache+snort+mysql+base汉语版文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
组成。
底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对
NDIS
中函数的调用为
Win95、Win98、WinNT、和
Win2000
提供一类似于
UNIX
系统下
Berkeley
Packet
Filter
的捕获和发送原始数据包的能力。
是对这个
驱动程序进行访问的
API
接口,同时它有一套符合
接口(UNIX
下的捕获函数库)的函数库。
MySQLServer:
MySQL是一个基于SQL的应用于众多平台的数据库服务器,我们用它来存储Snort的告警信息。
所有的来自IDS探测器的告警信息都被存储在我们的MySQL数据库中。
ADODB:
PHP中一个对象导向的数据库封包链接库,它提供了共通的应用程序接口来跟所有支持的数据库沟通,简化了你的程序的数据库移植性操作。
ADODB是ActiveDataObjectDataBase的缩写,目前支持MySQL、PostgreSQL、Oracle、Interbase、MicrosoftSQLServer、Access、FoxPro、Sybase、ODBC及ADO。
PHP:
这是一个广泛使用的通用脚本语言,特别适用于Web开发并且可以被嵌入到HTML中。
BasicAnalysisandSecurityEngine(BASE):
BASE是一个用来查看SnortIDS告警的Web应用程序。
BASEisaweb-basedapplicationforviewingSnortIDSalerts.所有探测器的信息在这里被加工整理以方便查看。
WinIDS-AllInOneSoftwarePak
提示:
到2007年3月5日为止,所有需要的和最新的文件已被包含进下面的AIOSoftwarePak中。
我们正在制作一个AIO(ALLINONE)的软件包,它包含本指南所需要的所有支持软件。
我们不特别强调只有包含在AIO软件包中的软件才能用于初始化安装。
但我们已经发现一些新版本的软件之间存在兼容性问题从而导致安装失败。
我们在这些新的程序之间变得“融洽”后也将继续发布新版本的AIO软件包。
AIO的下载地址:
强制的先决条件
♦只能使用包含在我们的AIO软件包中的程序
♦干净的Windows2000/XP/Vista/2003安装
♦所有SP包和补丁均已安装
♦系统分区(比如C:
\)最小5G
♦WinIDS分区(比如D:
\)10G以上
♦保证探测器拥有静态TCP/IP设置并且接入网络
♦在WinIDS上解除所有防火墙应用程序
♦新的WinIDS探测器必须被允许接触所有网络通讯。
这可以通过将探测器接入拥有端口映射功能的交换机上,hub上,或者是一个网络节点处。
在开始安装前,我们强烈建议您使用MBSA(MicrosoftBaselineSecurityAnalyzer)解决所有的安全问题。
说明:
本译文使用C盘作为WinIDS的分区。
安装基本的Windows入侵检测系统(WinIDS)
预安装任务
下列任务这些必须在安装WinIDS前完成
1.在一些情况下微软系统默认安装IIS。
要保证在开始安装WinIDS前IIS已被移除。
2.进入到C:
\Windows\system32\drivers\etc下,适用写字板打开hosts文件,将’本机ipwinids’加入到文件中(如下所示),保存退出,在命令行中使用’pingwinids’测试。
3.将下载的AIO软件包解压缩
安装WinPcap
一路next,accept,finish即可
安装和配置Snort
1.安装Snort程序到c:
\snort
在安装开始的第二个步“InstallOptions”处,由于Snort的所有Windows版本已经默认支持将日志记录到Mysql和ODBC数据库服务器,所以此处可以选择第一个单选按钮或者可以选择其它两个以添加额外的数据库支持。
Snort安装第二步图示
2.将snortrules-snapshot-CURRENT.zip中的文件解压到c:
\snort相应文件夹中。
3.进入c:
\snort\etc下,使用写字板编辑snort.conf文件
使用写字板中的“查找”寻找下列变量。
更改内容如下所示:
Original:
varHOME_NETany
Change:
varHOME_NET192.168.1.0/24
varEXTERNAL_NETany
varEXTERNAL_NET!
$HOME_NET
varRULE_PATH../rules
varRULE_PATHc:
\snort\rules
#configdetection:
search-methodlowmem
configdetection:
search-methodlowmem
dynamicpreprocessordirectory/usr/local/lib/snort_dynamicpreprocessor/
dynamicpreprocessordirectoryc:
\snort\lib\snort_dynamicpreprocessor
dynamicengine/usr/local/lib/snort_dynamicengine/libsf_engine.so
dynamicenginec:
\snort\lib\snort_dynamicengine\sf_engine.dll
查找条目'
preprocessorstream4_reassemble'
(lessthequotes),并添加下一行到该条目之下。
preprocessorstream4_reassemble:
both,ports21232553801101111391434455131433
Preprocessorsfportscan'
(lessthequotes)并改变下一行。
sense_level{low}
sense_level{low}\
在上一行下加入:
logfile{portscan.log}
在'
#outputlog_tcpdump:
tcpdump.log'
下插入下一行:
outputalert_fast:
alert.ids
#outputdatabase:
log,mysql,user=rootpassword=testdbname=dbhost=localhost
outputdatabase:
log,mysql,user=snortpassword=snortdbname=snorthost=winidssensor_name=WinIDS
includeclassification.config
includec:
\snort\etc\classification.config
includereference.config
\snort\etc\reference.config
#includethreshold.conf
\snort\etc\threshold.conf
保存并退出。
测试Snort安装
打开命令行,在提示符下输入’cdc:
\snort\bin’回车。
在命令提示符下输入’snort–W’,回车。
当’-W’参数被使用的时候,Snort将探测多个接口,并且以数字(1-x)形式显示。
Snort需要知道有哪些接口可以监控,如果没有发现网络接口,安装必须停止直到问题解决。
Whenthe-Wswitchwasusedintheaboverunline,Snortmayhavedetectmultipleinterfaces,anddisplayedthenbynumbers(1-x).Snortwillneedtoknowwhichinterfacetomonitor.IfNointerfacearefound,theinstallMUSTstopuntiltheproblemiscorrected.
下面的过程需要将WinIDS连接到网络,并且需要产生通讯。
这通常可以通过Web浏览器打开一个远程站点来达成。
从命令行输入’snort–v–i1’,回车。
这将以详细输出模式运行snort,并在接口1上探测通讯。
现在打开一个Web浏览器产生一些Web通讯。
如果只有一个网卡,因为通讯的产生我们应该会在命令行窗口看到流经的数据统计,如果探测器上装有多个网卡并且在命行行窗口看不到数据统计,而且snort也在运行中,那么从任务管理器停止snort,然后改变’snort–v–iN’中N的值再次运行snort,直到有通讯数据统计出现在命令行窗口中。
N的值需要记住,以备配置文件中使用
命令行中使用’CTRL+C’或者通过任务管理器来结束Snort
使用虚拟机获取的Snort–w效果图
Snort–v–i2效果图
安装ApacheWebServer
我们这里对安装过程不做赘述,假设安装到了c:
\apache目录下。
安装好Apache后在系统托盘处会出现一个Apache的图标,我们可以通过它来对Apache服务进行控制。
如上图所示,最后两个单选项,是选择将apache安装为服务使用80端口自动启动,还是手动启动使用8080端口,自己定夺。
使用写字板打开c:
\apache\conf\httpd.conf文件。
使用查找定位到配置文件’LoadModulessl_modulemodules/mod_ssl.so’处,并在其下添加如下三行:
LoadModulephp5_modulec:
\php\php5apache2_2.dll
AddTypeapplication/x-httpd-php.php
PHPIniDirc:
\php
安装并配置PHP
将php的windows压缩文件包解压到c:
\php下。
完成后:
1.将c:
\php\libmysql.dll拷贝到c:
\windows\system32下。
2.使用c:
\php\php.ini-dist拷贝生成c:
\php\php.ini
使用写字板编辑c:
所做更改如下所示:
max_execution_time=30
max_execution_time=60
display_errors=On
display_errors=Off
;
include_path="
.;
c:
\php\includes"
include_path="
d:
\win-ids\php\pear"
extension_dir="
./"
\win-ids\php\ext"
extension=php_gd2.dll
extension=php_mysql.dll
session.save_path="
/tmp"
\windows\temp"
保证’session.save_path=’变量指向正确并且存在的’windows\temp’或者’winnt\temp’目录。
保证Everyone拥有上述目录的使用权限。
测试Apache和PHP的安装
将AIO包中的test.php拷贝到’c:
\apache\htdocs’中,然后重起apache服务。
打开浏览器输入’http:
//winids/test.php’
生成如下所示页面。
1.检查php.ini的位置、extension_dir、include_path及session.save_path等设定是否与我们先前设定相符。
2.检查是否有gd,mysql等已经被enable的项。
将snort配置为系统服务
1.在命令行提示符下切换当前目录至’c:
\snort\bin’下。
2.在命令行提示符下输入:
’snort/SERVICE/INSTALL-cc:
\snort\etc\snort.conf-lc:
\snort\log-Kascii-ix’,回车。
(注意-ix中的x代表snort所探测的NIC的序号也就是前面所说的N值)
我们应该看到服务添加成功的消息。
打开“开始/运行”对话框,输入’services.msc’,确定。
如果snort服务已经成功安装,可以找到’Snort’条目,将其设置为’automatic’退出。
安装和配置MySQL
安装时提示:
1.选择“StandardConfiguration”,复选“IncludeBinDirectoryinWindowsPath”,设置好root用户的密码。
2.重起计算机,打开命令行输入:
’mysql-uroot-p’,回车,输入密码,回车。
生成Snort数据库
CreatetheSnortDatabases
在mysql提示符下输入:
1.createdatabasesnort;
2.createdatabasearchive;
如果现在’showdatabases;
’,那么应该显示的数据库有'
information_schema'
'
archive'
mysql'
and'
snort'
.
CreatingSnortDatabaseTables
1.在mysql提示符下输入’connectsnort;
’,回车。
注意它将显示’Currentdatabases:
snort’并且返回mysql提示符号。
2.在mysql提示符下输入’sourcec:
\snort\schemas\create_mysql’
3.在mysql提示符下输入’connectarchive;
4.在mysql提示符下输入’sourcec:
生成数据库访问和授权用户
CreateDatabaseAccessandAuthenticatedUsers
在命令行提示符号下输入:
1.'
setpasswordforroot@localhost=password('
);
'
,回车。
2.‘grantINSERT,SELECT,UPDATEonsnort.*tosnort@winidsidentifiedby'
3.'
grantINSERT,SELECT,UPDATE,DELETE,CREATEonsnort.*tobase@winidsidentifiedby'
base'
4.'
grantINSERT,SELECT,UPDATE,DELETE,CREATEonarchive.*tobase@winidsidentifiedby'
5.'
usemysql;
6.'
select*fromuser;
\mysql\mysql.ini更改其中配置如下所示:
sql-mode="
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
确认MySQL和Snort正在运行
通过任务管理器中的“进程”选项卡确认其中列出的进程是否有”snort.exe”,”mysqld-nt.exe”。
如果Snort或者MySQL的进程没有找到,可通过“事件查看器”查找原因。
安装ADODB
将ADODB的压缩包解压到c:
\adodb
安装和配置WinIDSBASE安全控制台
将base的文件压缩包解压到'
\apache\htdocs'
目录下。
使用c:
\apache\htdocs\base\base_conf.php.dist复制生成base_conf.php
在c:
\apache\htdocs\base下创建一个signatures文件夹,将c:
\snort\doc\signatures中的文件复制到其中。
\apache\htdocs\base\base.conf.php文件,更改如下所示:
$BASE_urlpath='
;
http:
//winids/base'
$DBlib_path='
\adodb'
$DBtype='
?
Originals:
$alert_dbname='
$alert_host='
$alert_port='
$alert_user='
$alert_password='
Changeto:
winids'
$archive_exists=0;
#Setthisto1ifyouwantaccesstothearchiveDBfromBASE
$archive_dbname='
$archive_host='
$archive_port='
$archive_user='
$archive_password='
$archive_exists=1;
$portscan_file='
\snort\log\portscan.log'
必须严格按照单引号内的内容键入否则将导致BASE失败。
生成BASE数据库表
在mysql命令行中输入:
usesnort
sourcec:
\apache\htdocs\base\sql\create_base_tbls_mysql.sql
usearchive
配置图形BASE
打开命令行窗口,切换到c:
在命令行窗口中输入:
’go-pear’,两次回车
忽略错误。
提示