CentOS 6.2下安装基于Suricata + Barnyard 2 + Base 的⼊侵检测系统

路人甲 2013-08-05 19:24:00

0x00 准备工作


CentOS 6.2我是最小化安装,同时使用163的源进行update,所以还需要安装如下的依赖包:

[root@root ~]$ sudo yum install gcc make pcre pcre-devel libpcap libpcap-devel

同时需要关闭iptables、ip6tables:

[root@root ~]$ sudo service iptables stop
[root@root ~]$ sudo service ip6tables stop
[root@root ~]$ sudo chkconfig --level 2345 iptables off
[root@root ~]$ sudo chkconfig --level 2345 ip6tables off

需要下载的软件:

Suricata
http://www.openinfosecfoundation.org/index.php/downloads
Barnyard 2
http://www.securixlive.com/barnyard2/
Base
http://base.secureideas.net/
yaml
http://pyyaml.org/
adodb
http://sourceforge.net/projects/adodb/
rules
http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Image_Canvas
http://download.pear.php.net/package/Image_Canvas-0.3.3.tgz
Image_Graph
http://download.pear.php.net/package/Image_Graph-0.8.0.tgz

0x01 配置APM环境


Base需要APM(Apache、PHP、Mysql)环境,通过yum来进行安装。

[root@root ids]$ sudo yum install httpd php mysql mysql-server mysql-devel php-mysql php-gd php-pear

启动httpd、mysql服务

[root@root ids]$ sudo /etc/init.d/httpd start
[root@root ids]$ sudo /etc/init.d/mysqld start

默认的web根目录是/var/www/html,在此目录新建phpinfo测试文件,来确认配置是否正确。

PS:mysql安装后root账号默认口令为空,通过下面命令可以修改root账号口令

[root@root ~]$ mysqladmin -uroot -p password [新密码]

0x02 安装Barnyard 2


安装过程如下:

[root@root ids]$ tar zxvf barnyard2-1.9.tar.gz
[root@root ids]$ cd barnyard2-1.9
[root@root barnyard2-1.9]$ ./configure --with-mysql
[root@root barnyard2-1.9]$ make
[root@root barnyard2-1.9]$ sudo make install

0x03 安装Suricata


安装过程如下:

Suricata需要依赖yaml,首先安装yaml

[root@root ids]$ tar zxvf yaml-0.1.4.tar.gz
[root@root ids]$ cd yaml-0.1.4
[root@root yaml-0.1.4]$ ./configure
[root@root yaml-0.1.4]$ make
[root@root yaml-0.1.4]$ sudo make install

[root@root ids]$ tar zxvf suricata-1.1.1.tar.gz
[root@root ids]$ cd suricata-1.1.1
[root@root suricata-1.1.1]$ ./configure
[root@root suricata-1.1.1]$ make
[root@root suricata-1.1.1]$ sudo make install

0x04 配置Suricata、Barnyard 2


配置Barnyard 2

把Barnyard 2安装源文件中的etc/barnyard2.conf文件拷贝到Suricata的配置目录下

[root@root ids]$ cd barnyard2-1.9
[root@root barnyard2-1.9]$ sudo cp etc/barnyard2.conf /etc/suricata/

创建barnyard2日志目录/var/log/barnyard2

[root@root ~]$ sudo mkdir /var/log/barnyard2

配置数据库

需要创建数据库和相应的账号

[root@root ~]$ mysql -uroot p
mysql> create database ids;
mysql> grant create,select,update,insert,delete on ids.* to ids@localhost identified by 'ids123';

Barnyard 2安装源文件中的schemas/create_mysql是创建表的sql文件,通过如下方式建表:

[root@root ~]$ mysql -uids -p -Dids < ids/barnyard2-1.9/schemas/create_mysql

配置Suricata

创建Suricata配置目录和日志目录

[root@root ~]$ sudo mkdir /var/log/suricata
[root@root ~]$ sudo mkdir /etc/suricata

把规则文件拷贝到Suricata配置目录下

[root@root ids]$ tar zxvf emerging.rules.tar.gz
[root@root ids]$ sudo cp -R rules/ /etc/suricata/

把Suricata安装源文件中的suricata.yaml/classification.config/reference.config文件拷贝到Suricata的配置目录下

[root@root ids]$ cd suricata-1.1.1
[root@root suricata-1.1.1]$ sudo cp suricata.yaml classification.config reference.config /etc/suricata/

编辑barnyard2.conf文件

[root@root ~]$ cd /etc/suricata/
[root@root suricata]$ sudo vim barnyard2.conf

找到下面的内容

config reference_file:      /etc/snort/reference.config
config classification_file: /etc/snort/classification.config
config gen_file:            /etc/snort/gen-msg.map
config sid_file:                /etc/snort/sid-msg.map

更改为的内容如下:

config reference_file:      /etc/suricata/reference.config
config classification_file: /etc/suricata/classification.config
config gen_file:            /etc/suricata/rules/gen-msg.map
config sid_file:            /etc/suricata/rules/sid-msg.map

同时在文件的末尾添加如下行,红色的mysql数据库、账号信息根据实际情况填写

