本人2009年最新的windows2003下配置snort2.8.4.1的总结
最近在win2003server下配snort2.8.4.1+php5.3+apache2.2+mysql5+adodb509a+base1.4.4+jpgraph+winpcap402,(也尝试用了acid0.9.6b23)
按照网上的提示配置,走了不少弯路,终于能运行起来。
用到的各个软件目前网上都能下载到,我也是刚下载的,所以需要的人自己去下即可。
安装顺序没有明确的先后,大致是
1,snort
2,winpcap
3,mysql5
4,apache2.2
5,php5.3
6,adodb, base, jpgraph
其中遇到过的问题有
1、php5.3 for windows有好几个安装或zip版本,包括nts(Non Thread Safe )或ts(Thread Safe )的,应该下载ts。TS也分VC9或VC6,应该下载VC6的。然后又分zip和msi,我选择的是zip。如果搞错版本和文件,按网上其他人写的配置过程就会找不到一些dll文件。
2、apache2.2配php5好像有另一种写法,但还是用常见的写法比较合适,即
LoadModule php5_module "D:/PHP5/php5apache2_2.dll"
AddType application/x-httpd-php .php .phtml
3、snort本身不带rules,需要到他的网站用email注册并激活账号,就可以下载snortrules-snapshot-CURRENT.tar.gz。
4、mysql我用的是msi安装包,安装时会提示输入root的密码。我用的是sqlyog管理mysql,建立snort对应的数据表。有的帖子说要建立snort账号并授权,我懒得建立。
5、adodb解压到php5目录下,好像不用改它的配置
6、解压base到apache2\htdocs下,直接从ie里浏览,它会提示你一步步的配置,或者直接修改它的配置base_conf.php,里面有写adodb的路径,mysql的参数等,还可以设置界面语言简体中文。acid是很早以前的版本,已经不再更新,base是基于acid修改的,功能更好些,不过代码有问题,需要修改includes\base_state_citems.inc.php,在294行的ProtocolFieldCriteria类里,增加一个构造函数
function ProtocolFieldCriteria(&$db, &$cs, $export_name, $element_cnt, $field_list = Array() )
{
$tdb =& $db;
$cs =& $cs;
$this->BaseCriteria($tdb, $cs, $export_name);
$this->element_cnt = $element_cnt;
$this->criteria_cnt = 0;
$this->valid_field_list = $field_list;
}
7、snort安装时会提示你使用什么数据库,默认支持mysql,可选mssql或oracle。但如果选择后两种,好像需要你本机安装有相应的驱动,否则启动snort会报错找不到某些dll。
8、浏览base里图形页面,会报jpgragh临时目录没设置的问题,还没修改。好像是要建立csimcache目录。
9、运行snort,可能会抓不到数据包,可以运行snort -W 检查有几个网卡设备,然后运行命令时加上 -ix的参数,如-i2。
10、运行snort前,还需要在windows环境变量中加PCAP_FRAMES值为max
以上是已经解决的问题,但运行起snort后,用-v参数,能看见有数据包被抓获,但就是写入不到数据库里面,改成log输出也没有内容,很是奇怪
下面是snort配置,和屏幕输出
#--------------------------------------------------
# http://www.snort.org Snort 2.8.4.1 Ruleset
# Contact: snort-sigs@lists.sourceforge.net
#--------------------------------------------------
###################################################
# Step #1: Set the network variables:
#
var HOME_NET any
# Set up the external network addresses as well. A good start may be "any"
var EXTERNAL_NET any
# List of DNS servers on your network
var DNS_SERVERS $HOME_NET
# List of SMTP servers on your network
var SMTP_SERVERS $HOME_NET
# List of web servers on your network
var HTTP_SERVERS $HOME_NET
# List of sql servers on your network
var SQL_SERVERS $HOME_NET
# List of telnet servers on your network
var TELNET_SERVERS $HOME_NET
# List of snmp servers on your network
var SNMP_SERVERS $HOME_NET
portvar HTTP_PORTS 80
portvar SHELLCODE_PORTS !80
portvar ORACLE_PORTS 1521
var AIM_SERVERS [64.12.24.0/23,64.12.28.0/23,64.12.161.0/24,64.12.163.0/24,64.12.200.0/24,205.188.3.0/24,205.188.5.0/24,205.188.7.0/24,205.188.9.0/24,205.188.153.0/24,205.188.179.0/24,205.188.248.0/24]
var RULE_PATH d:\snort\rules
var PREPROC_RULE_PATH ../preproc_rules
###################################################
# Step #2: Configure dynamic loaded libraries
#
dynamicpreprocessor directory d:/snort/lib/snort_dynamicpreprocessor/
###################################################
# Step #3: Configure preprocessors
#
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy first detect_anomalies
preprocessor stream5_global: max_tcp