一个入侵测系统+主动防火墙(Snort+Guardian)

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/ ... 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

至此,完成设置

 

 

注意:

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

#!/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/下,可以每天更新一次;

 

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

#!/usr/bin/perl

use Proc::ProcessTable;

 

$found=0;

$t = new Proc::ProcessTable;

$g = "guardian.pl";

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

$f=($p->cmndline =~ m/guardian/);

if($f==1)

{

$found=1;

last;

}

}

if($found == 1)

{

print "guardian is alive!/n";

}

else

{

print "guardian is dead!/n";

print "restart guardian now ... /n";

system "/usr/local/bin/guardian.pl -c /etc/guardian.conf";

}

将上述脚本存为testguardian,放置到/etc/cron.hourly,意思为:每1小时检测guardian是否存活,如果已经死亡就重新启动guardian

 

记住,给testguardian可执行权限:

chmod +x /etc/cron.hourly/testguardian

 

同时,编辑/etc/crontab

path一行加入/usr/local/bin

 

脚本: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';

}

 

 

相关的Q/A

Q:

我按照上述的步骤在RedHat AS3.0 上安装并配置了snort ,但是在启动snort时报:

ERROR: Unable to open rules file: etc/snort/rules/bad-traffic.rules or ./etc/snort/rules/bad-traffic.rules

Fatal Error, Quitting..

而在/etc/snort/rules 下有bad-traffic.rules 文件且是直接从www.snort.org 下载的,为何会是这样.

 

A:

cd /etc/snort

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

tar zxvf snortrules-snapshot-CURRENT.tar.gz

**************************************************************************

 

Q:

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

*mkdir /var/log/snort

*cd /etc

*vi snort.conf

 

我作到到上面这一步时,发现在/etc目录下根本就没有snort.conf文件,用vi编辑的是一个新文件,这是怎么会事?

 

A:

snort的解压目录里找,不要到RULES的解压目录里去找

/etc/snort/rules/snort.conf拷贝到了/etc 不知道有没有效果

 

**************************************************************************

 

Q:

我装了snort,启动时没有报错,但是/var/log/snort/里面的日志就是为空,为什么?我用nmap在客户端做测试,服务器端根本没有记录任何内容。我直接用snort -v 来启动,终端也没有任何访问的信息显示,不知道是怎么回事?还要安装其它软件么?查看了日志,里面snort启动最后也是successful的。

 

A:

问题解决了。

但是guardian_unblock.sh这个文件删除规则的时候,居然用ipchains命令,查看了一下guardian-1.6.tar.gz包,里面的iptables_unblock.sh就是写错的........

设计一个基于Snort和iptables的联动网络安全防护平台,对于中小企业来说是一项至关重要的任务,它能够显著提升网络安全性并有效防御各类网络攻击。首先,需要对Snort和iptables的功能和工作原理有深入的理解。Snort是一款轻量级的入侵测系统(IDS),能够实时监控网络流量并检测潜在的攻击行为。而iptables是一个Linux系统内置的防火墙工具,用于管理进出网络的数据包。 参考资源链接:[基于Snort与iptables的联动网络安全防护平台设计](https://wenku.csdn.net/doc/5afs2e3xhm?spm=1055.2569.3001.10343) 为了实现Snort和iptables的联动,可以借助Guardian这样的高级管理工具,它为网络管理员提供了一个友好的界面来管理Snort的规则和iptables的防火墙策略。此外,BASE平台(Basic Analysis and Security Engine)可以作为一个前端界面,用于展示和分析安全事件,与Snort和iptables联动后,BASE可以提供可视化的方式帮助管理员处理安全警报。 在搭建平台时,应首先对网络架构进行分析,确定哪些是关键资产和潜在的威胁源。接着,安装Snort和iptables,并按照企业的安全策略配置规则。例如,可以设定Snort规则来识别特定的攻击签名或可疑行为模式,并将检测到的事件作为触发条件,自动地向iptables发送指令,动态调整防火墙规则,以阻断或限制攻击者的访问。 为了测试平台的有效性,可以进行模拟攻击测试,比如使用Metasploit等渗透测试工具,验证平台是否能够及时发现并响应这些攻击。确保在实际部署前,所有的联动机制都能够正确无误地运行。 最后,应用实例能够展示平台在实际环境中的效果,如封锁特定的应用程序访问、限制带宽消耗大的应用等。这样的实例能够直观地展示联动防护平台对提升网络环境稳定性的重要作用。 通过上述步骤,网络管理员可以构建一个针对中小企业实际需求的高效联动网络安全防护平台。这些内容在《基于Snort与iptables的联动网络安全防护平台设计》中都有详细的探讨和介绍,对于正在寻求提升网络安全防护水平的中小企业来说,这是一份宝贵的参考资料。 参考资源链接:[基于Snort与iptables的联动网络安全防护平台设计](https://wenku.csdn.net/doc/5afs2e3xhm?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值