注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

snort+Guardian整合构建ipS系统  

2013-07-25 17:04:33|  分类: linux-based box |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、组件介绍与分工

组件idst系统snort:Snort是一个开源的轻量级入侵监测系统,可以监测网络上的异常情况,给出报告。 另外,特征库文件可以从网络取得。
执行系统Guardian:Guardian是基于Snort+IPTables的一个主动防火墙,它分析Snort的日志文件,根据一定的判据自动将某些恶意的IP自动加入IPTables的输入链,将其数据报丢弃,实现主动式防范。当然在某个客户被挂断一段时间后,过了一段时间后又可以激活使用。
IIDS安装步骤: 
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)IPS执行器guardian安装(由perl写成需要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有时会自动退出,可以使用如下脚本解决: 
#!/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 
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'; 
}


  评论这张
 
阅读(112)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017