- 论坛徽章:
- 0
|
本小虾米来咨询各位大虾,希望各位大侠帮我解决此难题啊。下面是我做SNORT+GUARDIAN的指导资料,我就是按照这个做的。
构建小型入侵检测系统
libpcap: libpcap-1.0.20050129.tar.gz
Snort: snort-2.8.3.1.tar.gz
guardian guardian-1.6.tar.gz
pcre pcre-7.0.tar.gz
我的系统是:centos-4.6
安装:
① 解压libpcap包,并进入解压出来的目录,执行 ./configure
② 执行make ; make install 命令编译并安装 ③ 执行updatedb ; locate libpcap 命令,如果有信息返回,则说明libpcap安装成功,如果没有则说明安装未成功,需要重新安装.
④ 解压pcre包,并在解压出的目录中执行 ./configure ; make ; make install 安装.
⑤ 解压snort包并进入其目录,执行 ./configure ⑥ 执行make ; make install 安装snort.
注意:在执行snort的 ./configure时,可以使用--enable-smbalerts选项,该选项可以通过SAMBA把snort的报警消息发送到Windows主机。
配置snort:
① 在解压出来的snort目录下执行 cp etc/snort.conf /etc
② 在解压出来的snort目录下执行 mkdir /etc/snort .
③ 在http://www.snort.org/pub-bin/downloads.cgi 下载snort规则文件,并将其放在 /etc/snort目录下,并对其解包.
注意:snort规则需下载注册用户的. ④ 执行 mkdir /var/log/snort 命令,创建snort日志目录
⑤ vi /etc/snort.conf 文件,跳到第26行,放开 var HOME_NET 字段,并在后面按原来的格式填上要监控的网段.
⑥ 跳到114行,找到 var RULE_PATH 字段,并在其后面填上完整的snort规则存放路径,这里为 /etc/snort/rules.
⑦ 跳到第476行, iis_unicode_map 字段,在其后面写上/etc/snort/rules/unicode.map 1252
⑧ 跳到第905行,找到include classification.config 项,将其改为: include /etc/snort/rules/classification.config
⑨ 跳到第913行,找到include reference.config 项,将其改为 include /etc/snort/rules/reference.config
⑩ 将 /usr/local/bin/snort -d -D -h 10.10.0.0/24 -c /etc/snort.conf 添加到 /etc/rc.d/rc.local 文件中.
注意:在此处的-h 后面应该填上要监控的网段,这一部的意思是开机自动启动NIDS入侵检测系统.
? /etc/snort/rules跳到第953行,找到 include $RULE_PATH/bad-traffic.rules .从这行开始一直到最后,全部为snort的规则集合,可根据个人需要进行调试.以 # 号为准表示是否启用.
? 建议去掉这些规则前面的 # 号,即放开这些规则.
# include $RULE_PATH/web-attacks.rules
# include $RULE_PATH/backdoor.rules
# include $RULE_PATH/shellcode.rules
# include $RULE_PATH/policy.rules
# include $RULE_PATH/porn.rules
# include $RULE_PATH/info.rules
# include $RULE_PATH/icmp-info.rules
# include $RULE_PATH/virus.rules
# include $RULE_PATH/chat.rules
# include $RULE_PATH/multimedia.rules
# include $RULE_PATH/p2p.rules
# include $RULE_PATH/spyware-put.rules
配置guardian:
① 解包,跳转到解压出来的目录,依次执行以下几条复制命令.
② echo > /etc/guardian.ignore
③ cp guardian.pl /usr/local/bin/
④ cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
⑤ cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
⑥ cp guardian.conf /etc/
⑦ 执行vi /etc/guardian.conf 命令编辑guardian的配置文件.
⑧ 找到 HostIpAddr ,将其前面的 # 好去掉,并在其后面填上本机的IP地址.
⑨ 找到Interface,在后面写上监控的网卡地址名称. ⑩ LogFile 定义 guardian的日志文件.
注意:该文件需要根据定义的路径手动创建,其权限设为600
? IgnoreFile 要忽略的IP地址存放文件,即要对某个IP地址不做检测,将其加在该文件中即可.
? TimeLimit 定义封锁IP的最长时间,当为99999999时为没有时限.
? AlertFile 定义从那里读取snort的日志,在此处为 /var/log/snort/alert ,这里要填写绝对路径.
? 将 /usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf 命令加入到 /etc/rc.d/rc.local 文件中,让其开机自动执行.
配置snort规则自动更新① 编写以下脚本:
#!/bin/sh cd /etc/snort
wget http://www.snort.org/pub-bin/dow ... ot-CURRENT_s.tar.gz
tar zxvf snortrules-snapshot-CURRENT.tar.gz exit 0
② 将以上内容保存为snortupdate.sh ,并用chmod a+x 给予其可执行权限.
③ 将snortupdate.sh文件放到 /etc/cron.daily文件夹中,或者用 crontab -e 命令,在cron程序的配置文件中加入 “0 3 * * * snortupdate.sh文件存放路径”一行,让其每天3点自动执行一次更新脚本.
解决guardian程序自动退出问题
有时候guardian程序会自动退出,所以编写以下脚本
#!/bin/bash
/usr/local/bin/snort -d -D -h 10.10.0.0/24 -c /etc/snort.conf
/usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf
将其保存为可执行文件,放到 /etc/cron.hourly 文件夹中,让其每小时自动启动一次.
配置好之后,由SNORT检测被入侵的情况并记录到日志/var/log/snort/alert里,然后guardian对该日志进行分析,如果发现攻击,就修改iptables规则,将发现的攻击者的数据包拦截掉。可是实际上,我发现guardian没有发挥任何作用。
现在的情况是:我的snort已能正常工作,并且当我对IDS主机发起端口扫描和发送大量65500比特大小的PING包时,在/var/log/snort/alert里都能看到记录。我是使用192.168.1.114这台机器发起端口扫描,IDS主机IP地址为:192.168.1.188.请大家看看snort的日志(/var/log/snort/alert):
[**] [1:486:5] ICMP Destination Unreachable Communication with Destination Host is Administratively Prohibited [**]
[Classification: Misc activity] [Priority: 3]
01/14-16:37:25.616694 192.168.1.188 -> 192.168.1.114
ICMP TTL:255 TOS:0xC0 ID:44663 IpLen:20 DgmLen:88
Type:3 Code:10 DESTINATION UNREACHABLE: ADMINISTRATIVELY PROHIBITED HOST FILTERED
** ORIGINAL DATAGRAM DUMP:
192.168.1.114:4912 -> 192.168.1.188:7
UDP TTL:128 TOS:0x0 ID:24725 IpLen:20 DgmLen:60
Len: 32 Csum: 26600
(32 more bytes of original packet)
** END OF DUMP
[**] [1:486:5] ICMP Destination Unreachable Communication with Destination Host is Administratively Prohibited [**]
[Classification: Misc activity] [Priority: 3]
01/14-16:37:25.684538 192.168.1.188 -> 192.168.1.114
ICMP TTL:255 TOS:0xC0 ID:44664 IpLen:20 DgmLen:80
Type:3 Code:10 DESTINATION UNREACHABLE: ADMINISTRATIVELY PROHIBITED HOST FILTERED
** ORIGINAL DATAGRAM DUMP:
192.168.1.114:4913 -> 192.168.1.188:20
TCP TTL:128 TOS:0x0 ID:24726 IpLen:20 DgmLen:52 DF
Seq: 0x82A7D80A
(24 more bytes of original packet)
** END OF DUMP
[**] [1:486:5] ICMP Destination Unreachable Communication with Destination Host is Administratively Prohibited [**]
[Classification: Misc activity] [Priority: 3]
01/14-16:37:25.687236 192.168.1.188 -> 192.168.1.114
ICMP TTL:255 TOS:0xC0 ID:44665 IpLen:20 DgmLen:80
Type:3 Code:10 DESTINATION UNREACHABLE: ADMINISTRATIVELY PROHIBITED HOST FILTERED
** ORIGINAL DATAGRAM DUMP:
192.168.1.114:4916 -> 192.168.1.188:23
TCP TTL:128 TOS:0x0 ID:24729 IpLen:20 DgmLen:52 DF
Seq: 0xCC85B904
(24 more bytes of original packet)
** END OF DUMP
我在ps -aux下面可以看到guardian的进程,然后查看guardian的日志如下:
Guardian process id 4546
Guardian process id 4127
Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done
.
Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done.
Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done.
Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done.
Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done.
日志里包含了大量的Odd.. source = 192.168.1.114, dest = 65.55.195.251. No action done.内容。
日志就贴上面这些,从这些可以看出IDS主机检测到了端口扫描并记录了扫描信息,我疑惑的是,难道这个还不构成攻击嘛??如果构成了攻击,那么为什么guardian不修改防火墙拦截这些数据包呢(因为之后我继续用同一台机器对该IDS主机进行端口扫描和ping命令,都可以得到正确回复)?guardian到底是怎么样工作的呢??是不是我配置有问题???
另外,跪求达人指导我如何使snort的警报能自动通过samba发送到windows主机?跪求配置方法和步骤。我在安装snort的时候已使用了选项--enable-smbalerts。但不知道后续步骤应该如何设置,找了些资料也没看懂。希望达人指导。
跪求达人解答。先谢谢给我回贴的,因为能看完我的帖子,就说明你是个热心人。好人一生平安,祝福大家新年快乐
[ 本帖最后由 jinpusa 于 2009-1-15 16:13 编辑 ] |
|