红联Linux门户
Linux帮助

Ubuntu 12.04下安装snort详解

发布时间:2014-07-14 16:08:48来源:红联作者:velcbo
Snort是一个免费的IDS(入侵监测系统)软件。它的一些源代码是从著名的tcpdump软件发展而来的。它是一个基于libpcap包的网络监控软件,可以作为一个十分有效的网络入侵监测系统。它能够监测多种网络攻击和探测,例如:缓冲器溢出攻击,端口扫描,CGI攻击,SMB探测等等。Snort具有实时的告警能力,将告警记入一个特别的告警文件--系统日志,或者将告警信息通过samba转发给另一台Windows PC机。

Snort首先根据远端的ip地址建立目录,然后将检测到的包以tcpdump的二进制格式记录或者以自身的解码形式存储到这些目录中。这样一来,你就可以使用Snort来监测或过滤你所需要的包。

前一阵子参考了网上在Ubuntu 12.04下安snort+mysql的文章,不过安装大都是用apt-get执行的,定制性太差,攻击检测不出来不说(与RP有关),还把系统弄得很乱。楼主深受其害,一怒之下卸掉所有,自己一点点配置和排错,最后总算成功。

整个过程是暂时在root权限下弄的,省去一些麻烦。

闲话少说,先上必装软件。

pcre-8.20.tar.gz
zlib-1.2.3.tar.gz
libpcap-1.3.0.tar.gz
daq-1.1.1.tar.gz
libxml2-2.6.19.tar.gz
libpng-1.2.40.tar.gz
gd-2.0.33.tar.gz
jpegsrc.v7.tar.gz
DBD-mysql-3.0008.tar.gz
httpd-2.2.14.tar.gz
php-5.2.9.tar[1].bz2

这些东西当然你愿意在哪configure都行,不过为了方便说明,我把他们的*.tar.gz都放到我自己建的一个目录中/usr/local/installsnort中

make&&make install

该装的都装好了,终于轮到我们的大BOSS了,

snort-2.9.0.2.tar.gz

snortrules-snapshot-2920.tar.gz

当然是先cd进去:

cd /usr/local/installsnort/snort-2.9.0.2

然后configure,假设你的这里一定要这样,否则遗祸无穷。

./configure --with-mysql=/usr/lib/i386-linux-gnu/ --with-libpcre-includes=/usr/local/installsnort/pcre-8.20/ --with-libpcre-libraries=//usr/local/installsnort/pcre-8.20/.libs/ --enable-zlib

mysql是用新立得以前就装好的,所以它的库文件什么的都在linux的GNU工具集内,只有libpcre要指定一下,否则找不到,zlib会影响到snort以后的执行。

接着:

make

(经常会有各种问题,如果想重新configure 请用make clean)

然后是make的好基友:

make install

到这里,snort最基本的功能安装完毕。测试一下,snort -V(用于查版本号)

如果出现这个,请继续,否则请检查上述安装过程。

,,_ -*> Snort! <*-

o" )~ Version 2.9.0.2 (Build 92)

'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team

Copyright (C) 1998-2010 Sourcefire, Inc., et al.

Using libpcap version 1.3.0

Using PCRE version: 8.20 2011-10-21

Using ZLIB version: 1.2.3.4

如果/etc路径下没有snort目录,建立一个,先将/usr/local/installsnort/snort-2.9.0.2/etc所有文件拷贝进去,再将/usr/local/installsnort/snortrules-snapshot-2902.tar.gz解压缩生成的preproc_rules、rules、so_rules的文件拷贝进去。

以下命令的功能是在MySQL中建立一个snort数据库,并建立一个snort用户来管理这个数据库,设置snort用户的口令为123456。
mysql -u root -p

mysql> CREATE DATABASE snort;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort@localhost;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('123456');
mysql> exit

这样就为 snort 在 MySQL 中建立了数据库的结构,其中包括各个 snort 需要使用的表。
cd /usr/local/installsnort/snort-mysql
zcat create_mysql.gz | mysql -u snort -D snort -p123456

设置 snort 把 log 文件输出到 MySQL 数据库中
修改 Snort 的配置文件:/etc/snort/snort.conf
sudo vim /etc/snort/snort.conf
在配置文件中将 HOME_NET 有关项注释掉,然后将 HOME_NET 设置为本机 IP 所在网络,将 EXTERNAL_NET 相关项注释掉,设置其为非本机网络,然后修改规则库读取路径:
#var HOME_NET any
var HOME_NET 192.168.0.0/16
#var EXTERNAL_NET any
var EXTERNAL_NET !$HOME_NET
var RULE_PATH rules
将 output database 相关项注释掉,将日志输出设置到 MySQL 数据库中,如下所示:
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
output database: alert, mysql, user=snort password=123456 dbname=snort host=localhost
这样,snort 就不再向 /var/log/snort 目录下的文件写记录了,转而将记录存放在 MySQL 的snort数据库中。这时候可以测试一下 Snort 工作是否正常:
snort -c /etc/snort/snort.conf -A(报警显示在控制台)
snort -g snort -c /etc/snort/snort.conf(报警记录在mysql)

中间过程中的一些错误:

一.make时出现error while loading shared libraries: libdnet.so.1

运行一下 /sbin/ldconfig -v 即可。

(ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录 下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc /ld.so.cache,此文件保存已排好序的动态链接库名字列表.

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令)

二、在运行snort过程中提示:

ERROR: /usr/local/snort/etc/snort.conf(193) => Invalid keyword 'compress_depth' for 'global' configuration.

原因:在编译的时候没有带--enable-zlib

解决:清除所有已编译安装的snort信息,再进行编译安装,编译的时候带上--enable-zlib参数。

作者:stevenchichi
文章评论

共有 0 条评论