文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Linux & Advanced Application » 谁在偷窥 打造Linux下入侵检测系统之一       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 谁在偷窥 打造Linux下入侵检测系统之一  ( 查看:509  回复:5 )   
 
流星☆
主版主  点击可查看详细


内阁大臣   诚信兄弟   行业勋章   技术勋章   十二生肖之狗   水瓶座   中秋活动勋章  
帖子 2143
精华 1
无忧币 6367
积分 3696
阅读权限 150
来自 (保密)
注册日期 2006-4-7
最后登录 2008-9-5 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ    ICQ 状态      淘宝旺旺 
发表于:2007-5-9 17:01   标题:谁在偷窥 打造Linux下入侵检测系统之一
上一帖 |
入侵检测
▲      构建小型入侵检测系统
     libpcap           下载地址: http://download.chinaunix.net/download/0006000/5971.shtml
     Snort:            下载地址:http://www.snort.org/dl/current/snort-2.6.1.3.tar.gz
     guardian          下载地址:http://www.snort.org/dl/contrib/ ... guardian-1.6.tar.gz
     pcre              下载地址: http://sourceforge.net/project/showfiles.php?group_id=10194&package_id=9960&release_id=472551


     安装:
①      解压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 文件中,让其开机自动执行.

[ 本帖最后由 流星☆ 于 2007-5-9 17:12 编辑 ]



乐观、进取、奋斗,是生活的态度; 学业、事业、健身,是生命的内容; 爱情、友情、亲情,是生命的目标!
2007-5-9 17:011楼
[ 顶部 ]
 
没长叶子的树
初级工程师  点击可查看详细


诚信兄弟   中秋活动勋章  
帖子 4395
精华 0
无忧币 2448
积分 4711
阅读权限 50
来自 (保密)
注册日期 2006-7-9
最后登录 2008-8-11 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-5-9 17:07 
哈哈,星星没转全,鄙视在我前面转我的文章的!



我们生于80年代,访问我的blog
2007-5-9 17:072楼
[ 顶部 ]
 
没长叶子的树
初级工程师  点击可查看详细


诚信兄弟   中秋活动勋章  
帖子 4395
精华 0
无忧币 2448
积分 4711
阅读权限 50
来自 (保密)
注册日期 2006-7-9
最后登录 2008-8-11 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-5-9 17:08 
配置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 文件夹中,让其每小时自动启动一次.

      说明:
          该IDS系统首先用snort来进行监控,并记录日志,然后通过 guardian 程序对日志文件进行分析,发现有恶意IP访问时自动将其转给iptables 并将拒绝其访问请求.所以需要iptables的支持,使用chkconfig --level 2345 iptables on 命令让iptables 自动启动.用 chkconfig --level 2345 crond on 设置cron 程序自动运行.snort的日志文件为 /var/log/snort/alert

          guardian需要perl语言的支持,需先安装perl语言.
▲      构建大型入侵检测系统
软件包:
mysql        下载地址: http://dev.mysql.com/     
httpd         下载地址: http://mirrors.sirium.net/pub/apache/httpd/httpd-2.2.4.tar.gz
php          下载地址: http://cn2.php.net/
adodb        下载地址: http://nchc.dl.sourceforge.net/sourceforge/adodb/adodb494.zip
base         下载地址: http://sourceforge.net/project/showfiles.php?group_id=103348
注意:在该方案中mysql版本为5.0.37 ,PHP版本为 4.4.2 。


     ㈠  .搭建apache+php+mysql环境

安装mysql
说明:在安装mysql之前,建议用linux图形界面中的软件包管理工具删除掉系统原有的mysql数据库及其相关的所有程序
①      groupadd mysql
②      useradd -g mysql mysql
③      解压mysql安装包包,将解压出来的目录更名为mysql 并将整个目录移动到 /usr/local 下   
④      cd /usr/local/mysql
⑤      scripts/mysql_install_db --user=mysql
⑥      chown -R root  .   
⑦      chown -R mysql data  
⑧      chgrp -R mysql .  
⑨      bin/mysqld_safe --user=mysql &

注意:该命令是以mysql用户来启动数据库,并在后台运行,如果报告错误,可重启计算机后执行.
        安装apache(建议删除掉系统原有的httpd服务及其相关的软件包)

①      解压apache包
②      进入到解压出来的目录,执行以下配置命令
③      ./configure --prefix=/usr/local/apache2/ --enable-module=ssl --enable-module=so --enable-module=rewrite
④      执行上面命令的时候注意中途有没有报错,如果报错需要根据错误重新配置。
⑤      执行 make ; make install 编译安装

       安装PHP
①      切换到php目录,执行以下命令
②      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
③      执行 make ; make install 编译安装
④      在当前目录下执行cp php.ini-dist /usr/local/lib/php.ini 命令来复制php配置文件。
⑤      vi /usr/local/apache2/conf/httpd.conf 文件,查找 LoadModule php4_module   modules/libphp4.so 字段,如果没有则手动加到第53行附近。
⑥      在该文件的第305行下面加入 AddType application/x-httpd-php-source .phps
                               AddType application/x-httpd-php .php .phtml
⑦      保存退出,执行 /usr/local/apache2/bin/apachectl -t 命令检查apache配置文件的正确性,如果配置无误的话会提示 Syntax OK。
⑧      执行 /usr/local/apache2/bin/apachectl start 命令启动apache ,如果没有提示则表示启动成功。



