snort create_mysql_构建简易Snort网络入侵检测系统(NIDS)

本文介绍了如何在RHEL5环境下搭建基于Snort的NIDS系统,使用MySQL存储日志,包括安装相关软件、配置Snort规则、启动Snort服务以及设置web前端展示告警信息。
摘要由CSDN通过智能技术生成

构建简易Snort网络入侵检测系统(NIDS)

TsengYia#126.com 2008.11.16

建立基于入侵特征规则库的SNORT NIDS系统。

###########################################################################################

系统环境:

Red Hat Enterprise Linux (2.6.18-8.el5)

软件环境:

◇ RHEL5系统自带的rpm包(多数默认已有,带“[*]”标记的可能需要额外安装):

httpd-2.2.3-6.el5

mysql-5.0.22-2.1

mysql-server-5.0.22-2.1

mysql-connector-odbc-3.51.12-2.2

mysql-devel-5.0.22-2.1    [*]

php-mysql-5.1.6-5.el5    [*]

php-5.1.6-5.el5

php-common-5.1.6-5.el5

php-pdo-5.1.6-5.el5    [*]

php-cli-5.1.6-5.el5

php-gd-5.1.6-5.el5    [*]

libpcap-0.9.4-8.1

libpcap-devel-0.9.4-8.1    [*]

pcre-6.6-1.1

pcre-devel-6.6-1.1    [*]

###########################################################################################

一、安装相关rpm软件及配置AMP环境

1、安装(过程略)

2、配置、启动httpd、mysqld

均按默认配置(过程略)。

shell> service httpd start

shell> service mysqld start

shell> chkconfig httpd on

shell> chkconfig mysqld on

二、配置并启动snort进程

1、编译安装snort

shell> useradd -d /etc/snort -s /sbin/nologin snort

shell> mkdir -p /var/log/snort/

shell> chown snort /var/log/snort/

shell> cd /dl_pkgs/

shell> tar zxvf snort-2.8.3.1.tar.gz

shell> cd snort-2.8.3.1

shell> ./configure --with-mysql

shell> make && make install

2、安装规则文件(已包含etc/配置、doc/手册)

shell> tar zxvf /dl_pkgs/snortrules-snapshot-2.8.tar.gz -C /etc/snort/

#//关于Snort rules的具体应用,请参考其他资料。

3、修改snort.conf配置文件

shell> cd /etc/snort/etc/

shell> cp snort.conf snort.conf.bak

shell> vi snort.conf

var HOME_NET [192.168.0.0/24,192.168.1.0/24,10.1.1.0/24]

var EXTERNAL !$HOME_NET

var RULE_PATH ../rules

output database: log, mysql, user=snort password=secret dbname=snort_log host=localhost

#//如果用内部主机做入侵测试,HOME_NET、EXTERNAL变量可以先不要修改

4、建立snort_log数据库

shell> mysql -u root -p

mysql> create database snort_log;

mysql> grant all on snort_log.* to snort@localhost identified by 'secret';

mysql> quit

shell> mysql -u snort -p snort_log < /dl_pkgs/snort-2.8.3.1/schemas/create_mysql

5、启动snort

shell> snort -dD -u snort -g snort -c /etc/snort/etc/snort.conf

其中,-D选项表示以daemon模式启动后置于后台,

若ps aux | grep snort发现未能正常启动,请去掉-D选项运行snort,根据提示信息进行排错。

[带规则启动snort时,若使用的是2.4版规则包(未注册用户版),可能会出现报错,根据提示将web-misc.rules文件中的对应行(97/98/452)注释掉即可]

附:snort工具的几个常用选项

-v  显示调试信息,将数据包输出到终端(作为IDS系统工作时不要使用该选项)

-c  指定rules规则集文件的位置

-d  输出应用层数据

-e  输出数据链路层数据

-l  将数据记录到日志文件(可以指定保存日志的目录,缺省为/var/log/snort/)

