当前位置:首页 > 服务器类 > Linux服务器 > > LINUX下的IDS测试

LINUX下的IDS测试

点击次数:25 次 发布日期:2008-11-29 13:45:14 作者:源代码网
源代码网推荐
  //当时做这个实验是为了参加学院举行的学生学术论坛,文章有点长,请提出你的宝贵意见

  LINUX下的IDS测试实验

  2000级计算机一班:王维

  IDS(Instrusion Detection System),也就是大家平时所说的入侵检测系统,广泛的被运用于各种操作系统的安全检测和安全防御,以及探测网络受攻击的程度和次数。为以后的网络安全管理提供详实的资料和证据。

  由于条件的限制,我们只能够采取SNORT做为本次实验的IDS使用。

  Snort的一些功能:

  1.实时通讯分析和信息包记录

  2.包装有效载荷检查

  3.协议分析和内容查询匹配

  4.探测缓冲溢出、秘密端口扫描、CGI攻击、SMB探测、操作系统侵入尝试

  5.对系统日志、指定文件、Unix socket或通过Samba的WinPopus 进行实时报警

  下面,我将以REDHAT 7.3为例,讲述一个完整的入侵检测系统的调试和测试报告

  一,本机环境

  OS:REDHAT 7.3

  HardWare:CPU:P3 800 .256MB--SDRAM .20G/7200 --HARDDISC

  IDS:SNORT-1.9+Libpcap

  二.调试方法

  首先将在本机环境中安装SNORT。SNORT是一个免费的IDS软件,我们这次将利用他来做系统检测

  本机已经获得了SNORT-1.9这个版本。

  首先,为了更方便的定制后面的探测规则和调试需要,我们将采取手工编译源文件(scorcus)的方法安装。(版本说明:SNORT-1.9.0.tar.gz )

  本地安装的权限必须是:ROOT。如果不是ROOT。则必须采取SU指令,切换成本地系统管理员|:ROOT

  #su

  #passwd:************

  当确定从ROOT登陆以后,我们必须将源文件释放出来,因为在使用snort的时候,我们需要Libpcap这个包文件,所以在本机测试前,我们必须保证系统中有Libpcap。如果不清楚localhost是否已经有Libacap的话,可以用下面的指令查询:

  $ locate Libacap

  如果出现:

  /usr/lib/Libacap.1.9.0

  /usr/lib/Libpcap.a

  等提示信息的话,证明本机已经有了Libpcap.如果没有任何提示的话,则说明还没有Libpcap库文件,需要安装。那么进行下列操作:(我获取的Libpcap0.6.2.tar.gz)

  cd /usr/src/ids

  [root@kykin-L-linux ids]# tar ?zxvf libpcap-0.6.2.tar.gz

  [root@kykin-L-linux ids]# ls

  libpcap-0.6.2 libpcap-0.6.2.tar.gz snort-1.9.0 snort-1.9.0.tar.gz

  这样的操作,将libpcap完全的释放到了本地文件夹中

  继续:

  [root@kykin-L-linux ids]# cd libpcap-0.6.2

  [root@kykin-L-linux libpcap-0.6.2]# ls

  aclocal.m4 configure.in lbl pcap-enet.c README.linux

  bpf CREDITS libpcap.a pcap.h savefile.c

  bpf_dump.c CVS LICENSE pcap-int.h savefile.o

  bpf_dump.o etherent.c llc.h pcap-linux.c scanner.c

  bpf_filter.c etherent.o Makefile pcap-linux.o scanner.l

  bpf_filter.o ethertype.h Makefile.in pcap-namedb.h scanner.o

  bpf_image.c FILES mkdep pcap-nit.c sll.h

  bpf_image.o gencode.c nametoaddr.c pcap-nit.h SUNOS4

  CHANGES gencode.h nametoaddr.o pcap-null.c TODO

  config.cache gencode.o net pcap.o tokdefs.h

  config.guess grammar.c nlpid.h pcap-pf.c VERSION

  config.h grammar.o optimize.c pcap-pf.h version.c

  config.h.in grammar.y optimize.o pcap-snit.c version.o

  config.log inet.c pcap.3 pcap-snoop.c

  config.status inet.o pcap-bpf.c ppp.h

  config.sub INSTALL pcap.c README

  configure install-sh pcap-dlpi.c README.aix

  这些源文件也就是我们即将进行编译的Libpcap文件,继续:

  [root@kykin-L-linuxlibpcap-0.6.2]# ./configure --prefix=/usr/local/libpcap-0.6.2

  (这句话的意思是:编译Libpcap文件到/usr/local/libpcap-0.6.2 目录)

  [root@kykin-L-linuxlibpcap-0.6.2]# make

  [root@kykin-L-linuxlibpcap-0.6.2]# makeinstall

  执行完上面的,我们已经完整的将Libpcap安装到了本系统中

  下面,我们将完成SNORT的安装和调试

  (为了测试的需要,我们不需要把SNORT的日志文件写入本地MYSQL数据库,那么对MYSQL数据库的操作步骤暂时省略)

  [root@kykin-L-linux ids]#tar ?zxvf snort-1.9.0.tar.gz

  [root@kykin-L-linux ids]# cd snort-1.9.0

  [root@kykin-L-linux snort-1.9.0]# ls

  acconfig.h config.h.in contrib Makefile snort.8

  aclocal.m4 config.log COPYING Makefile.am src

  ChangeLog config.status doc Makefile.in stamp-h

  config.cache config.sub etc missing stamp-h.in

  config.guess configure install-sh mkinstalldirs templates

  config.h configure.in LICENSE rules

  [root@kykin-L-linux snort-1.9.0]# ./configure --prefix=/usr/local/snort19

  [root@kykin-L-linux snort-1.9.0]#make

  [root@kykin-L-linux snort-1.9.0]#makeinstall

  (这几个操作的含义和Libpcap相同)

  然后,我们将对SNORT作一系列的调试,使其正常运行,也方便管理

  [root@kykin-L-linux snort-1.9.0]# cp etc /usr/local/snort19 ?r

  (复制当前文件夹下的ETC目录到SNORT19下面)

  [root@kykin-L-linux snort-1.9.0]# cp rules /usr/local/snort19 ?r

  (复制全部规则文件)

  [root@kykin-L-linux snort-1.9.0]# cp etc/classification.config /root/

  [root@kykin-L-linux snort-1.9.0]# cp etc/snort.conf /root/.snortrc

  (将调用的文件属性修改)

  做完这一些,我们的工作已经完成了一大部分。下面我们将完成比较重要的一部分。入侵检测的规则定制

  [root@kykin-L-linux snort-1.9.0]#vi /root/.snortrc

  # This file contains a sample snort configuration.

  # You can take the following steps to create your

  # own custom configuration:

  #

  # 1) Set the network variables for your network

  # 2) Configure preprocessors

  # 3) Configure output plugins

  # 4) Customize your rule set

  #

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

  # Step #1: Set the network variables:

  #

  # You must change the following variables to reflect

  # your local network. The variable is currently

  # setup for an RFC 1918 address space.

  #

  # You can specify it explicitly as:

  #

  # var HOME_NET 10.1.1.0/24

  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  (内容太多,暂时省略)

  首先。我们在整个config文件的102行找到:

  var RULE_PATH ../rules

  这个是本地存放规则的路径,我们必须根据自己的情况,完整写出来

  我的文件是这样的:

  var RULE_PATH /usr/local/snort19/rules

  然后,在config文件的590行。我们将会看见:

  include $RULE_PATH/bad-traffic.rules

  从这里开始,一直到后面,就是SNORT的整个规则集合。我们必须根据自己的情况作出详细的调试

  include $RULE_PATH/bad-traffic.rules

  include $RULE_PATH/exploit.rules

  include $RULE_PATH/scan.rules

  include $RULE_PATH/finger.rules

  include $RULE_PATH/ftp.rules

  include $RULE_PATH/telnet.rules

  include $RULE_PATH/rpc.rules

  include $RULE_PATH/rservices.rules

  include $RULE_PATH/dos.rules

  (文件的内容太多,暂时省略)

  你可以针对自己的系统的具体环境做出详细的规则说明,不需要的规则,就采取#注释的方法来去掉

  为了可执行指令:SNORT的方便调用,我们将做出连接说明

  [root@kykin-L-linuxsnort-1.9.0]#ln ?s /usr/local/snort19/bin/snort /usr/sbin/snort

  然后。我们将建立一个新的目录来存放SNORT日志文件

  [root@kykin-L-linux snort-1.9.0]#cd /var/log

  [root@kykin-L-linux snort-1.9.0]#mkdir snort

  做完上面的一切,基本上完成了整个IDS的初步设定,下面我们将测试是否成功

  [root@kykin-L-linux snort-1.9.0]#snort

  Initializing Output Plugins!

  Log directory = /var/log/snort

  Initializing Network Interface eth0

  using config file /root/.snortrc

  Initializing Preprocessors!

  Initializing Plug-ins!

  Parsing Rules file /root/.snortrc

  +++++++++++++++++++++++++++++++++++++++++++++++++++

  Initializing rule chains...

  No arguments to frag2 directive, setting defaults to:

  Fragment timeout: 60 seconds

  Fragment memory cap: 4194304 bytes<

  

源代码网供稿.
网友评论 (0)
会员中心
服务器类
本站推荐
服务器类之精华