我们生于80年代,访问我的blog
2007-5-9 17:083楼
[ 顶部 ]
 
没长叶子的树
初级工程师  点击可查看详细


诚信兄弟   中秋活动勋章  
帖子 4395
精华 0
无忧币 2448
积分 4711
阅读权限 50
来自 (保密)
注册日期 2006-7-9
最后登录 2008-8-11 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-5-9 17:09 
㈡ .重新安装配置snort

①      配置snort ./configure --with-mysql=/usr/local/mysql
②      make ;make install
③      根据前面的配置方法对snort进行配置。
      ㈢ .建立snort数据库
①      执行/usr/local/mysql/bin/mysql  命令连接mysql数据库
②      执行 create database snort;                       创建snort数据库
③      执行grant INSERT,SELECT on snort.* to snort@localhost;      #其中snort@locahost中的snort为管理snort数据库的用户名,可自行定义,但是要和后面的一致.
④      执行 set password for 'snort'@'localhost'=password('snort');      #对snort账户设置密码,括号内单引号中的内容为密码内容.
⑤      以上三条命令如果执行成功会有提示,注意后面的分号.
⑥      执行exit 退出数据库.
⑦      在解压出来的snort安装目录中,执行 /usr/local/mysql/bin/mysql –D snort –u root –p <  ./schemas/create_mysql  命令,然后输入mysql数据库root账户的密码,如果没有密码则直接回车,稍等完成snort数据库的创建.
      ㈣ .配置snort日志存放方式,即将日志导入到数据库中.

   编辑 /etc/snort.conf 文件,并跳转到第830行,做如下更改.
output database: alert, mysql, user=snort password=snort dbname=snort host=localhost
将这一行前面的#号去掉,后面的字段中 user为 snort数据库的用户名,password为密码,其他的不用改.保存退出即可.

      ㈤ .配置base

①      将base的安装包解压,并将解压出来的目录更名为base,存放到 /usr/local/apache2/htdocs 目录下.
②      vi /usr/local/apache2/conf/httpd.conf 文件,在252行附近加入以下内容
    Alias /base "/usr/local/apache2/htdocs/base"
<Directory "/usr/local/apache2/htdocs/base">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
        DirectoryIndex index.php
</Directory>
③      解压adodb安装包,并将解压出来的目录更名为adodb,放在 /usr/local/apache2/htdocs目录下.
④      在/usr/local/apache2/htdocs/base 目录下执行以下几步操作.
⑤      cp base_conf.php.dist base_conf.php
⑥      vi base_conf.php
⑦      更改以下几个地方
⑧      $BASE_urlpath   ,此处指定base的存放位置,将其改为 ../base
⑨      $BASE_installID   此处设置base系统的标题,可自定义,为可选项
⑩      $DBlib_path = '/usr/local/apache2/htdocs/adodb';    此处定义adodb的地址,必须为绝对地址
$alert_dbname   = 'snort';              定义snort数据库名,改为snort
$alert_host     = 'localhost';            定义mysql数据库位置,如果为本机则为localhost
$alert_port     = '';                    设置mysql数据库监听端口,一般设置为空,即默认值
$alert_user     = 'snort';                设置snort数据库用户名
$alert_password = 'snort';                设置snort数据库密码
       其他几项参数说明
           $Use_Auth_System = 0;            设置登陆base系统时是否需要用户验证,0为不需要验证,1为需要,可在base系统设置好之后创建用户并打开该选项
           $BASE_Language = 'english';       设置base系统语言,默认为english ,简体中文为simplified_chinese

    ㈥ .启动IDS系统

    在任意目录依次执行 /usr/local/mysql/bin/mysqld_safe –user=mysql &
                       /usr/local/apache2/bin/apachectl start
                       Snort –D –d –c /etc/snort.conf
    即可启动IDS系统,在浏览器中输入http://服务器IP地址/base 即可登陆到base系统对snort日志进行管理.



我们生于80年代,访问我的blog
2007-5-9 17:094楼
[ 顶部 ]
 
流星☆
主版主  点击可查看详细


内阁大臣   诚信兄弟   行业勋章   技术勋章   十二生肖之狗   水瓶座   中秋活动勋章  
帖子 2143
精华 1
无忧币 6367
积分 3696
阅读权限 150
来自 (保密)
注册日期 2006-4-7
最后登录 2008-9-5 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ    ICQ 状态      淘宝旺旺 
发表于:2007-5-9 17:13 
晕,不必这样吧,你看完再来发,有灌水的嫌疑,嘻嘻



乐观、进取、奋斗,是生活的态度; 学业、事业、健身,是生命的内容; 爱情、友情、亲情,是生命的目标!
2007-5-9 17:135楼
[ 顶部 ]
 
没长叶子的树
初级工程师  点击可查看详细


诚信兄弟   中秋活动勋章  
帖子 4395
精华 0
无忧币 2448
积分 4711
阅读权限 50
来自 (保密)
注册日期 2006-7-9
最后登录 2008-8-11 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-5-9 17:15 
我晕倒,这个本来就是我写的嘛.申请加精,而且币币归我!



我们生于80年代,访问我的blog
2007-5-9 17:156楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号