日期:2014-05-17  浏览次数:20944 次

本人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