output database: log, mysql, user=ids password=ids123 dbname=ids host=localhost

编辑suricata.yaml文件

[root@root suricata]$ sudo vim suricata.yaml

找到

HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"

这一行,根据实际的网络情况来修改,在这里我修改为

HOME_NET: "[192.168.0.0/16]"

找到下面的内容:

host-os-policy:
  # Make the default policy windows.
  windows: [0.0.0.0/0]
  bsd: []
  bsd_right: []
  old_linux: []
  linux: [10.0.0.0/8, 192.168.1.100, "8762:2352:6241:7245:E000:0000:0000:0000"]
  old_solaris: []
  solaris: ["::1"]
  hpux10: []
  hpux11: []
  irix: []
  macos: []
  vista: []
  windows2k3: []

根据实际网络情况修改。

启动Suricata、Barnyard 2

[root@root ~]$ sudo /usr/local/bin/barnyard2 -c /etc/suricata/barnyard2.conf -d /var/log/suricata -f unified2.alert -w /var/log/suricata/suricata.waldo -D
[root@root ~]$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth1 -D

启动suricata的-i参数是镜像流量的网卡。

测试suricata工作是否正常,可以通过如下命令:

[root@root suricata]$ curl www.testmyids.com

执行后,/var/log/suricata目录下的fast.log/suricata.waldo/unified2.alert*文件大小发生变化,同时查看fast.log文件有如下类似的内容则表示suricata工作正常:

01/12/2012-02:16:27.964981  [**] [1:2013028:3] ET POLICY curl User-Agent Outbound [**] [Classification: Attempted Informa
tion Leak] [Priority: 2] {TCP} 192.168.230.100:56260 -> 217.160.51.31:80
01/12/2012-02:16:28.309707  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potential
ly Bad Traffic] [Priority: 2] {TCP} 217.160.51.31:80 -> 192.168.230.100:56260

0x05 配置Base


Base需要用到adodb以及Image_Canvas、Image_Graph绘图组件,配置过程如下:

解压adodb514.zip

[root@root ids]$ unzip adodb514.zip

把adodb5拷贝到/usr/local/lib/目录下,这个目录随意指定,记下来后面要用到

[root@root ids]$ sudo cp -R adodb5 /usr/local/lib/

安装Image_Canvas、Image_Graph

[root@root ids]$ sudo pear install Image_Canvas-0.3.3.tgz
[root@root ids]$ sudo pear install Image_Graph-0.8.0.tgz 

解压base-1.4.5.tar.gz

[root@root ids]$ tar zxvf base-1.4.5.tar.gz

拷贝base-1.4.5到/var/www/html目录下

[root@root ids]$ sudo cp -R base-1.4.5 /var/www/html/base

更改/var/www/html/base的属主为apache

[root@root ids]$ cd /var/www/html/
[root@root html]$ sudo chown -R apache:apache base

然后通过浏览器访问http://192.168.230.100/base

根据页面中红色的部分提示来进行操作。

修改php.ini

[root@root html]$ sudo vim /etc/php.ini

找到

error_reporting = E_ALL & ~E_DEPRECATED

内容,修改为如下:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

重新载入apache配置

[root@root html]$ sudo /etc/init.d/httpd reload

然后点击“Continue”到下一步 

选择语言,和前面我们的adodb5的路径,然后点击“Continue” 

填写mysql相关信息,点击“Continue”继续 

填写认证的相关信息,如果需要验证身份,请勾上“Use Authentication System”,点击“Continue” 

点击“Create BASE AG” 

点击“step 5”,跳到首页。

0x06 最后


以上是整个安装过程,IDS的价值在于规则设置的是否合适,根据实际情况设置合适的规则才能够体现IDS的强大。规则的设置见以后的文章。

评论

D

Demon 2013-08-05 23:03:51

学习了

L

lion(lp) 2013-08-06 09:38:50

不错啊

Hxai11 2013-08-07 09:24:30

这篇文章我转载了,挺好的。

噬魂 2013-08-23 12:07:55

挺好的,。看了看

0

0x334 2013-10-17 23:23:13

额,http://blog.csdn.net/zhulinu/article/details/7699439
同学,你是zhulinu?

H

her0ma 2014-05-16 15:50:47

按照文章参考其它资料基本部署了一下,总结点经验贴上:
1,Barnyard2启动出错,要注意/etc/suricata/barnyard2.conf文件,注意根据提示修改其中的项
2,Suricata启动总是出错,需要注意看看配置文件/etc/suricata/suricata.yaml 文件中的一些选项
这俩配置文件很重要 ,遇到的错误通过修改配置文件基本都能解决。再贴篇老外写的更加详细的:
http://cyruslab.net/2012/10/18/building-an-ids-part-1-installing-pre-requisites-and-snorby/
希望对后来的童鞋有所帮助!

路人甲

真正的路人甲.

twitter weibo github wechat

随机分类

业务安全 文章:29 篇
后门 文章:39 篇
数据分析与机器学习 文章:12 篇
Android 文章:89 篇
PHP安全 文章:45 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录