终止恶意行为——安装Snort+Guardian

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Snort 是一个开源的轻量级入侵监测系统,可以监测网络上的异常情况,给出报告。

Guardian是基于Snort+IPTables的一个主动防火墙,它分析Snort的日志文件,根据一定的判据自动将某些恶意的IP自动加入IPTables的输入链,将其数据包丢弃。

我自使用Snort+Guardian以来,每天可以看到很多的恶意行为被终止。

安装步骤:

1.安装Snort:

*现在Snort & Guardian,目前下载地址为:

http://www.snort.org/dl/snort-2.3.0RC2.tar.gz

http://www.snort.org/dl/contrib/other_tools/guardian/guardian-1.6.tar.gz

*将上述文件拷贝至/tmp

*tar zxvf *.tgz

*cd snort-2.3.0RC2

*./configure

*make

*make install

*mkdir /etc/snort

*cd /etc/snort

*wget http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz

* tar zxvf snortrules-snapshot-CURRENT.tar.gz

*mkdir /var/log/snort

*cd /etc

*vi snort.conf

修改后一些关键设置如下:

var HOME_NET yournetwork

var RULE_PATH /etc/snort/rules

preprocessor http_inspect: global iis_unicode_map /etc/snort/rules/unicode.map 1252

include /etc/snort/rules/reference.config

include /etc/snort/rules/classification.config

如:yournetwork 220.8.0.0/16

同时,可以选择将类似 include $RULE_PATH/local.rules等,前面的#号去掉,设置自己的规则集。

* /usr/local/bin/snort -D -l /var/log/snort -c /etc/snort.conf

* 将上一条命令写入/etc/rc.d/rc.local

2.安装guardian---需要perl支持

* cd /tmp

* tar zxvf guardian-1.6.tar.gz

* cd guardian-1.6

* 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

如下:

HostGatewayByte 1

# guardian的日志文件

LogFile /var/log/guardian.log

#guardian从何处读取snort的日志

AlertFile /var/log/snort/alert

#将你需要忽略的IP放在此文件中

IgnoreFile /etc/guardian.ignore

# 封锁IP的最长时间,99999999为没有时限

TimeLimit 86400

* /usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf

* 将上一条命令加入 /etc/rc.d/rc.local

至此,完成设置。

注意:

1)snort的规则文件经常更新,可以使用如下脚本自动更新:

#!/bin/sh

cd /etc/snort

wget http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz

tar zxvf snortrules-snapshot-CURRENT.tar.gz

exit 0

*将上述脚本存为snortupdate,并放置到/etc/cron.daily/下,可以每天更新一次。

2)guardian有时会自动退出,可以使用如下脚本解决:

#!/bin/sh

/usr/local/bin/killguardian

/usr/local/bin/guardian.pl -c /etc/guardian.conf

exit 0

将上述脚本存为restartguardian,放置到/usr/local/bin 。

同时,crontab -e,加入如下一句:

* */6 * * * /usr/local/bin/restartguardian

意思为:每6小时重新启动guardian。

脚本:killguardian

#!/usr/bin/perl

#杀死当前guardian.pl进程,需要安装perl module Proc::ProcessTable

#访问http://www.cpan.org可以获得上述module

use Proc::ProcessTable;

$t = new Proc::ProcessTable;

foreach $p (@{$t-table})

{

kill 9, $p-pid if $p-cmndline =~ 'guardian.pl';

}

Garfield

A lazy, fat CAT I am!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航