这是我的snort安装的笔记,大家可参考下,包是在我的网盘里面
http://dl.dbank.com/c0gmbc6w7l
如果在linux环境的话,可以用下面的方法,但是包没有网盘的全面。
wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
wget http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz
wget http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz
wget http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-510-for-php5/adodb510.tgz/download
Snort http://www.snort.org
daq http://www.snort.org
base http://sourceforge.net/projects/secureideas/
yum install gcc gcc-c++ kernel-devel patch make vim ssh libxml2 libxml2-devel
yum install pcre pcre-devel php php-common php-gd gd php-cli php-mysql flex bison php-pear-Numbers-Roman php-pear-Numbers-Words php-pear-Image-Color php-pear-Image-Canvas php-pear-Image-Graph libpcap libpcap-devel glib2-devel
yum install gcc mysql-server mysql-devel php-mysql php httpd php-gd php-pear pcre pcre-devel zlib zlib-devel
#1. 安装libpcap
tar -xzf libpcap-1.0.0.tar.gz
cd libpcap-1.0.0
./configure --prefix=/usr
make
make install
#2. 安装libdnet:
tar zxvf libdnet-1.12.tar.gz
cd libdnet-1.12
./configure
make
make install
#安装 daq:
tar -xf daq-0.5.tar
cd daq-0.5.tar
./configure
make
make install
# snort的安装
tar zxvf snort-2.9.2.2.tar.gz
cd snort-2.9.2.2
./configure --prefix=/usr/
make
make install
#导入规则
mkdir snort
cd snort
cp ../../snortrules-snapshot-2920.tar.gz .
tar zxvf snortrules-snapshot-2920.tar.gz
vi etc/snort.conf
修改snort.conf配置:[[BR]]
找到
{{{
# path to dynamic preprocessor libraries
dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
# path to base preprocessor engine
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
# path to dynamic rules libraries
dynamicdetection directory /usr/local/lib/snort_dynamicrules
}}}
修改为:
{{{
# path to dynamic preprocessor libraries
dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/ --修改为snort安装路径(/usr/lib/snort下)
# path to base preprocessor engine
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so --修改为snort安装路径(/usr/lib/snort下)
# path to dynamic rules libraries
#dynamicdetection directory /usr/lib/snort_dynamicrules --没有此配置,注释掉
cd /var/www/html
tar zxvf base-1.4.4.tar.gz
tar zxvf adodb510.tgz
service mysqld restart
mysqladmin -u root password 123456
mysql -u root -p123456
create database snort;
use snort;
source snort-2.9.2.2/schemas/create_mysql;
quit;
vi /etc/php.ini
error_reporting = E_ALL
分号去掉并改为:error_reporting = E_ALL & ~E_NOTICE
http://10.76.132.76/base-1.4.4/setup
启动 snort -D -l /var/log/snort
Snort应用 ==
1、Sonrt使用前先建立一个存放告警日志的文件夹方便查看
{{{
mkdir /var/log/snort
}}}
2、模拟攻击:
{{{
scp -P2222 192.168.102.141:/root/*.cap .
}}}
3、测试使用:
{{{
snort -i eth2 -c /root/snort/etc/snort.conf -l /var/log/snort/
}}}
4、查看log日志可得类似如下信息:
{{{
[**] [1:13586:2] POLICY SSH server detected on non-standard port [**]
[Classification: Generic Protocol Command Decode] [Priority: 3]
03/22-19:31:03.400916 192.168.102.141:2222 -> 192.168.116.116:50161
TCP TTL:128 TOS:0x0 ID:685 IpLen:20 DgmLen:60
***AP*** Seq: 0x54792BB6 Ack: 0x5D3456B8 Win: 0xFAF0 TcpLen: 20
[Xref => http://www.ietf.org/rfc/rfc4251.txt]
}}}
Snort参数介绍(详细可参考网上资源)==
Snort采取命令行方式运行。格式为:snort -[options] :
-A 设置告警方式为full,fast或者none。在full方式下,Snort将传统的告警信息格式写入告警文件,告警内容比较详细。在fast方式下,Snort只将告警时间,告警内容,告警IP地址和端口号写入文件。在none方式下,系统将关闭告警功能。
-a 显示ARP包
-b 以tcpdump的格式将数据包记入日志。所有的数据包将以二进制格式记入名为snort.log的文件中。这个选项提高了snort的操作速度,因为直接已二进制存储,省略了转换为文本文件的时间,通过-b选项的设置,snort可以在100Mbps的网络上正常工作。
-c 使用配置文件。这是一个规则文件。文件内容主要控制系统哪些包需要记入日志,哪些包需要告警,哪些包可以忽略等。
-C 仅抓取包中的ASCII字符
-d 抓取应用层的数据包
-D 在守护模式下运行Snort。告警信息发送至/var/log/snort.alert,除非特别配置。
-e 显示和记录网络层数据包头信息
-F 从文件中读取BPF过滤信息。
-h 设置(C类IP地址)为内部网络.当使用这个开关时,所有从外部的流量将会有一个方向箭头指向右边,所有从内部的流量将会有一个左箭头.这个选项没有太大的作用,但是可以使显示的包的信息格式比较容易察看.
-i 使用网络接口文件。
-l 将包信息记录到目录下。设置日志记录的分层目录结构,按接收包的IP地址将抓取的包存储在相应的目录下。
-M 向文件格式非常简单。文件的每一行包含一个目的地址的SMB名。
-n 处理完包后退出。
-N 关闭日志功能。告警功能仍然工作。
-o 改变应用于包的规则的顺序。标准的应用顺序是:Alert->Pass->Log;采用-o选项后,顺序改为:Pass->Alert->Log,允许用户避免使用冗长的BPF命令行来过滤告警规则。
-p 关闭混杂模式的嗅探(sniffing)。这个选项在网络严重拥塞时十分有效。
-r 读取tcpdump生成的文件。Snort将读取和处理这个文件。例如:当你已经得到了一个Shadow文件或者tcpdump格式的文件,想处理文件包含的内容时,这个选项就很有用了。
-s 将告警信息记录到系统日志。在其他的平台下,日志文件可以出现在/var/log/secure, /var/log/messages目录里。
-S ,n=v> 设置变量n的值为v。这个选项可以用命令行的方式设置Snort规则文件中的变量。例如:如果要给Snort规则文件中的变量HOME_NET赋值,就可以在命令行下采用这个选项。
-v 将包信息显示到终端时,采用详细模式。这种模式存在一个问题:它的显示速度比较慢,如果你是在IDS网络中使用Snort,最好不要采用详细模式,否则会丢失部分包信息。
-V 显示版本号,并退出。
-x 当收到骚扰IPX包时,显示相关信息。
-? 显示使用摘要,并退出。
.
日志 gao
加博友 关注他
他的网易微博
最新日志
Apache+PHP+MySQL安装指南用WIN下boot引导Linux系统(网络环境下主机风险评估方法Linux环境下SNORT安装及运行该作者的其他文章
博主推荐
相关日志
随机阅读
强悍“犀利姐”也相亲男人也有可爱面 细数男星卖萌瞬间!!!(高清大图)为了它们,他们的努力清晨第一泡尿的疾病信息新晋超模Anna Selezneva 性感帅气夺眼球!!!(高清大图)两部委打击医闹,谁打击闹医?首页推荐
打吊瓶上自习是教育怪胎没有妓女和毒品的好年代男同性恋者的性欲乌托邦常有食人恶狼出没的村庄坚守日本红灯区的中国人南海挑战中国'生存底线' 更多>>
网络环境下主机风险评估方法.Linux环境下SNORT安装及运行 2008-03-04 00:08:18| 分类: 默认分类 | 标签: |字号大中小 订阅 .
SNORT简介
Snort是一个具有很好扩展性和可移植性的轻量级网络入侵检测系统,具有实时数据流量分析和对IP数据包日志的能力,能够进行协议分析,对数据包内容和特征进行搜索匹配,能够检测各种不同的网络攻击,并对攻击进行实时报警或日志。Snort遵守通用公共许可证GPL,所以只要遵守GPL的任何组织和个人都可以自由使用。历经数年发展,Snort已经发展到2.x版本,目前最高版本是Snort2.6.0,其基本架构在1.6版本时初步建立,2.0版本以后都采用了新型的架构设计和入侵检测方法,功能也日益完善,部署方法也变得更加方便,同时Snort 还可以实时分析和记录IP数据包,其基于规则的检测引擎能够检测多种变种攻击,包括CGI扫描,另外可以按照用户的不同需求来设计不同的输出插件,缓存区溢出攻击,SMB探测等Snort已经成为了当今入侵检测的重要工具。
1.1 预处理器
Snort有一类插件,被称为预处理程序,它们在检测引擎之前对数据进行预处理,以便检测引擎检测不出的攻击得到及时的处理。它就像一个验钞机,类似检验钞票的真假的功能。现在新的攻击方法和IDS的躲避技术不断涌现,检测引擎检测能力有限,而预处理器是由多个模块组成,每个模块完成具体的功能,最主要的是它具有强大的灵活性,可以根据需要来启用和停止预处理插件,这样有利于提高snort的效率。
1.2 检测引擎
如图3-2,检测引擎是snort的核心模块。当数据从预处理器传送过来后,检测引擎会根据预先定义的规则来与检查的数据包相匹配,一发现数据包中的内容和某条规则相匹配,就会通知报警模块,进行相应的动作。Snort是基于特征的IDS,它的功能实现依赖各种已设置好的规则,检测引擎就是根据规则来匹配数据包。所以如果有新的木马就要及时升级规则库。
1.3 报警/日志模块
如果检测引擎中的某条规则被匹配时候,就会触发一条报警,这条报警信息会被写入MySQL数据库中。
1.4 Snort的规则
Snort规则是后缀名为“.rules” 的基于文本的文件。所有的规则文件都集中放snort程序的rules子目录下,主文件snort.c进行初始化时建立三维链表,启动时snort系统读取snort.conf配置文件。
(2)规则头
规则头包含了规则动作、协议、IP源地址和目的地址、子网掩码以及源端口和目标端口值等信息。而规则选项则包含警报信息以及用于确定是否触发响应规则动作而需检查的数据包区域位置的相关信息。
(3)规则参数
例如,有这样一条检测规则格式:
Alert tcp any any -> 192.168.1.0/24 111(content:”|00 01 86 a5|”;msg:”mounted access”;)
从规则的开头直到圆括号为止的部分称为规则头,而括号内部的就是规则选项。在规则头中,“Alert”就是一个规则动作,而“tcp”为触发警报的协议,第一个“any”代表源IP地址,第二个“any”就为源端口号,192.168.1.0/24代表目的IP地址为0~24之间,后面的“111”就是目的端口号了;在规则选项中,位于冒号“:”之前的词称为选项关键字。值得注意的是规则选项并不是对每一个规则而言都是必需的部分,它们只是用来更具体地定义所要进行某种处理的数据包类型。只有当规则中的每个元素都为真时,才能触发对应的规则动作,也就是说规则元素之间形成一个逻辑与的关系;而在每个规则库文件中的各种规则集合之间形成的是一种逻辑或的关系,也就是说规则库中的每个规则都会触发一个事件。
(4)规则树
规则树有5个单独的规则链,这些链作为“树”顶部的链表头:
① Activation 报警并且开启另外一个动态规则。
② Dynamic 当被上层的激活规则调用时记录网络流量的日志。
③ Alert 产生报警并记录这个数据包。
④ Pass 忽略这个数据包。
⑤ Log 记录网络的流量(不报警)。
(5)规则树节点(RTN)和选项树节点(OTN)
对五个规则链的每一个,都有单独的被协议关闭的链表,树中的这一层被称为规则树节点(RTN)。规则树节点支持以下四个协议:
① TCP协议,如:SMTP,HTTP,FTP。
② UDP协议,如:DNS,LOOKUPS。
③ ICMP协议,如:ping,traceroute。
④ IP协议,如:IPSec,IGMP。
每个协议链表中的是规则选项,称为选项树节点(OTN),初始化时,snort读入规则文件,把规则集中组织成一个二维的链表结构,这个链表结构包含:规则树节点(Rule Tree Nodes,RTN)和选项数节点(Option Tree Nodes,OTN)。图3-6显示了一个TCP报警链规则节点组装OTN的过程,并展示了snort系统利用三维链表进行匹配的过程。
3.2 SNORT安装
(1)安装环境:Linux操作系统、MySQL、Apache、PHP必须安装好,需要组件libpcap、snort、pcre、snort规则文件。
(2)安装步骤:
①建立目录/usr/local/snort。将libpcap-0.9.5.tar.gz、pcre-6.7.tar.gz、snortrules-pr-2.4.tar.gz包安装在/usr/local/snort目录下。
②编译需要所需参数:#./configure --with-mysql --enable-dynamicplugin
③在MySQL中导入snort表:
#mysql -u root -p < /usr/local/snort/snort-2.6.0/schemas/create_mysql snort
(3)配置文件:
①配置snort.conf 文件,该文件位于/etc/snort。Vi /etc/snort/snort.conf。
②改 “var HOME_NET 10.0.0.0/24”为你网络的配置
③改 “var RULE_PATH ../rules” 为保存rules文件的路径。
④接着配置snort连接到MySQL,修改#output database: log, mysql, user=snort password=<the password you gave it>。
(4)在shell中使用命令:snort –c /etc/snort/snort.conf将有图3-5所示的显示信息,提示snort安装成功,并且能连接MySQL启动。
3.3 SNORT运行
Snort常见的运行方式有嗅探器、数据包记录器、网络入侵检测系统三种。
3.3.1 嗅探器
嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上,做为嗅探器的基本命令有如图3-7。
命 令
主 要 功 能
./snort –v
只能输出IP和TCP/UDP/ICMP的包头信息.
./snort -vd
在输出包头信息的同时显示包的数据信息.
./snort –vde
不但能输出包数据,还能显示数据链路层的信息.
图3-7 Snor做嗅探器命令
如图3-8所示,使用./snort –vde命令进行对数据包嗅探,此时,显示了数据包16进制的包数据,还显示了数据链路层的信息,在本文中,运行命令为:
./snort –c snort.conf
数据包记录器
如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包。
①./snort -dev -l ./log
当snort使用上面这条命令,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名。
②./snort -dev -l ./log -h 192.168.1.0/24
以上这个命令将使用远程主机的IP地址作为目录记录数据包。
③./snort -l ./log –b
以上这个命令把所有的包记录到一个单一的二进制文件中。
3.3 网络入侵检测系统
snort能作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式,其中snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,snort就输出到/var/log/snort目录。
如果它的命令是:./snort -dev -l ./log -h 192.168.1.1/24 -c snort.conf,它将会对每个包和规则集进行匹配,再把数据记录在主机192.168.1.1中。检测到的攻击在/var/log/snort下alert文件的记录。