https://www.cnblogs.com/thresh/p/12019466.html    红色部分是坑

在Ubuntu 16.04下安装snort

在配置过程中,需要弄清楚snort的数据流向,这对配置非常重要,也方便我们排错。

具体的数据流向为:

 

snort->Barnyard2->mysql->base

snort将告警信息通过Barnyard2写入mysql,base读取mysql中的数据显示出来。

1|1安装snort

首先,新建一个文件夹来保存需要的tar包的文件夹

 

#mkdir ~/snort_src
#cd ~/snort_src

安装必备的组件

 

#sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev liblzma-dev openssl libssl-dev

build-essential:提供用于编译软件的构建工具(GCC等)。

bison,flex:DAQ所需的解析器(DAQ将在下面安装)。

libpcap-dev:Snort所需的网络流量捕获库。

libpcre3-dev:支持Snort所需正则表达式的函数库。

libdumbnet-dev:libdnet库为几个低层网络例程提供了一个简化的可移植接口。许多安装Snort的指南都是从源代码安装此库的,尽管这不是必需的。

zlib1g-dev:Snort所需的压缩库。

liblzma-dev:提供对swf文件的解压缩(adobe flash)

openssl和libssl-dev:提供SHA和MD5文件签名

Snort所需的最后一个库是Nghttp2的开发库

 

#sudo apt-get install -y libnghttp2-dev

在snort官网下载数据采集器(DAQ)来抽象对数据包捕获库的调用

 

#cd ~/snort_src
#wget https://snort.org/downloads/snort/daq-2.0.6.tar.gz
#tar -xvzf daq-2.0.6.tar.gz
#cd daq-2.0.6
#./configure
#make
#sudo make install

源码安装snort

 

#cd ~/snort_src
#wget https://snort.org/downloads/snort/snort-2.9.9.0.tar.gz
#tar -xvzf snort-2.9.9.0.tar.gz
#cd snort-2.9.9.0
#./configure --enable-sourcefire
#make
#sudo make install

更新共享库

 

#sudo ldconfig

Snort安装会将Snort二进制文件放在/ usr / local / bin / snort,因此,创建到/ usr / sbin / snort的符号链接

 

#sudo ln -s /usr/local/bin/snort /usr/sbin/snort

安装后输入snort -V看到以下内容

1|2将snort配置为NIDS

基本配置:出于安全原因, Snort应该以非特权用户身份运行,创建一个snort用户和组

 

#sudo groupadd snort
#sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

创建snort需要的文件和文件夹

 

# 创建Snort目录:
#sudo mkdir /etc/snort
#sudo mkdir /etc/snort/rules
#sudo mkdir /etc/snort/rules/iplists
#sudo mkdir /etc/snort/preproc_rules
#sudo mkdir /usr/local/lib/snort_dynamicrules
#sudo mkdir /etc/snort/so_rules

 

# 创建一些存储规则和ip列表的文件
#sudo touch /etc/snort/rules/iplists/black_list.rules
#sudo touch /etc/snort/rules/iplists/white_list.rules
#sudo touch /etc/snort/rules/local.rules
#sudo touch /etc/snort/sid-msg.map

 

# 创建日志文件
#sudo mkdir /var/log/snort
#sudo mkdir /var/log/snort/archived_logs

 

# 调整权限
#sudo chmod -R 5775 /etc/snort
#sudo chmod -R 5775 /var/log/snort
#sudo chmod -R 5775 /var/log/snort/archived_logs
#sudo chmod -R 5775 /etc/snort/so_rules
#sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules

 

# 改变文件夹的所有权
#sudo chown -R snort:snort /etc/snort
#sudo chown -R snort:snort /var/log/snort
#sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules

将解压后snort中的文件复制到我们新建的文件夹中

 

#cd ~/snort_src/snort-2.9.9.0/etc/
#sudo cp *.conf* /etc/snort
#sudo cp *.map /etc/snort
#sudo cp *.dtd /etc/snort

 

#cd ~/snort_src/snort-2.9.9.0/src/dynamic-#preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/
#sudo cp * /usr/local/lib/snort_dynamicpreprocessor/

基本的文件结构如下:

编辑snort配置文件

注释掉Snort导入默认规则文件集的行

 

#sudo sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf

修改snort.conf文件(这里使用gedit编辑器)
#sudo gedit /etc/snort/snort.conf

文件中修改如下 #配置网络信息,这里的IP是192.168.147.138,所以ip如下

 

ipvar HOME_NET 192.168.0.0/16

我们需要告诉Snort我们之前创建的所有文件夹的位置。这些设置也是snort.conf文件的一部分

 

var RULE_PATH /etc/snort/rules           # 104行左右
var SO_RULE_PATH /etc/snort/so_rules       # 105行左右
var PREPROC_RULE_PATH /etc/snort/preproc_rules   # 106行左右
var WHITE_LIST_PATH /etc/snort/rules/iplists   # 113行左右
var BLACK_LIST_PATH /etc/snort/rules/iplists   # 114行左右

#启用规则文件

 

