分享
 
 
 

Freebsd构建小型的入侵检测系统

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

1.Snort简介

Snort 是一个强大的轻量级的网络入侵检测系统。它具有实时数据流量分析和日志IP 网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。更重要的它是免费的,在中小企业中很好的适应网络环境,不需要太多的资源和资金就能建立起一个优秀的IDS系统。

2.系统平台

安装平台选择FreeBSD 4.9 ,本身足够安全,坚固;特性喜欢PORTS安装起来少了不少麻烦。

Hawk# uname -a

FreeBSD hawk.the9 4.9-RELEASE FreeBSD 4.9-RELEASE

3.需要软件

Mysql-server-3.23.58 http://mysql.secsup.org

Snort2.0.6 http://www.snort.org

Apache-2.0.47 http://www.apache.org

mod_php4-4.3.3,1 http://www.php.net

adodb-3.60_1 http://phplens.com

acid-0.9.6b23 http://acidlab.sourceforge.net

Jpgraph-1.12.2 http://jpgraph.techuk.com

4.安装SNORT

1)安装mysql

hawk# cd /usr/ports/databases/mysql323-server

hawk# make install

2)安装apache

hawk# cd /usr/ports/www/apache2/

hawk# make install

3)安装PHP

hawk # cd /usr/ports/www/mod_php4

hawk # make install

4)配置APACHE

编辑httpd.conf (/usr/local/etc/apache2)

DocumentRoot "/usr/local/www/snort"

LoadModule php4_module modules/libphp4.so

AddType application/x-httpd-php .php

5)安装SNORT

hawk# mkdir /etc/snorthawk# mkdir /var/log/snorthawk# tar -zxvf snort-2.0.6.tar.gzhawk# mv snort-2.0.6 /etc/snorthawk# ./configure --with-mysqlhawk# makehawk# make installhawk# cd /etc/snort/etchawk# cp snort.conf /etc/snort/hawk# cp *.config /etc/snort

6) 安装SNORT的规则库

可以在SNORT站点上下载标准规则库,基本够用了。2.0.0.x的SNORT使用STABLE rules,而2.0.1.x的SNORT使用CURRENT rules。

hawk# mkdir /etc/snort/etchawk# wget http://www.snort.org/dl/rules/snortrules-stable.tar.gzhawk# tar xvfz snortrules-stable.tar.gz

7)配置SNORT

修改snort.conf (/etc/snort/snort.conf)

var HOME_NET 172.18.0.0/22 (修改为你的内部网网络地址)

var EXTERNAL_NET any #外网,关键字any这里表示HOME_NET之外的所有地址

var DNS_SERVERS 202.197.32.12 #DNS 服务器

var RULE_PATH ../rules 修改为 var RULE_PATH /etc/snort/etc/rules

改变记录日志数据库:

output database: log, mysql, user=root password=your_password dbname=snort host=localhost

设置snort启动

hawk# vi /usr/local/etc/rc.d/snort.sh#!/bin/shcase "$1" instart)/usr/local/bin/snort -Dqc /etc/snort/snort.conf > /dev/null && echo -n " snort";;stop)kill `cat /var/run/snort_*.pid`;;restart)killall -1 `cat /var/run/snort_*.pid`;;*)echo "Usage: snort.sh [start|stop|restart]";;esac

不过建议是手动启动,我在使用中发现自动启动有一点问题,等系统完全启动完了再启动SNORT就一切正常。

9)在mysql中建立数据库

先建立SNORT使用的数据库

mysql>create database snort;

mysql>grant INSERT,SELECT on root.* to snort@localhost;

mysql>quit;

进入snort安装目录:

mysql -p <./contrib/create_mysql snort

>Enter password:

安装DB表:(在contrib目录)

zcat snortdb-extra.gz | mysql -p snort

>Enter password:

安装完成检查一下表的显示

mysql>show databases;+------------+| Database+------------+| mysql| snort| test+------------+3 rows in set (0.00 sec)mysql>use snort;

mysql>show tables; 将会有这些:

+------------------+| Tables_in_snort |+------------------+| data| detail| encoding| event| flags| icmphdr| iphdr| opt| protocols| reference| reference_system| schema| sensor| services| sig_class| sig_reference| signature| tcphdr| udphdr+------------------+19 rows in set (0.00 sec)mysql>exit

5.安装配置Web接口

1)先安装GD库

hawk# cd /usr/ports/graphics/gd

hawk# make install

2) 安装 jpgraph-1.12.2

hawk# cd /usr/ports/graphics/jpgraph

hawk# make install

