zoukankan      html  css  js  c++  java
  • Snort的安装,配置,测试

    在学习snort的时候,参考了很多文章,遇到了许多坑。这里是完成搭建的过程。

    在Ubuntu 16.04下安装snort

    安装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看到以下内容

     

     

    将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

    可以看到如下结果 

     

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

    安装Barnyard2

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

    安装一些必备组件

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

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

     

    编辑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

     

    结果如图

    安装base

    创建可视化界面,这里使用的是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

    安装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

    可以看到如下结果

    这样就基本完成。需要更加完善则需要自定义规则。

    不断的入坑学习,才能不断进步!

  • 相关阅读:
    <Android 应用 之路> 天气预报(五)
    Java图形界面开发—列出指定目录
    解决The Network Adapter could not establish the connection
    <Android 应用 之路> 天气预报(四)
    Java集合框架—List
    Java集合框架—Map
    C#工程缺少IIS组件无法打开的解决办法
    关于com工程依赖的一些总结
    C:移位运算符
    void类型及void指针
  • 原文地址:https://www.cnblogs.com/thresh/p/12019466.html
Copyright © 2011-2022 走看看