首先明确操作系统平台是Ubuntu 14.04 LTS

现在我们要在Ubuntu 14.04上部署snort NIDS(入侵检测系统)。

需要这些东西:

SNORT / Barnyard2 / Mysql / Apache2 / BASE

在进行所有工作之前,请执行以下命令,确保安装必要的软件(工具链)

sudo apt-get install -y build-essential libpcap0.8-devlibpcre3-dev libdumbnet-dev bison flex zlib1g-dev

SNORT

在Ubuntu 14.04安装snort可以有两种方式
一种:

sudo apt-get install snort

另外一种是从源代码安装。

既然有简单地方法,那就选择从软件源安装,即选择第一种。
如果这种方式出错的话,你可能需要依次执行:

sudo apt-get update

sudo apt-get upgrade

测试看看,执行:

snort -V

如果显示出以下:

   ,,_     -*> Snort! <*-o"  )~   Version 2.9.7.0 GRE (Build 149)''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#teamCopyright (C) 2014 Cisco and/or its affiliates. All rights reserved.Copyright (C) 1998-2013 Sourcefire, Inc., et al.Using libpcap version 1.5.3Using PCRE version: 8.31 2012-07-06Using ZLIB version: 1.2.8

说明安装成功了!祝贺!

接着我们要修改snort的配置文件(注意我们使用的软件源方式,故配置文件路径较为固定)

sudo vim /etc/snort/snort.conf

将115行(大概位置)修改如下(如果一样的话则不修改)

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

目的在于指定规则文件存放的路径。
在第51行 :

ipvar HOME_NET 192.168.1.0/24
第536行,修改成如下所示 :
output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types
(如果文件本身就和我这里修改后的一样则没必要修改)

现在启动测试SNORT :

sudo service snort restart

删除之前日志中得内容(我们改变了日志格式,使用了时间戳格式)

sudo rm /var/log/snort/snort.log

(题外话:第51行没必要修改,因为被/etc/snort/ snort.debian.conf覆盖了)

现在我们要测试下snort的规则。

/etc/snort/rules是我们的用于存放规则文件的路径。以后snort就是根据诸多的规则文件给我们提供预警和提示。

打开规则文件:

sudo vim /etc/snort/rules/local.rules

local.rules是用于自定义规则的规则文件。然后添加自己的规则到 local.rules:

alert icmp any any -> $HOME_NET any (msg:"ICMP Test NOW!!!"; classtype:not-suspicious; sid:1000001; rev:1;)
alert tcp any any -> $HOME_NET 80 (msg:"HTTP Test NOW!!!"; classtype:not-suspicious; sid:1000002;  rev:1;)

这两条规则大概就是说任何发往本机的ICMP和HTTP数据包都会触发警告!
保存退出。

为了便于测试,继续修改snort.conf文件。大概在573行的位置。作如下操作:

将除了local.rules之外的规则文件全部去除(不包含进来)。(也就是接下来数十行的include)。

最终这样:

# site specific rules
include $RULE_PATH/local.rules

(这是为了便于测试)

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

如果看到显示结果如下:

...
Snort successfully validated the configuration!
Snort exiting

并且还能在诸多输出信息中找到如下输出:

+++++++++++++++++++++++++++++++++++++++++++++++++++
Initializing rule chains...
1 Snort rules read1 detection rules0 decoder rules0 preprocessor rules
1 Option Chains linked into 1 Chain Headers
0 Dynamic rules
++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------[Rule Port Counts]---------------------------------------
|             tcp     udp    icmp      ip
|     src       0       0       0       0
|     dst       0       0       0       0
|     any       0       0       1       0
|      nc       0       0       1       0
|     s+d       0       0       0       0
+----------------------------------------------------------------------------

再次祝贺!规则成功加载,测试通过!

作了以上修改之后,下面开始真正的测试。

sudo snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eth0

随后,你可以使用另一台电脑或者开另外一个terminal使用ping命令,ping测试主机。

比如:ping localhost

