三、snort的设定与启动
我们可以把Snort运做在chroot的环境中,设定也是很简单,首先,可以选定一个有足够位置放置Snort的Log的地方,如果您会定期检查及清除Log文档,您可以把Snort的chroot环境放在/home/snort中,然后需要的是一个
snort使用者,执行以下的指令新增Snort这个用者:
# groupadd snort
# useradd -g "snort" -d "/home/snort" -s "/nonexists" -c "Snort User" snort
|
然后,把snortrules.tar.gz这个文件解压在/home/snort中,解压了snortrules包后,在/home/snort/內有rules文件出现,这就是Snort使用的Ruleset,这些Ruleset就是供Snort用作侦测任何网络反映的基础。在rules中有一个是"snort.conf",它是Snort的配置文件,需要按实际情况修改snort.conf。
在 snort.conf 中,需要修改几个地方便可以执行 Snort,以下是可能需要修改的地方:
- var HOME_NET
网络或是主机的 IP,例如只有这一台服务器,就可以只输入服务器的 IP 地址,如果机器有两个以上的 IP,
可以使用这个方法:
var HOME_NET [192.168.1.1,192.168.1.2]
或是
var HOME_NET 192.168.1.0/24
-var SMTP [IP.Address]
SMTP 服服器的位置,如果与 HOME_NET 中的不同,只需把 $HOME_NET 移除,并加其指定 SMTP 机器的IP便可以。
- var HTTP_SERVERS
HTTP 服服器,与 SMTP 中的设定相同,如成为 Web Server 的不是 HOME_NET 机器,可以指定给其他的 IP。
- var DNS_SERVERS
DNS 服务器的IP地址,同时需要 Uncomment 以下一行:
preprocessor portscan-ignorehosts: $DNS_SERVERS
|
这可以防止因为 DNS 的 Lookup 而记录无用的 PortScan 。
最后是有关记录部份的配置,刚才编译Snort时加入了"MySQL"的支持,为了使用 MySQL 记录,先要在 MySQL中
建立 Snort 使用的 Databases、用者名及密码,执行以下命令:
# echo "CREATE DATABASE snort;" | mysql -u root -p
# grant INSERT,SELECT on snort.* to snort@localhost
然后在 Snort 的源始码內找到 "contrib/create_mysql",再执行以下命令建立 Tables
# mysql -u root -p < create_mysql
完成后,別忘记在 snort.conf 中也要启动 MySQL 的支持,简单地 Uncomment 以下:
在454行:
output database: log, mysql, user=snort password=123 dbname=snort host=localhost
在493行:
ruletype redalert
{
type alert
output alert_syslog: LOG_AUTH LOG_ALERT
output database: log, mysql, user=snort dbname=snort host=localhost
}
|
四,执行snort一切准备工作都做好了,那么现在开始让snort运行起来了哦:)
但在这之前请:
#mkdir /var/log/snort
#chown snort.snort /var/log/snort
现在开始 cd 进入 /home/snort 內,然后打入这个命令:
/home/snort #snort -b -d -i eth0 -u snort -g snort -c /home/snort/rules/snort.conf -l /var/log/snort &
|
-u 功能是使 snort 由 "snort" 这个使用者执行,进入 chroot 的用者环境
-c 指定使用的指定目录
& 只是在背景中执行
五、SNORT规则编写简介
一条Snort规则可以分为前后两个部分,规则头和后面的选项部分。规则头包含有匹配后的动作命令、协议类型、以及选择流量的四元组(源目的IP及源目的端口)。规则的选项部分是由一个或几个选项的符合,所有主要选项之间是与的关系。选项之间可能有一定的依赖关系,选项主要可以分为四类,第一类是数据包相关各种特征的描述选项,比如:conte