一、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/內有rules文件出现,这就是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 < create_mysql 完成后,別忘记在 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
[1] [2] 下一页
(出处:http://www.sheup.com)
上一页 [1] [2]