热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统中Snort轻型的IDS工具

文章标题:Linux系统中Snort轻型的IDS工具。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  一、snort介绍
  Snort是被设计用来填补昂贵的、探测繁重的网络侵入情况的系统留下的空缺。Snort是一个免费的、跨平台的软件包,用作监视小型TCP/IP网的嗅探器、日志记录、侵入探测器。它可以运行在linux/UNIX和Win32系统上,你只需要几分钟就可以安装好并可以开始使用它。
    Snort的一些功能:
    - 实时通讯分析和信息包记录
    - 包装有效载荷检查
    - 协议分析和内容查询匹配
    - 探测缓冲溢出、秘密端口扫描、CGI攻击、SMB探测、操作系统侵入尝试
    - 对系统日志、指定文件、Unix socket或通过Samba的WinPopus 进行实时报警
    Snort有三种主要模式:信息包嗅探器、信息包记录器或成熟的侵入探测系统。遵循开发/自由软件最重要的惯例,Snort支持各种形式的插件、扩充和定制,包括数据库或是XML记录、小帧探测和统计的异常探测等。
  信息包有效载荷探测是Snort最有用的一个特点,这就意味着很多额外种类的敌对行为可以被探测到。
  
  二、所需软件包的安装以及安装
  下在所需要的软件包
  1.libcap
  http://www.mirrors.wiretapped.net/security/packet-capture/libpcap/libpcap-0.8.3.tar.gz
  2.snort
  http://www.snort.org/dl/snort-2.2.0.tar.gz
  3.snort trules
  http://www.snort.org/dl/rules/snortrules-snapshot-2_2.tar.gz
  4.openssl
  http://www.openssl.org/source/openssl-0.9.7d.tar.gz
  5.acid基于Web的入侵事件数据库分析控制台
  http://acidlab.sourceforge.net
  6.gd
  http://www.boutell.com/gd/
  7.adodb为ACID提供便捷的数据库接口;
  http://php.weblogs.com/ADODB
  8.phplot ACID所依赖的制图库;
  http://www.phplot.com/
  9.apache
  http://www.apache.org
  10.mysql
  http://wwww.mysql.com
  11.php(v>4.2)
  http://www.php.net
  
  开始安装:
  
  1.安装MySQL,
  #addgroup mysql
  #adduser mysql
  然后,以mysql身份登录,执行下列命令:
  $gzip -d -c mysql-3.23.49.tar.gz | tar xvf -
  $cd mysql-3.23.49
  $./configure
  $make
  $make install
  
  2.安装openssl
  #tar zxvf openssl*
  #cd openssl
  #./configure
  #make
  #make test
  #make install
  
  3.安装libpcap
  #tar zxvf libpcap*
  #cd libpcap-0.8.3
  #./configure
  如果出现:
  configure: warning: cannot determine packet capture interface
  configure: warning: (see INSTALL for more info)
  说明需要编译系统内核,使其对CONFIG_PACKET支持
  #make
  #make install
  
  4.安装snort
  #tar zxvf snort*
  #cd snort-2.2.0
  #./configure --enable-flexresp --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
  支持mysql,持openssl 还有更多的一些选项,可以参见tarball文档  
  如果出现:
  ERROR! Libpcre header not found, go get it from
  请http://www.pcre.org下载lib库安装即可。
  如果出现:
  ERROR! Libnet header not found
  请http://www.packetfactory.net/projects/libnet/下载安装即可。
  如果已经安装,可以用--with-libnet-* 选项
  #make
  #make install
  
  5.安装apache
  #./configure --prefix=/usr/local/apache --enable-so
  #make
  #make install
  
  6.安装gd
  首先安装为PHP提供既时生成PNG和JPG图象功能的GD库:
  #gzip -d -c gd-2.0.28.tar.gz | tar xvf -
  #cd gd-2.0.28
  #make
  #make install
  
  7.安装php
  #gzip -d -c php-4.3.2.tar.gz | tar xvf -
  #cd php-4.3.2
  #./configure -with-mysql=/usr/local/mysql \
  --with-apxs=/usr/local/apache/bin/apxs \
  --with-gd=/usr/local
  #make
  #make install
  
  8.安装ACID
  该部分的安装工作具体包括三个软件包:adodb452.tar.gz、phplot-5.0rc1.tar.gz和acid-0.9.6b23.tar.gz 。安装过程十分简单,只需分别将这三个软件包解压缩并展开在Apache服务器的文档根目录下即可,具体操作
  如下所示:(本服务器的文档目录为/www/ids)
  #cd /www/ids/
  #gzip -d -c adodb452.tar.gz | tar xvf -
  #gzip -d -c phplot-5.0rc1.tar.gz | tar xvf -
  #gzip -d -c acid-0.9.6b23.tar.gz | tar xvf -
  
  然后开始配置工作,转到acid目录下编辑ACID的配置文件:acid_conf.php给下列变量赋值:
  $Dblib_path="../adodb"
  $DBtype="mysql"
  $alert_dbname="snort"
  $alert_host="localhost"
  $alert_port="3306"
  $alert_user="root"
  $alert_password="123"
  $archive_dbname="snort"
  $archive_host="localhost"
  $archive_port="3306"
  $archive_user="root"
  $archive_password="123"
  $ChartLib_path="../phplot"
  $Chart_file_format="png"
  $portscan_file="/var/log/snort/portscan.log"
  好,到此,所需软件安装完成,下面进入snort的设定与启动
  
  三、snort的设定与启动
  我们可以把Snort运做在chroot的环境中,设定也是很简单,首先,可以选定一个有足够位置放置Snort的Log的地方,如果您会定期检查及清除Log文档,您可以把Snort的chroot环境放在/home/snort中,然后需要的是一个
  snort使用者,执行以下的指令新增Snort这个用者:
  # groupadd snort
  # useradd -g "snort" -d "/home/snort" -s "/nonexists" -c "Snort User" snort
  
  然后,把snortrules.tar.gz这个文件解压在/home/snort中,解压了snortrules包后,在/home/snort/?扔?ules文件出现,这就是Snort使用的Ruleset,这些Ruleset就是供Snort用作侦测任何网络反映的基础。在rules中有一个是"snort.conf",它是Snort的配置文件,需要按实际情况修改snort.conf。
  在 snort.conf 中,需要修改几个地方便可以执行 Snort,以下是可能需要修改的地方:
  
  - var HOME_NET
  网络或是主机的 IP,例如只有这一台服务器,就可以只输入服务器的 IP 地址,如果机器有两个以上的 IP,
  可以使用这个方法:
  var HOME_NET [192.168.1.1,192.168.1.2]
  或是
  var HOME_NET 192.168.1.0/24
  
  -var SMTP [IP.Address]
  SMTP 服服器的位置,如果与 HOME_NET 中的不同,只需把 $HOME_NET 移除,并加其指定 SMTP 机器的IP便可以。
  - var HTTP_SERVERS
  HTTP 服服器,与 SMTP 中的设定相同,如成为 Web Server 的不是 HOME_NET 机器,可以指定给其他的 IP。
  - var DNS_SERVERS
  DNS 服务器的IP地址,同时需要 Uncomment 以下一行:
  preprocessor portscan-ignorehosts: $DNS_SERVERS
  这可以防止因为 DNS 的 Lookup 而记录无用的 PortScan 。
  
  最后是有关记录部份的配置,刚才编译Snort时加入了"MySQL"的支持,为了使用 MySQL 记录,先要在 MySQL中
  
  建立 Snort 使用的 Databases、用者名及密码,执行以下命令:
  # echo "CREATE DATABASE snort;" | mysql -u root -p
  # grant INSERT,SELECT on snort.* to snort@localhost
  然后在 Snort 的源始码?日业 "contrib/create_mysql",再执行以下命令建立 Tables
  # mysql -u root -p   
  完成后,?e忘记在 snort.conf 中也要启动 MySQL 的支持,简单地 Uncomment 以下:
  在454行:
  output database: log, mysql, user=snort password=123 dbname=snort host=localhost
  在493行:
  ruletype redalert
  {
  type alert
  output alert_syslog: LOG_AUTH LOG_ALERT
  output database: log, mysql, user=snort dbname=snort host=localhost
  }
  
  四,执行snort
  一切准备工作都做好了,那么现在开始让snort运行起来了哦:)
  但在这之前请:
  #mkdir /var/log/snort
  #chown snort.snort /var/log/snort
  现在开始 cd 进入 /home/snort ?龋?缓蟠蛉胝飧雒?睿
  /home/snort #snort -b -d -i eth0 -u snort -g snort -c /home/snort/rules/snort.conf -l /var/log/snort &
  -u 功能是使 snort 由 "snort" 这个使用者执行,进入 chroot 的用者环境
  -c 指定使用的指定目录
  & 只是在背景中执行  
  
  五、SNORT规则编写简介
  一条Snort规则可以分为前后两个部分,规则头和后面的选项部分。规则头包含有匹配后的动作命令、协议类型、以及选择流量的四元组(源目的IP及源目的端口)。规则的选项部分是由一个或几个选项的符合,所有主要选项之间是与的关系。选项之间可能有一定的依赖关系,选项主要可以分为四类,第一类是数据包相关各种特征的描述选项,比如:conte
推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
author-avatar
IHH_MCWONG_142
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有