你应该能在测试主机上看到相似的如下输出:

10/31-02:27:19.663643  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.74 -> 10.0.0.64
10/31-02:27:19.663675  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.64 -> 10.0.0.74
10/31-02:27:20.658378  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.74 -> 10.0.0.64
10/31-02:27:20.658404  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.64 -> 10.0.0.74
10/31-02:27:21.766521  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.74 -> 10.0.0.64
10/31-02:27:21.766551  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.64 -> 10.0.0.74
10/31-02:27:22.766167  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.74 -> 10.0.0.64
10/31-02:27:22.766197  [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 10.0.0.64 -> 10.0.0.74
^C*** Caught Int-Signal

(按ctrl+c结束)

然后你去查看/var/log/snort,你也会发现有被命令为snort.log.nnnnnn(nnnn代表数字),这些文件中包含的和屏幕上打印出来的是一样的信息。

祝贺!现在我们已经能够根据自己的规则显示警告信息了。

Barnyard

这是来干嘛的?简单地说,他将读取snort的二进制文件,并将其存储在MySQL数据库中。
执行以下命令会安装一些必要的软件。还会用到LAMP,如何快速安装?
(请确保之前没有安装过LAMP组件中任何一个)请参考:点击打开链接
sudo apt-get install -y libmysqlclient-dev autoconf libtool

在/etc/snort/snort.conf文件的520行附近(大概位置)添加如下并保存文件。
output unified2: filename snort.u2, limit 128

接下来安装和配置Barnyard:

下载Barnyard:

wget https://github.com/firnsy/barnyard2/archive/v2-1.13.tar.gz -O barnyard2-2-1.13.tar.gz

依次执行:

tar zxvf barnyard2-2-1.13.tar.gz
cd barnyard2-2-1.13
autoreconf -fvi -I ./m4

64bit和32bit机器分别执行以下:

./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu --with-mysql-includes=/usr/include/
./configure --with-mysql --with-mysql-libraries=/usr/lib/i386-linux-gnu --with-mysql-includes=/usr/include/

继续:

make
sudo make install
sudo cp /usr/local/etc/barnyard2.conf /etc/snort
sudo mkdir /var/log/barnyard2
sudo chown snort.snort /var/log/barnyard2
sudo cp schemas/create_mysql /usr/src

编辑:

sudo gedit /etc/snort/barnyard2.conf

#227行 改为:
output alert_fast                                      ( instead of output alert_fast: stdout )

#348行, 去掉注释:
output database: log, mysql, user=snort password=secret2 dbname=snort host=localhost

( 用你的snort用户的密码代替secret2 ,接下来在MySQL中会用到secret2)

MySQL

登录MySQL,使用你在安装lamp时设置的MySQL的root密码登录。
sudo mysql -u root -p

[ 输入MySQL的root密码 ]

在MySQL控制台依次输入以下内容(注意分号结尾):

create database snort;
create database archive;

grant usage on snort.* to snort@localhost;
grant usage on archive.* to snort@localhost;

set password for snort@localhost=PASSWORD('secret2');

grant all privileges on snort.* to snort@localhost;
grant all privileges on archive.* to snort@localhost;

flush privileges;

exit

重新登录MySQL控制台,依次键入:

use snort;source /usr/src/create_mysql;show tables;                                                 exit

Snort 和Barnyard 测试

运行:
<span style="font-size:12px;">sudo snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0 -D</span>

你不会看到输出结果,因为程序在后台运行的。

同样ping你的主机。
继续运行以下:
<span style="font-size:12px;">sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort</span><span style="font-size: 18.6666660308838px;">
</span>

应该能看到以下输出:

--== Initialization Complete ==--______   -*> Barnyard2 <*-/ ,,_  \  Version 2.1.13 (Build 327)|o"  )~|  By Ian Firns (SecurixLive): http://www.securixlive.com/+ '''' +  (C) Copyright 2008-2013 Ian Firns <firnsy@securixlive.com>Using waldo file '/var/log/snort/barnyard2.waldo':spool directory = /var/log/snortspool filebase  = snort.u2time_stamp      = 1412527313record_idx      = 16
Opened spool file '/var/log/snort/snort.u2.1412527313'
Closing spool file '/var/log/snort/snort.u2.1412527313'. Read 16 records
Opened spool file '/var/log/snort/snort.u2.1412528990'
Waiting for new data

使用ctrl+c结束。

如果你好奇数据库发生了什么?可以检测下:
mysql -u snort -p -D snort -e "select count(*) from event"

应该会出现以下结果:

+----------+
| count(*) |
+----------+
|       4  |
+----------+

***如果出现少了一个 sid-msg.map文件的错误,以下方式修复:

cd /usr/share/oinkmastersudo bash -c "sudo ./create-sidmap.pl /etc/snort/rules > /etc/snort/sid-msg.map"

BASE

首先:
sudo apt-get install libphp-adodb

继续修改配置文件:

编辑 "/etc/php5/apache2/php.ini", 找到这一行"error_reporting" ,修改它:

error_reporting = E_ALL & ~E_NOTICE

编辑/etc/apache2/apache2.conf 添加许可www/base :

-----------------------------------------------------------------------------------------------------
<Directory /var/www/html/base>AllowOverride AllRequire all granted
</Directory>
-----------------------------------------------------------------------------------------------------

重启apache2 :

sudo service apache2 restart

安装BASE依赖:

sudo apt-get install php-pearsudo apt-get install libwww-perl                                                       sudo apt-get install php5-gdsudo pear config-set preferred_state alphasudo pear channel-update pear.php.netsudo pear install --alldeps Image_Color Image_Canvas Image_Graph

如果得到以下错误:  ' could not extract the  package.xml  file ' ,那么以下方法可以修复这个错误。

当下载了这6个pear包之后,我们手动安装 ( 3 + 3 dependencies ).

如下:

cd /build/buildd/php5-5.5.9+dfsg/pear-build-download
ls

这里应该有6个 .tgz 包. 手动安装:

sudo tar zxf Image_Color*.tgz

sudo cp package.xml ./Image_Color*/
cd Image_Color*
sudo pear install package.xml
cd ..

按照上面方法依次安装其余的五个包。

Image_Canvas

Numbers_Roman

Math_BigInteger

Numbers_Words

Image_Graph

BASE的安装:

cd /usr/srcsudo wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gzsudo tar -zxf base-1.4.5.tar.gzsudo cp -r base-1.4.5 /var/www/html/basesudo chown -R www-data:www-data /var/www/html/basesudo service apache2 restart

BASE设置:

浏览器输入:http://localhost/base

(语言就选择默认的英文)

Step 1) 输入路径 : /usr/share/php/adodb