3)安装adodb-3.60_1

hawk# cd /usr/ports/databases/adodb

hawk# make install

4 )安装acid-0.9.6b23

hawk# cd /usr/ports/security/acid

hawk# make install

5)配置 acid

hawk# mv /usr/local/www/data.default/php/adodb /usr/local/www/snort/

hawk# mv /usr/local/www/data.default/php/acid /usr/local/www/snort/

编辑acid_conf.php,修改相关配置如下:

$DBlib_path = "/usr/local/www/snort/adodb";/* The type of underlying alert database** MySQL : "mysql"* PostgresSQL : "postgres"* MS SQL Server : "mssql"*/$DBtype = "mysql";/* Alert DB connection parameters* - $alert_dbname : MySQL database name of Snort alert DB* - $alert_host : host on which the DB is stored* - $alert_port : port on which to access the DB* - $alert_user : login to the database with this user* - $alert_password : password of the DB user** This information can be gleaned from the Snort database* output plugin configuration.*/$alert_dbname = "snort";$alert_host = "localhost";$alert_port = "";$alert_user = "root";$alert_password = "Your_Password";/* Archive DB connection parameters */$archive_dbname = "snort";$archive_host = "localhost";$archive_port = "";$archive_user = "root";$archive_password = "Your_Password ";

6)可以进入进入web界面:

http://172.18.5.198/acid/acid_main.php

点"Setup Page"链接 ->Create Acid AG

然后访问http:// 172.18.5.198/acid将会看到ACID界面。

6.最后测试

重新启动系统进入系统,启动SNORT。然后用NMAP,XSCAN,SSS来扫描一下,看看是不是有结果了。我用的是Retina。下面是成功后的界面。

7.SNORT规则编写简介

一条Snort规则可以分为前后两个部分,规则头和后面的选项部分。规则头包含有匹配后的动作命令、协议类型、以及选择流量的四元组(源目的IP及源目的端口)。规则的选项部分是由一个或几个选项的符合,所有主要选项之间是与的关系。选项之间可能有一定的依赖关系,选项主要可以分为四类,第一类是数据包相关各种特征的描述选项,比如:content、fla

gs、dsize、ttl等;第二类是规则本身相关一些说明选项,比如:reference、sid、classtype、priority等;第三类是规则匹配后的动作选项,比如:msg、resp、react、session、logto、tag等;第四类是选项是对某些选项的修饰,比如从属于content的nocase、offset、depth、regex等。由于snort的规则语言语法非常简单,所以可以对新发现的攻击作出快速的反应,迅速开发新的snort规则。编写新的规则,最重要的是知道新攻击的特征码。要得到一个新的攻击的特征码,一般的方法就是进行实际的测试。对一个测试网络进行攻击,使用snort记录在攻击主机和测试网络之间的数据流。然后,对记录的数据进行分析得到其唯一的特征码,最后把得到的特征码加入到规则中。下面是IMAP缓冲区溢出攻击被记录下的数据包:

--------------------------------------------------------------------------

052499-22:27:58.403313 192.168.1.4:1034 -> 192.168.1.3:143TCP TTL:64 TOS:0x0 DF***PA* Seq: 0x5295B44E Ack: 0x1B4F8970 Win: 0x7D7890 90 90 90 90 90 90 90 90 90 90 90 90 90 EB 3B ...............;5E 89 76 08 31 ED 31 C9 31 C0 88 6E 07 89 6E 0C ^.v.1.1.1..n..n.B0 0B 89 F3 6E 08 89 E9 6E 0C 89 EA CD 80 .....n....n.....31 DB 89 D8 40 CD 80 90 90 90 90 90 90 90 90 90 1...@...........90 90 90 90 90 90 90 90 90 90 90 E8 C0 FF FF FF ................2F 62 69 6E 2F 73 68 90 90 90 90 90 90 90 90 90 /bin/sh.........

---------------------------------------------------------------------------

这个攻击的特征码就是/bin/sh字符串及其前面的机器代码。这实际上是一个shellcode。四用这些信息可以很快开发出一条新的规则:

alert tcp any any -> 192.168.1.0/24 143 (content:"|E8C0 FFF FF|/bin/sh";

msg:"New IMAP Buffer Overflow detected!"

其中的特征码含有文本和16进制两种形式,它们以|分割,snort运行时都被转换为二进制形式。

至此,FREEBSD 下的Snort 安装建立成功。结果可以直接从WEB界面上看到,一套完整的IDS系统就可以正常运行了。

由于个人水平所限,本文难免会有遗漏和错误之处,希望大家不吝指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有