include $RULE_PATH/local.rules               #取消注释,在545行左右

测试snort

 

#sudo snort -T -c /etc/snort/snort.conf -i ens33   #ens33是网卡,可用ifconfig查看

然后我们看到如下结果,配置成功

接下里,编辑规则文件,编写两条基本的规则

 

#sudo gedit /etc/snort/rules/local.rules

保存后退出

开始测试

 

#sudo snort -T -c /etc/snort/snort.conf -i ens33

可以看到如下结果

开始检验,用一台别的主机ping snort的主机

 


#sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i ens33

可以看到如下结果

到这里,基本的测试规则就完成了

在规则中,没有关于ARP欺骗检测规则定义,但是可以通过snort的内置模块进行检测。

具体配置如下

在snort.conf文件中配置

 

#sudo gedit /etc/snort/snort.conf

将网关地址IP地址和MAC地址双向绑定

用科来数据包播放器发送ARP欺骗报文(也可以通过kali发送ARP欺骗报文),执行以下命令

 

#sudo /usr/local/bin/snort -A -q -u snort -g snort -c /etc/snort/snort.conf -t ens33

可以看到如下结果,检测到欺骗报文。

1|3安装Barnyard2和配置Mysql

下一步,安装Barnyard2,这是一个专用的后台处理程序,将有助于减少Snort服务器上的负载

安装一些必备组件

安装mysql时系统会提示输入root密码,这里我使用的密码为123

 

#sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

编辑snort.conf文件

 

#sudo vi /etc/snort/snort.conf

#添加一行以告诉Snort以二进制形式输出事件。在snort.conf中的第520行之后(该行为注释掉的示例),添加以下行并保存文件:

output unified2: filename snort.u2, limit 128

接下来,安装Barnyard2

去到需要安装的目录下

 

#cd ~/snort_src
#wget https://github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz
#tar zxvf barnyard2-Master.tar.gz
#cd barnyard2-master
#autoreconf -fvi -I ./m4

Barnyard2需要访问dnet.h库,该库是我们先前与Ubuntu libdumbnet软件包一起安装的,创建一个链接

 

#sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h
#sudo ldconfig

根据系统结构,运行Barnyard2在MySQL的库(这里时64位的)

 

#./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu

然后继续

 

#make
#sudo make install

测试barnyard2是否安装成功

 

#barnyard2 -V

为Snort配置为使用Barnyard2,从源程序包中复制一些文件

 

#sudo cp ~/snort_src/barnyard2-master/etc/barnyard2.conf /etc/snort/
#sudo mkdir /var/log/barnyard2
#sudo chown snort.snort /var/log/barnyard2
#sudo touch /var/log/snort/barnyard2.waldo
#sudo chown snort.snort /var/log/snort/barnyard2.waldo

创建数据库

#输入的密码为安装时设定的密码

 

#mysql -u root -p
mysql> create database snort;
mysql> use snort;
mysql> source ~/snort_src/barnyard2-master/schemas/create_mysql
mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123';
mysql> grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';
mysql> exit

创建数据库后,要将信息告诉Baenyard2,编辑barnyard2.conf文件

 

#sudo gedit /etc/snort/barnyard2.conf

在文件的末尾添加(末尾有关于数据库的配置,可以选择取消注释,然后修改)

 

output database: log, mysql, user=snort password=123 dbname=snort host=localhost sensor name=sensor01

然后运行如下命令:

 

#sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort

运行结果如图,等待数据传入

1|4安装base

不要使用php5.6,因为5.6已经不支持mysql包了。

./includes/base_state_common.inc.php
BASE1.4.5版本中有个qmagic函数已经被弃用,请改成qstr

https://github.com/ADOdb/ADOdb/issues/684

直接使用lnmp环境安装,mysql选用5.4,php也用5.4

创建可视化界面,这里使用的是base,base需要php5,但是ubuntu16中以不可用,转为了php7(如果配置不对,后面配置base时会出现错误,导致有些页面显示不出来)

安装php5软件包

 

#sudo add-apt-repository ppa:ondrej/php
#sudo apt-get update
#sudo apt-get install -y apache2 libapache2-mod-php5.6 php5.6-mysql php5.6-cli php5.6 #php5.6-common php5.6-gd php5.6-cli php-pear php5.6-xml

就不要用这个安装php环境了,直接用lnmp包安装,省事

安装pear图像图

 

#sudo pear install -f --alldeps Image_Graph

下载安装adodb

 

#cd ~/snort_src
#wget https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-#php5/adodb-5.20.8.tar.gz
#tar -xvzf adodb-5.20.8.tar.gz
#sudo mv adodb5 /var/adodb
#sudo chmod -R 755 /var/adodb

下载base并复制到apache2目录下

 

#cd ~/snort_src
#wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz
#tar xzvf base-1.4.5.tar.gz
#sudo mv base-1.4.5 /var/www/html/base/

创建和配置base文件

 

#cd /var/www/html/base
#sudo cp base_conf.php.dist base_conf.php
#sudo vi /var/www/html/base/base_conf.php

文件配置如下

 

