ubuntu 10.10 安装snort acidbase相关注意事项

来源:互联网 发布:java程序员技能描述 编辑:程序博客网 时间:2024/06/10 18:59

在安装snort的过程中遇到了一点困难,但还是完成。下文将依据http://blog.solrex.org/articles/implement-snort-ids-on-ubuntu-710.html的一篇博文,提出自己安装过程出现的问题和解决办法。由于以上博文是在ubuntu7.10环境中进行,本文在10.10中进行。

 

1 第一点区别:我之前已经安装过LAMP和pcap、phpMyAdmin(用php编写的可以用来管理mysql的web工具)。

 

2 安装Snort:


准备工作:通过ubuntu的apt-get方式得到的snort是2.8.4版本的,而官方http://www.snort.org/已出到2.9版本。但考虑到安装简单化,直接

sudo apt-get install snort安装。此步骤没有什么意外情况。

 

3 为了确保pcap的安装与否,可以通过dpkg -l libpcap0.8 查看 libpcap是否安装或者通过新立得查看。如果没有,则需安装。

 

4 在 MySQL 数据库中为 Snort 建立数据库: 

和上面的博文基本没有区别,这里引用:

***********************************************************

 

Ubuntu 软件仓库中有一个默认的软件包 snort-mysql 提供辅助功能,用软件包管理器下载安装这个软件包。

$ sudo apt-get install snort-mysql

安装好之后查看帮助文档:

$ less /usr/share/doc/snort-mysql/README-database.Debian

(下面建库建表的步骤其实README-database.Debian 中就有)

根据帮助文档中的指令,在 MySQL 中建立 Snort 的数据库用户和数据库。所使用的命令如下:

$ mysql –u root –p

在提示符处输入上面设置的口令 (这个是你mysql的管理员口令,一般manual中会让用户设置为test,不过最好设置一个自己常用的,否则容易在这么多密码中混淆】

 

 【注意$ mysql –u root –p后如果口令正确,你应该就进入了mysql的操作台,会出现mysql>提示符,然后你就可以创建数据库,以及用户和密码、权限等】

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('snort-db'); //此处snort-db为密码
mysql> exit

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

然后根据 README-database.Debian 中的指示建立 snort 数据库的结构。

$ cd /usr/share/doc/snort-mysql
$ zcat create_mysql.gz | mysql -u snort -D snort -psnort-db (这里的-psnort-db连在一起,没有空格,我也没搞清楚,主观上认为应该是-p snort-db但是,这样反而不行,照做即可)

这样就为 snort 在 MySQL 中建立了数据库的结构,其中包括各个 snort 需要使用的表。(此时,你就可以通过PHPMyAdmin查看了)

 

[设置 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

将 output database 相关项注释掉,将日志输出设置到 MySQL 数据库中,如下所示:

output database: log, mysql, user=snort password=snort-db dbname=snort host=localhost
#output database: log, mysql (一个字也不能错,否则连不上库就写不进去了)

这样,snort 就不再向 /var/log/snort 目录下的文件写记录了,转而将记录存放在 MySQL 的snort数据库中。这时候可以测试一下 Snort 工作是否正常:

$ sudo snort -c /etc/snort/snort.conf

如果出现一个用 ASCII 字符画出的小猪,那么 Snort 工作就正常了,可以使用 Ctrl-C 退出;如果 Snort 异常退出,就需要查明以上配置的正确性了。

*****************************************************************************************

 

5 保证你的apache2和mysql,php可用,下一步将[安装和配置 acid-base]

 

首先声明,这一步如果完全按照引用的博文来做,可能会出现问题,下面将会提到。

 

$ sudo apt-get install acidbase

 

这一步的安装过程中会选择db:mysql,然后输入口令:

【一定要注意,尽管这里没有指定让你使用那个用户登录,直接输入口令,但是其实它是默认snort用户的,所以你不能输入mysql的root口令,而需要输入snort用户的口令,根据上文就应该是snort-db,作者在这里耗费了2个多小时,后来一直连不通,就是这个原因。eg: 如果你输入root口令,在后来按照引用博文中提到的浏览器验证acidbase时就会出现:

************

 

Check the DB connection variables in base_conf.php

= $alert_dbname : MySQL database name where the alerts are stored
= $alert_host : host where the database is stored
= $alert_port : port where the database is stored
= $alert_user : username into the database
= $alert_password : password for the username

Database ERROR:Access denied for user 'snort'@'localhost' (using password: YES)

**********

(小记:在解决此问题的艰辛历程中,作者google了snort的maillists还有国外bbs的多篇帖子,都没有给出根本原因。并发现:在当前版本中将安装acidbase后的/usr/share/acidbase目录中内容cp -r到/var/www下,在浏览器中输入localhost/acidbase,此时web server访问的并不是www下的acidbase目录,而是/usr/share/acidbase,各位可以自己试试,试试在显示的首页acid_main.php中添加PHP输出代码,如echo "me";等确定。作者也针对上述浏览器提到的检查base_conf.php方法来解决,并将里面的alert_dbname等信息全部手动赋值,发现根本没有效果。而引用博文中将此文件删除并新建的方法,browser会直接报错。补充一点:这个acid_base.conf的真实位置是在/etc/acidbase下面。

后来,作者不妨重装acidbase来试图找出问题原因,(你还别说,还真找到了),现象是你通过apt-get remove acidbase无法彻底删除,首先是手动删除了/etc/acidbase下面的东东,之后发现安装时还提示已经有conf配置文件,这就怪了,我/usr和/etc下都删了,怎么还有conf?后来通过仔细看提示,原来隐匿在/etc/dbconfig-common下面还有一个acidbase.conf配置文件,注意此时的acid和base之间没有下划线连接,在这里配置文件中定义了我们首次设置的数据库连接情况,

****

 

dbc_dbtype='mysql'

 

# dbc_dbuser: database user

#the name of the user who we will use to connect to the database.

dbc_dbuser='snort'

 

# dbc_dbpass: database user password

#the password to use with the above username when connecting

#to a database, if one is required

dbc_dbpass='test' (需要改为snort-db)

*****

 

正是在这里作者发现了原因,用户名直接被设为了snort,而密码确是作者填写的root密码,作者将其改正后解决。so,就这样,作者将这个文件也删除了,(通过新立得可以将acidbase全部彻底删除)。然后重装,重新设定密码。world silence!)

 

至于引用博文中将/usr/share/acidbase的东东移到/var/www下的思想确实需要,这个要注意权限和链接的问题,过程自己解决吧。

 

这时,通过http://localhost/acidbase访问估计就不会出现什么问题了,它会手下提醒你增加数据表到snort库中,原来snort库中16个表,增加了6个acid相关的,后为22.

 

如图:

在phpmyadmin中看mysql中新建的表:


6 至于测试snort就是后面的事情了,just remember :/etc/init.d/snort start/stop/restart。

 

欢迎讨论,blog.csdn.net/jo_say.


 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击