Step 2)  Database Name :                                         snort

Database Host :                                         localhost

Database User Name:                                 snort

Database Password :                                  secret2(之前输入的)

( tick 'Use Archive Database' )

Archive Database Name :                            archive

Archive Database Host :                              localhost

Archive Database User Name :                    snort

Archive Database Password :                     secret2(之前输入的)

Step 3)

Full admin name ( xxx )

[GUI password]    ( Secret3 )

Full admin name ( XXXX )

Step 4)    点击 ' Create baseAG'

Step 5)    点击 ' Now continue to Step 5 ' and login ( XXX/ secret3 )

然后ping主机的话,不出意外每3min就会跟新显示snort的信息。

Snort:Barnyard2+MySQL+BASE 基于Ubuntu 14.04SNORT相关推荐

  1. snort mysql_Snort:Barnyard2+MySQL+BASE 基于Ubuntu 14.04SNORT

    假设这样的方式出错的话,你可能须要依次运行: sudo apt-get update sudo apt-get upgrade 測试看看.运行: snort -V假设显示出下面: ,,_ -*> ...

  2. Windows 10环境中安装Snort+Barnyard2+MySQL

    一.背景 Snort是一款著名的开源入侵检测系统,有着悠久的历史和众多用户.我们通过部署Snort系统来监测异常网络活动并发出报警.Snort的跨平台性能很好,它支持的各种Linux/Unix和Win ...

  3. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码 Denni ...

  4. ubuntu linux kvm安装,基于Ubuntu 14.04 KVM拟化安装部署

    1. 宿主机环境(dell备份服务器) Ubuntu 14.04 LTS 64位 内存:16G 硬盘:2T 2. 确认CPU是否支持硬件虚拟化 root@linuxidc:~# egrep -o '( ...

  5. ubuntu 14.04 nginx php mysql_Ubuntu 14.04安装Nginx+PHP+MySQL

    基于Ubuntu 14.04搭建Nginx+PHP+MySQL环境,以下全部命令行操作: 1,由于需要大量的权限操作,方便起见临时提升权限,使用root账号 sudo su 2,安装apt源管理工具. ...

  6. linux proftpd mysql_虚拟主机与Proftpd和MySQL(包括配额)在Ubuntu 14.04LTS

    本文档介绍如何安装使用MySQL数据库而不是真实系统用户的虚拟用户的Proftpd服务器. 这是更好的性能,并允许在单个机器上有成千上万的ftp用户. 除此之外,我将使用此设置显示使用配额. 本教程基 ...

  7. Ubuntu 14.04数据库服务器--mysql的安装和配置

    https://jingyan.baidu.com/article/425e69e6bbc6c7be14fc1640.html mysql是Oracle公司的一种开放源代码的关系型数据库管理系统,被广 ...

  8. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(二):Apache安装和配置

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

  9. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django

    近期开始学习基于Linux平台的Django开发,想配置一台可以发布的服务器,经过近一个月的努力,终于掌握了基于Apache和mod-wsgi插件的部署模式,自己也写了一个教程,一是让自己有个记录,二 ...