$BASE_urlpath = '/base';       # 50
$DBlib_path = '/var/adodb/';   # 80
$alert_dbname   = 'snort';   # 102
$alert_host   = 'localhost';
$alert_port   = '';
$alert_user   = 'snort';
$alert_password = '123';     # 106

修改base文件权限

 

#sudo chown -R www-data:www-data /var/www/html/base
#sudo chmod o-r /var/www/html/base/base_conf.php

这里也可以不配置base文件,可以在http://localhost/base中设置

重启apache

 

#sudo service apache2 restart

浏览器打开 http://localhost/base/index.php

可以看到如下结果

入侵检测系统Snort的安装、配置与测试(转载)相关推荐

  1. snort create_mysql_入侵检测系统Snort+Base安装

    安装一些支持库 tar -zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure make make install cd .. tar -zxvf libp ...

  2. 侵检测系统Snort的安装、配置与测试

    入侵检测系统Snort的安装.配置与测试 文章链接:安装比较详细的博客 注意:snort只能抓取你自己网卡,所以snort只能嗅探本机服务器,无法嗅探其他服务器,请熟知 1.1首先,新建一个文件夹来保 ...

  3. snort入侵检测系统下载Linux,入侵检测系统Snort 2.9.0.2 发布

    Snort 是一个免费的.跨平台的软件包,用作监视小型 TCP/IP 网的嗅探器.日志记录.侵入探测器.Snort 是全世界上使用最广泛的入侵预防与侦测软件. Snort 有三种工作模式:嗅探器.数据 ...

  4. snort mysql_linux入侵检测系统snort安装配置

    队长让俺瞅瞅snort,没想到安装配置都遇到问题...整理下过程,给跟我一样的家伙看看.. 由于本人机器是ubuntu,apt-get 几下就可以了,其实网上有不少这样的文章...之所以还要写就是.. ...

  5. Linux入侵检测系统IDS的安装与配置

    一.IDS概述 在安全防御体系中,如果缺少有效的入侵检测,很容易造成不法人员的大范围入侵,为企业信息安全带来巨大的损失.而入侵检测系统(Intrusion Detection System)对入侵中或 ...

  6. 信息安全体系建设☞开源入侵检测系统NIDS

    我们之前提到在边界处搭建信息安全体系,需要依赖防火墙,但是防火墙就像我们生活当中的一扇门,只是负责开和关我们不能够感知到是谁进来或者谁出去.比如说我们在制定防火墙策略的时候,我们制定的规则是人可以出去 ...

  7. 基于Snort的入侵检测系统

    基于Snort的入侵检测系统 用Snort,Apache,MySQL,PHP及ACID构建高级IDS 第一章 入侵检测系统及Snort介绍 在当今的企业应用环境中,安全是所有网络面临的大问题.黑客和入 ...

  8. linux 进程suricata,如何在 Linux 系统上安装 Suricata 入侵检测系统

    随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要.然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越 ...

  9. 开源入侵检测系统OSSEC搭建之一:服务端安装

    OSSEC是一款开源的多平台的入侵检测系统,可以运行于Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS等操作系统中.主要功能有日志分析.完整性检查.rootkit检测 ...

最新文章

  1. mysql 去重取出最小值_5000字总结MySQL单表查询,新手看这一篇足够了!
  2. linux c ping实现
  3. Android踩坑日记:使用Fesco图片加载库在GridView上的卡顿优化
  4. java Socket Tcp示例三则(服务端处理数据、上传文件)
  5. java异常个人理解
  6. python win10 连接hive_使用win10+python3.5+impyla 连接大数据平台hive表的步骤与问题解决...
  7. ArrayList 有序集合 c#
  8. 枚举、宏定义enum /defint/typedef
  9. Golang 入门系列(十一)Go语言实现webapi
  10. CentOS7--IP配置与网络问题排查
  11. 高通增加Adsp log( 三十)
  12. SQL:postgreSQL借助日期函数Extract按照时间区分查询结果
  13. 为什么在使用超级终端配置交换机时显示乱码或无显示?
  14. 如何让百度检索Github博客
  15. 计算机科学中的抽象包括数据抽象和,抽象化 (计算机科学)
  16. 【20年9月】聊聊我的CISM备考过程,有经验有教训!
  17. 面向对象开发期末复习概述(四)
  18. iOS开发之ARC(自动引用计数)
  19. Android U盘插拔监听详细版以及U盘写入权限解决办法
  20. Set中的HashSet和TreeSet特点及用法

热门文章

  1. python阈值分割_根据阈值分割numpy数组的更快方法
  2. CSDN如何转载别人的博客(以及遇到的问题)
  3. 五种网站前端开发必学的网页布局方式?
  4. CreateMutex互斥体对象
  5. 基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发
  6. extends与implements的使用和区别
  7. python 入门基础(三)-Python入门基础(第3天):基本数据类型
  8. 放电管和压敏电阻使用方法简析
  9. [百瑞莲]diy巧克力盒
  10. 解决centos7虚拟机使用git 下载代码出现网络不可达的问题