这段时间一直都在研究snort,很优秀的一个东东。将学习的一点点经验贴出来,一来能为自己作一些积累,二则或许还能给你带来方便,仅此足以~
实验环境:
1.RedHat Linux 9操作系统。确定已经安装了libpcap工具,若不能确定,用下面的命令:
rpm -q libpcap
若看见类似"libpcap-0.7.2-1"的消息说明已经安装了libpcap;反之,请访问http://sourceforge.net/projects/libpcap,下载最新发布版本安装它。若不想源码安装,您也可以访问http://www.rpmfind.net,下载最新的RPM包安装。
2.下载snort源码压缩包:snort-2.6.0.2.tar.gz (http://www.snort.org/)
下载snort最新规则库:snortrules-snapshot-CURRENT.tar.gz (需注册后才能获得)
一、Snort的安装:
1. tar –zxf snort-2.6.0.2.tar.gz
2. cd snort-2.6.0.2
3. ./configure –with-mysql --enable-dynamicplugin
4. make && make install
5. cd etc
6. mkdir /etc/snort
7. cp *.map *.config /etc/snort/
8. tar –zxf snortrules-snapshot-CURRENT.tar.gz –C /etc/snort/
二、配置Snort:
修改Snort配置文件,用vi打开/etc/snort/snort.conf,修改如下行为:
var HOME_NET 192.168.8.129
var RULE_PATH /etc/snort/rules
三、Snort体验:
Snort的工作方式有三种:嗅探器、数据包记录器、网络入侵检测系统。前两种较为简单一些,在这不说了。关键是第三种,涉及到配置文件,要复杂的多。既然是入侵检测系统,肯定是有报警之类的东西出来的。一般是保存在/var/log/snort/alert文件中,当然利用-l选项也可改变日志的输出文件。Snort的报警有6种输出模式:full、fast、unit sockect、syslog、smb和none。有4种可以用命令-A选项来控制。
-A full:是默认的报警模式。
-A fast:报警信息包括:一个时间戳(timestamp)、报警消息、源/目的IP地址和端口。
-A unsock:把报警发送到一个UNIX套接字,需要有一个程序进行监听,这样可以实现实时报警。套解口捆绑的路径名为/var/log/snort/snort_alert。需进一步对报警进行处理是此选项非常有用:)
-A none:关闭报警机制。
smb模式发送WinPopup消息。(在运行./configure脚本时,必须使用--enable-smbalerts选项)使用-s选项可以使snort把报警消息发送到syslog,默认的文件输出是/var/log/messages。
要使snort以网络入侵检测系统的方式运行必须加上-c /etc/snort/snort.conf选项。
很多日志插件都可以用于Snort,Database就是一个非常流行的输出插件,它允许把数据写入到下列数据库中:MySQL, PostgreSQL, unixODBC, Oracle和MS-SQL Server。这里主要说一下利用mysql记录报警的配置,其它数据库类似。
首先必须建立mysql数据库:
1、在snort-2.6.0.2/schemas/目录下找到文件create_mysql,编辑它在文件开始处加上如下两行:
creat database snort;
use snort;
2、用下面的命令运行:
mysql -u root