最新文章

  1. 成功抓取douban 所有电影
  2. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】
  3. 函数实现不放在头文件的原因,及何时可以放头文件的情况
  4. spring——使用xml声明式事务整合jdbc——GRUD
  5. 一款问答APP的产品需求文档(PRD)
  6. DHCP配置 TFTP服务
  7. 颜色模型和颜色应用---YIQ颜色模型
  8. “四大神兽”拆机指北
  9. Python实现网络爬虫
  10. 关于C语言中自增自减
  11. 人工智能AI生成的艺术:从文本到图像、视频、3D建模
  12. 5-6中央处理器-多处理器系统硬件多线程
  13. oracle 截取时间至小时,Oracle中获取系统当前时间 和 进行时间间隔操作
  14. Python简单删除目录下文件以及文件夹
  15. 非线性最小二乘法之Gauss Newton、L-M、Dog-Leg
  16. 从典型软件来看 SaaS 的私有化部署方式
  17. 艾美捷MTT细胞增殖检测试剂盒测定方案
  18. 电路仿真matlab实验总结,基于matlab的boost电路仿真的实验报告分析.doc
  19. 友善之臂linux内核移植步骤,友善之臂 madplayer 移植过程补充
  20. oracle如何查询记录生成时间戳,Oracle使用范围内的时间戳记记录历史记录

热门文章

  1. 必备:产品经理工作文档大全
  2. 【数据结构】广义表的存储结构及基本运算(C语言)
  3. 吴恩达 深度学习系列--卷积神经网络(Convolutional Neural Networks)-03(目标检测)
  4. 案例分析:session丢失及appdomain回收
  5. 高清动图如何制作 GIF表情包制作方法
  6. 人工智能的逆向工程--反向智能研究综述
  7. 【23种设计模式】中介者模式(Mediator Pattern) .Net Core实现
  8. 数据结构实验课:实验五、二叉树操作及应用
  9. PTA Easy chemistry 化学方程式等价判定 string 状态机
  10. 笔记本电脑怎么录屏,3款简单操作电脑录屏软件