-b  使用tcpdump格式记录数据

-A  指定告警模式(fast,full,none,unsock),不同的模式决定了告警信息的详细程度

-T  运行自检(在使用-D运行daemon模式前,可以用于检查命令参数、配置文件、规则集等是否正常)

-D  以daemon模式在后台运行

-u  指定运行用户(初始化完成后切换为该用户)

-g  指定运行组

----> 为了更方便控制snort的运行,可以建立一个snort服务脚本

shell> vi /etc/init.d/snort

#!/bin/sh

# chkconfig: - 99 99

# description: Snort NIDS DAEMON

PROG=/usr/local/bin/snort

CONF=/etc/snort/etc/snort.conf

ARGS="-dD -u snort -g snort"

case "$1" in

start)

$PROG $ARGS -c $CONF

;;

stop)

killall -9 snort

;;

restart)

killall -9 snort

$PROG $ARGS -c $CONF

;;

*)

echo $"Usage: $0 "

exit 1

;;

esac

shell> chmod +x /etc/init.d/snort

shell> chkconfig --add snort

shell> chkconfig --level 2345 snort on

shell> service snort start

三、配置base+adodb的web前端

1、安装php-pear及相关插件

包括php-pear及下载的Image、Mail、Numbers等插件:

Image_Canvas-0.3.1.tar、Image_Color-1.0.2.tar、Image_Graph-0.7.2.tar

Mail-1.1.14.tar、Mail_Mime-1.5.2.tar、Mail_mimeDecode-1.5.0.tar

Numbers_Roman-1.0.2.tar、Numbers_Words-0.15.0.tar

shell> rpm -ivh /dl_pkgs/php-pear-1.7.2-2.fc10.noarch.rpm

shell> cd /dl_pkgs/pear-plugin/

shell> pear install *.tar

2、解压adodb、base源码包

shell> cd /var/www/html/

shell> tar zxvf /dl_pkgs/adodb506a

shell> tar zxvf /dl_pkgs/base-1.4.1-tar.gz

shell> mv base-php4 base

3、配置base

shell> cd /var/www/html/base/

shell> cp base_conf.php.dist base_conf.php

shell> vi base_conf.php        #//根据实际情况修改相关变量

$BASE_Language = 'simplified_chinese';        #//为了保持兼容性,建议使用默认的英文(English)

$BASE_urlpath = '/base';

$DBlib_path = '/var/www/html/adodb5';

$DBtype = 'mysql';

$alert_dbname = 'snort_log';

$alert_host = '3306';

$alert_user = 'snort';

$alert_password = 'secret';

$archive_exists = 0;

4、初始化安装

在浏览器中访问 http://Server_IP/base ,根据提示进行“安装页面(setup)”-->“Create BASE AG”。

5、添加管理员用户(可选)

1) 可以在 http://Server_IP/base 界面中,单击下方的“管理(Administration)”链接,新建立一个“admin”用户。

2) 修改/var/www/html/base/base_conf.php文件,打开Auth_System开关,即“$Use_Auth_System = 1;”。

3) 在浏览器中重新访问 http://Server_IP/base,则需要使用admin用户登录。

四、测试

1) 修改snort.conf文件,添加一条规则

shell> vi /etc/snort/etc/snort.conf

alert tcp any any -> any any (flags:S; msg:"SYN Packets Alert!"; sid:20081122;)

//该规则的告警条件过于严格,仅用于测试,完毕后请即删除)

2) 重新启动snort,并跟踪告警日志

shell> service snort restart

shell> tail -f /var/log/snort/alert

3) 在其他主机中,使用nmap等工具对snort服务器进行sync扫描,如“nmap -sS Server_IP”,观察上一步中alert日志的变化。

4) 刷新 http://Server_IP/base 页面,查看报警信息,点击右侧的“Graph Alert Data”,可以设置查看告警图片(使用中文界面时,图片可能无法显示)。

###########################################################################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值