Snort安装教程
 
Ncool-soft ncool_kk[ http://ncool.56.com ] 2006-1-9

首先得到我们需要的软件包(最新软件包):
1、snort2.0.exe(在windows平台下的snort最新版本,linux平台的已经是snort2.4.3)
http://www.snort.org
2、WinPcap_3_2_alpha1.exe(windows版本的PCAP)
http://winpcap.polito.it
3、idscenter11rc4.zip(windows版本的基于snort的图形控制台)
http://www.packx.net
4、sam_20050206_bin.zip(*uinx、windows版本下的与snort配合使用的实时分析软件<使用java编写> )
http://www.lookandfeel.com
5、mysql-5.0.16-win32.zip(windows版本的mysql数据库服务器)
http://www.mysql.com
6、ACID-0.9.6b23.tar.gz(基于php的入侵检测数据库分析控制台)
http://www.cert.org/kb/acid
7、adodb465.tgz(ADOdb(Active Data Objects Data Base)库for PHP)
http://jaist.dl.sourceforge.net/sourceforge/adodb/adodb465.zip
8、apache_2055-win32.msi(windows版本的apache Web服务器)
http://www.apache.org
9、php-5.1.1-Win32.zip(windows版本的php脚本环境支持)
http://www.php.net
10、jpgraph-2.0.tar.gz(php下面的图形库)
http://www.aditus.nu/jpgraph
11、phpMyAdmin-2.2.7-pl1-php3.zip(基于php的mysql数据库管理程序)
http://www.phpmyadmin.net

开始环境安装:

安装Mysql

笔者采用默认安装后,Mysql的位置为c:\mysql5,之后设置Mysql为服务方式运行,在命令提示符里面输入:c:\mysql5\bin>mysqld-nt –install
启动Mysql服务:
方法1、在命令提示符里输入:net start mysql
方法2、开始—>设置—>控制面板—>管理工具—>服务—>启动“MYSQL”服务
注意:
如果你的windows版本不能启动Mysql,新建my.ini文件,其内容为:
[mysqld]
basedir=C:\MySQL5
bind-address=127.0.0.1
datadir=C:\MySQL5\data
注意其中的basedir 和datadir 目录是否指向了正确的目录
把my.ini 拷贝至%systemroot%目录下就可以了
安装apache

在安装时要注意,如果你安装了IIS并起用了web server ,由于IIS web server的默认监听端口是80,会和apache web server冲突,为辟免冲突我们将apache的监听端口配置成其他不常用端口(笔者使用的8027)。
默认安装后在c盘C:\apache\Apache2\conf文件夹下面找到httpd.conf文件修改:
Listen 80 为 Listen 8027
安装apache后将它做为服务方式运行,在命令提示符下输入:
c:\apache\apache2\bin>apahce –k install

安装php5,并添加Apache对PHP的支持与PHP对Mysql的支持。
解压文件php-5.1.1-Win32.zip到c:\php5
拷贝php5ts.dll文件到%systemroot%\system32
拷贝php.ini-dist 至%systemroot%\php.ini
修改php.ini
extension=php_gd2.dll
extension=php_mysql.dll
同时拷贝c:\php\extension下的php_gd2.dll与php_mysql.dll 至%systemroot%\
添加gd库的支持在C:\apache\Apache2\conf\httpd.conf中添加
LoadModule php5_module "c:/php5/php5apache2.dll"
AddType application/x-httpd-php .php
启动Apache服务:
方法1 使用Apache Service Monitor (Apache自带的启动工具)如下图:
<由于图片无法上传,没有参考图片>
方法2 开始—>设置—>控制面板—>管理工具—>服务—>启动“Apache2”服务
在C:\apache\Apache2\htdocs目录下新建webinf.php,文件内容为:
<?phpinfo();?>
使用http://localhost:8027/webinf.php 或是 http://127.0.0.1:8027/webinf.php
你将看到你服务器的PHP 、Mysql 、Aapche等配置信息,细细阅读,并根据该信息配置你的服务器,至于如何详细配置PHP、Mysql、Apache请参考其他资料!

安装snort2.0.exe与winPCAP

两者都采用默认安装。

为安全起见,我们配置Mysql帐号

为默认root 帐号添加口令:
c:\>cd mysql\bin
c:\>mysql mysql
mysql>set password for "root"@"localhost" = password('your password ');
在安装Mysql5时,程序会提示你是否设置root帐号和密码中已,经默认存在root帐号了,就不用配置这步。
删除默认的any@%帐号
mysql>delete from user where user='' and host = '%'
mysql>delete from db where user='' and host = '%'
mysql>delete from tables_priv where user='' and host = '%'
mysql>delete from columns_priv where user='' and host = '%'
删除默认的any@localhost 帐号
mysql>delete from user where user ='' and host = 'localhost'
mysql>delete from db where user = '' and host = 'localhost'
mysql>delete from tables_priv where user='' and host = 'localhost'
mysql>delete from columns_priv where user='' and host= 'localhost'
删除默认的root@%帐号
mysql>delete from user where user = 'root' and host = '%'
mysql>delete from db where user = 'root' and `host` = '%'
mysql>delete from tables_priv where user= 'root' and host = '%'
mysql>delete from columns_priv where user = 'root' and host = '%'
这样只允许root 从localhost 连接。更多的Mysql配置资料请参考其他。

建立snort 运行必须的snort 库和snort_archive 库
mysql>create database snort;
mysql>create database snort_archive;
使用c:\snort\contrib 目录下的create_mysql 脚本建立Snort 运行必须的数据表
c:\mysql\bin\mysql -D snort -u root -p < c:\snort\contrib\create_mysql
enter password : *********
c:\mysql\bin\mysql -D snort_archive -u root -p < c:\snort\contrib\create_mysql
enter password : *********
或是
将C:\Snort\contrib下的create_mysql文件拷贝到C:\mysql5\bin目录下后
mysql>source create_mysql

注意:
由于笔者的配置经历,发现snort2.0.exe安装后的C:\Snort\contrib\create_mysql文件不能正确的创建到Mysql的服务器中,使用上面的方法报告语法错误。解决这个问题的办法就是在http://www.snort.org 上下载linux 版本的snort2.4.3.tar.gz安装软件包利用winRAR解压后,找到 ./contrib/create_mysql文件,使用这个新版本的的create_mysql才能成功的创建数据文件到Mysql中。
为Mysql 建立snort 和acid 帐号,使IDSCenter或acid能正常访问Mysql中与snort相关的数据文件。
mysql> grant usage on *.* to "acid"@"localhost" identified by "acidtest";
mysql> grant usage on *.* to "snort"@"localhost" identified by "snorttest";
为acid 用户和snort 用户分配相关权限
mysql> grant select,insert,update,delete,create,alter on snort .* to "acid"@"localhost";
mysql> grant select,insert on snort .* to "snort"@"localhost";
mysql> grant select,insert,update,delete,create,alter on snort_archive .* to
>"acid"@"localhost";
为acid拥护和snort 拥护设置密码
mysql>set password for "snort"@"localhost" = password('your password ');
mysql>set password for "acid"@"localhost" = password('your password ');

安装adodb:

解压缩adodb456.zip 至c:\php5\adodb 目录下。

安装安装jpgrapg 库

解压缩jpgraph-2.0.tar.gz 至c:\php5\jpgraph
修改jpgraph.php
DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");

安装acid

解压缩acid-0.9.6b23.tar.gz 至c:\apache\apache2\htdocs\acid 目录下。
修改acid_conf.php 文件
$DBlib_path = "c:\php5\adodb";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "3306";
$alert_user = "acid";
$alert_password = "your password";
/* Archive DB connection parameters */
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "3306";
$archive_user = "acid";
$archive_password = "your password";
$ChartLib_path = "c:\php5\jpgraph\src";
建立acid 运行必须的数据库:
http://localhost:8027/acid/acid_db_setup.php 或是
http:/127.0.0.1:8027/acid/acid_db_setup.php
按照网业上的提示操作既可。
简单的snort配置
打开C:\Snort\etc下的snort.conf文件(可以使用记事本或是写字板打开)
配置:
var RULE_PATH c:/snort/rules(配置rules的绝对路径)
include c:\snort\etc\classification.config(classification.config的绝对路径)
include C:\Snort\etc\reference.config(……)
配置snort的输出插件:
output database: alert, Mysql, host=localhost port=3306 dbname=snort user=root password=your_password sensor_name=n encoding=ascii detail=Full
由于我的Mysql和snort在同一台服务器上,所以用的是root帐号登陆,如果不是在本地的Mysql服务器,使用:
output database: alert, Mysql, host=192.168.22.139 port=3306 dbname=snort_ncool_1 user=snort password=your_password sensor_name=n encoding=ascii detail=Full
其他的设定及命令含义请参考snort相关资料。(可以进入我的主页http://ncool.56.com得到部分资料)
现在你可以在命令提示符里输入:
c:\snort\bin>snort –c c:\snort\etc\snort.conf –l c:\snort\log –d –e –v
测试你的snort的配置情况。

安装IDSCenter,并使用IDSCenter 配置snort项

这三个软件笔者都是采用的默认安装,当然对与安装路径等,你也可以按照自己的需要设定,配置与此也是大同小异。
在很多网络流传的资料里,很多都是用文本方式配置snort.conf文件来对snort 进行配置的,在这里笔者就不讲述这种方法,以及snort.conf里的每个配置项代表的意思这里也不讲述,请参考相关资料,我使用的是IDSCenter 1.1 RC4 来做的这些配置工作,感觉更加简单。
启动IDSCenter 1.1 RC4,如下图: < IDSCenter 1.1 RC4主窗口 >
<由于图片无法上传,没有参考图片>

关于DISCenter的配置,请参考其他资料或进我的个人主页http://ncool.56.com [请您使用Microsoft Internet Explorer5.5及以上版本的浏览器访问] 我的BLOG 里面有笔者的使用心得。


安装 SAM

下载完成后,由于它是*.jar包,如果你没有安装J2SE Runtime Environment 5.0 Update 6 那么就到http://java.com/zh_CN/download/index.jsp 下载并安装。安装好后,你直接点击 sam.jar运行SAM软件。
<由于图片无法上传,没有参考图片>

在命令提示符中输入:
c:\snort\bin>snort -c "c:\snort\etc\snort.conf" -l "c:\snort\logs" -d -e -X
-X 参数用于在数据链接层记录raw packet 数据
-d 参数记录应用层的数据
-e 参数显示/记录第二层报文头数据
-c 参数用以指定snort 的配置文件的路径
运行snort检测网络数据包,并使用SAM 和ACID 监视服务器情况。你的服务器就这样轻松全在你的监视中了。




最后:
SNORT的更多辅助工具:
Snortsnarf http://www.silicondefense.com/software/snortsnarf
Snortplot.php http://www.snort.org/dl/contrib/data_analysis/snortplot.pl
Swatch http://acidlab.sourceforge.net
Demarc http://www.demarc.com
Razorback http://www.intersectalliance.com/projects/razorback/index.html
Incident.pl http://www.cse.fau.edu/~valankar/incident
Loghog http://sourceforge.net/project/loghog
Oinkmaster http://www.algonet.se/~nitzer/oinkmaster
Sneakyman http://sneak.sourceforge.net
Snortreport http://www.circurtsmaximus.com/download.html
………
上面软件的功能及特性,参见该软件的下载网站。

上面做的只是一个HIDS(主机IDS),这是我在做基于snort
的NIDS前练兵配置经历。现在做的NIDS(基于windows平台)模式如下:
<由于图片无法上传,没有参考图片>
( 具体布置的由网络决定 )