会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 操作系统类 / Linux / 使用Snort探测轻型侵入
使用Snort探测轻型侵入
2004-07-04    风过留枫       点击:
使用Snort探测轻型侵入
  本文详细介绍了入侵检测软件snort的使用,用来可以实现跨平台的网络监控、日志记录、入侵检测等功能。(2002-10-11 09:09:15) By 风过留枫

  Snort是被设计用来填补昂贵的、探测繁重的网络侵入情况的系统留下的空缺。Snort是一个免费的、跨平台的软件包,用作监视小型TCP/IP网的嗅探器、日志记录、侵入探测器。它可以运行在linux/UNIX和Win32系统上,你只需要几分钟就可以安装好并可以开始使用它。

  Snort的一些功能:

  - 实时通讯分析和信息包记录
  - 包装有效载荷检查
  - 协议分析和内容查询匹配
  - 探测缓冲溢出、秘密端口扫描、CGI攻击、SMB探测、操作系统侵入尝试
  - 对系统日志、指定文件、Unix socket或通过Samba的WinPopus 进行实时报警

  Snort有三种主要模式:信息包嗅探器、信息包记录器或成熟的侵入探测系统。遵循开发/自由软件最重要的惯例,Snort支持各种形式的插件、扩充和定制,包括数据库或是XML记录、小帧探测和统计的异常探测等。信息包有效载荷探测是Snort最有用的一个特点,这就意味着很多额外种类的敌对行为可以被探测到。

  Snort.org 提供一些RPM和tarball。通常我推荐根据需求来建立,但是我在最新稳定版本的tarball上遇到了问题。当这个版本的最终使用期限渐渐逼近时,我没有时间来描述究竟是我太笨了还是Snort的问题。RPM安装就没有任何问题。

  为了使Snort工作,libpcap是必需安装到你的系统中。用locate来检查:

  $ locate libpcap

  这个将输出以下一些内容:

  /usr/lib/libpcap.so.0
  /usr/lib/libpcap.a
  /usr/lib/libpcap.so
  /usr/lib/libpcap.so.0.6.2

  如果没有这些,到tcpdump.org或者你的linux安装盘中去找。

  安装一个安全软件而不验证签名是不明智的。检验你下载的checksum:

  # md5 snort-1.8.6.tar.gz

  或者

  # md5 snort-1.8.6-1snort.i386.rpm

  解压缩tarball:

  $ tar -xvzf snort-1.8.6.tar.gz

  以root身份安装

  # ./configure
  # make
  # make install

  这是简单形式的安装过程。一些选项被选中以运行Snort的预安装自测;将二进制和目标文件从安装目录中清除,清除操作还有一个卸栽选项。

  其他的安装选项和需要使用的配置:

  --with-snmp 允许SNMP报警代码
  --with-mysql=DIR 支持mysql
  --with-postgresql=DIR 支持Postgresql数据库
  --with-openssl=DIR 支持openssl

  还有更多的一些选项,可以参见你的tarball文档

  安装RPM自身非常简单:

  # rpm -ivh snort-1.8.6-1snort.i386.rpm

  你可以在下载Snort的网页上看到,预编译的二进制文件已经被封装,用来维持与其他程序的兼容性,例如mySQL和PostgreSQL

  # snort -? 打印出最常用的选项

  Test-drive是用来保证正确的安装。只监视本地机器,-I=interface:

  # snort -vdei eth0

  用CTRL+C来停止测试。不要忘了将你的网卡设为混杂模式。Snort将以后台程序形式运行,并会以开启停止形式出现。

  Packet Sniffer模式

  这种模式下,只将TCP/IP报头打印出来

  # snort -v

  查看应用层数据

  # snort -vd

  数据联接层报头

  # snort -vde

  记录

  除非你对16进制很熟悉,你还是将其写入磁盘

  # snort -vdel /var/log/snort

  这里的“-l”表示“log”,记录。告诉Snort记录当地网络的任何事情,-h表示本地:

  # snort -vdel /var/log/snort -h 192.168.1.0/24

  这个为每个主机生成一个单独的目录。如果要将这些都放到一个二进制文件中,使用-b来切换

  # snort -l /var/log/snort -b

  指定任何其他选项是没有意义的,如果你需要Snort的安装选项或者使用tcpdump,请解析出这个文件,-r表示读并处理文件。

  # snort -vder /var/log/snort/snort-0629@1600.log

  对Berkeley Packet Filter解析出特定的项目

  # snort -vder /var/log/snort/snort-0629@1600.log udp
  # snort -vr /var/log/snort/snort-0629@1600.log tcp
  # snort -ver /var/log/snort/snort-0629@1600.log icmp

  对Berkeley Packet Filter用man查看snort和tcpdump的其他选项。

  网络侵入探测模式

  现在我们进入真正的Snort工具。看一下/etc/snort/snort.conf,全局配置文件。Snort的规则设置也以文本文件形式存放在/etc/snort。最后仔细看一下这一行:

  var HOME_NET $eth0_ADDRESS

  这个是按照本地网卡的网络设置来初始化Snort。

  为了保证速度,记录每个单个的包并显示在屏幕上是不可能的。包会被丢弃,而记录文件会变得非常庞大。使用-v切换,这样就不会显示在屏幕上,我们可以不用-e,数据连接报头:

  # snort -dl /var/log/snort -h 192.168.1.0/24 -c /etc/snort/snort.conf

  -h表示本地网络,-c表示使用规则设定。这是最基本的,用ASCII记录安装规则定义的包。使用-b切换记录为二进制文件。注意定义子网范围用CIDR符号。

  这些神秘的规则设定是从哪里来得呢?两个来源:从Snort.org,包括在RPM或是下载的二进制文件中;从Martin Roesch,Snort的制作者,他设计的Snort在所有方面都很迅速:安装、运行和对攻击的反应。如果你有能力分析一个攻击和确认一个独特的信号,你可以自己写一个规则来发现并记录它。参见你下载的Snort用户手册(SnortUsersManual.pdf),这是一个非常好的写定制规则指南。(这些文件都可以在线获得)Snort.org每天更新规则设定,你可以下载让你满意的。你可以在Snort.org上的Snort/contrib目录找到snortpp,可以用它来合并新的规则

  在哪里配置Snort?

  如果你有时间和资源,将Snort放到防火墙的两侧是最好的。比较一下哪些撞上你的防火墙,哪些顺利通过你的防火墙,你会非常惊讶在Internet上有如此之多的恶意攻击。Snort占用空间很少,使你可以在防火墙后运行一个简单的Snort来增加一个保护层,更加容易管理。

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
使用密匙对让putty(ssh)自动登录 - 08-15 06:09 pm - 点击: 386

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.