Linux 启动snort服务,在 Ubuntu 15.04 中如何安装和使用 Snort

对于网络安全而言入侵检测是一件非常重要的事。入侵检测系统(IDS)用于检测网络中非法与恶意的请求。Snort是一款知名的开源的入侵检测系统。其 Web界面(Snorby)可以用于更好地分析警告。Snort使用iptables/pf防火墙来作为入侵检测系统。本篇中,我们会安装并配置一个开源的入侵检测系统snort。

26b01d9da5e57da248ad7626e5760422.png

Snort 安装

要求

snort所使用的数据采集库(DAQ)用于一个调用包捕获库的抽象层。这个在snort上就有。下载过程如下截图所示。

c9bc7968acfadeda96ef2461b73ff307.png

downloading_daq

解压并运行./configure、make、make install来安装DAQ。然而,DAQ要求其他的工具,因此,./configure脚本会生成下面的错误。

flex和bison错误

4af1c45dd28750b7a8161d57d01eee62.png

flexandbison_error

libpcap错误

09d8be9ddffce97d1ac369bf1642ada1.png

libpcap error

因此在安装DAQ之前先安装flex/bison和libcap。

221c970027020e9710f0bb9b08b22594.png

install_flex

如下所示安装libpcap开发库

8741b0f88ac83339216c94ee299f8b76.png

libpcap-dev installation

安装完必要的工具后,再次运行./configure脚本,将会显示下面的输出。

9170f06e492fb9d5f69092ac4f36eccd.png

without_error_configure

make和make install 命令的结果如下所示。

b855b6b3ce52a332d9f7c4c526658a45.png

make install

60ebdeed8e2d7441b115866949770ea5.png

make

成功安装DAQ之后,我们现在安装snort。如下图使用wget下载它。

abbb7799252c6074a0d61d95edd961d1.png

downloading_snort

使用下面的命令解压安装包。

#tar -xvzf snort-2.9.7.3.tar.gz

7f9cdcd3e07b88500b0c515952cdd584.png

snort_extraction

创建安装目录并在脚本中设置prefix参数。同样也建议启用包性能监控(PPM)的sourcefire标志。

#mkdir /usr/local/snort

#./configure --prefix=/usr/local/snort/ --enable-sourcefire

698f63bcece98a113599309d89e98898.png

snort_installation

配置脚本会由于缺少libpcre-dev、libdumbnet-dev 和zlib开发库而报错。

配置脚本由于缺少libpcre库报错。

12665a1fae2d91831600d9674cadd6fa.png

pcre-error

配置脚本由于缺少dnet(libdumbnet)库而报错。

654d40a84bca140ee66e9d63dfd764bc.png

libdnt error

配置脚本由于缺少zlib库而报错

ae5625dc40915fdb0ec911eef02fe0e4.png

zlib error

如下所示,安装所有需要的开发库。

# aptitude install libpcre3-dev

78ed03b3bbd333989a942a6e6d4fa51f.png

libpcre3-dev install

# aptitude install libdumbnet-dev

cce3e68b987629fb68cad263f818019b.png

libdumnet-dev installation

# aptitude install zlib1g-dev

3b8302e3a505b60e6554bb4f6c839818.png

zlibg-dev installation

安装完snort需要的库之后,再次运行配置脚本就不会报错了。

运行make和make install命令在/usr/local/snort目录下完成安装。

# make

708ec17573959b2bd7651acff21ee490.png

make snort

# make install

d4898b2b8c3e46813a2b102f680b783b.png

make install snort

最后,从/usr/local/snort/bin中运行snort。现在它对eth0的所有流量都处在promisc模式(包转储模式)。

6f63596e7c883f2103d11033896047c4.png

snort running

如下图所示snort转储流量。

a31a0ff2e24129d4c965abebd77e53b1.png

traffic

Snort的规则和配置

从源码安装的snort还需要设置规则和配置,因此我们需要复制规则和配置到/etc/snort下面。我们已经创建了单独的bash脚本来用于设置规则和配置。它会设置下面这些snort设置。

在linux中创建用于snort IDS服务的snort用户。

在/etc下面创建snort的配置文件和文件夹。

权限设置并从源代码的etc目录中复制数据。

从snort文件中移除规则中的#(注释符号)。

#!/bin/bash#

# snort源代码的路径

snort_src="/home/test/Downloads/snort-2.9.7.3"

echo"adding group and user for snort..."

groupadd snort&>/dev/null

useradd snort-r-s/sbin/nologin-d/var/log/snort-c snort_idps-g snort&>/dev/null#snort configuration

echo"Configuring snort..."mkdir-p/etc/snort

mkdir-p/etc/snort/rules

touch/etc/snort/rules/black_list.rules

touch/etc/snort/rules/white_list.rules

touch/etc/snort/rules/local.rules

mkdir/etc/snort/preproc_rules

mkdir/var/log/snort

mkdir-p/usr/local/lib/snort_dynamicrules

chmod-R775/etc/snort

chmod-R775/var/log/snort

chmod-R775/usr/local/lib/snort_dynamicrules

chown-R snort:snort/etc/snort

chown-R snort:snort/var/log/snort

chown-R snort:snort/usr/local/lib/snort_dynamicrules

###copy configuration and rules from etc directory under source code of snort

echo"copying from snort source to /etc/snort ....."

echo $snort_src

echo"-------------"

cp $snort_src/etc/*.conf* /etc/snort

cp $snort_src/etc/*.map /etc/snort##enable rules

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

echo "---DONE---"

改变脚本中的snort源目录路径并运行。下面是成功的输出。

c36e5d80eef096c85b022f51cc8cbf14.png

running script

上面的脚本从snort源中复制下面的文件和文件夹到/etc/snort配置文件中

af0b0ab9059e3614ac8fb21a0e74a644.png

files copied

snort的配置非常复杂,要让IDS能正常工作需要进行下面必要的修改。

ipvar HOME_NET192.168.1.0/24# LAN sideipvar EXTERNAL_NET!$HOME_NET# WAN side

039be96aaa7c45f1b642d0ac8ec24725.png

veriable set

varRULE_PATH/etc/snort/rules# snort signature path

varSO_RULE_PATH/etc/snort/so_rules#rules in shared libraries

varPREPROC_RULE_PATH/etc/snort/preproc_rules# Preproces path

varWHITE_LIST_PATH/etc/snort/rules# dont scan

varBLACK_LIST_PATH/etc/snort/rules# Must scan

efcd19841a28a256f7a43cbe8fc2045e.png

main path

include $RULE_PATH/local.rules# file for custom rules

移除ftp.rules、exploit.rules前面的注释符号(#)。

520182e06626a0c2c4815c5cd2a410f8.png

path rules

现在下载社区规则并解压到/etc/snort/rules。启用snort.conf中的社区及紧急威胁规则。

63c96448d9f0e4d4c804d8ce4f9341c4.png

wget_rules

6ef2b395091041c755c17f89fc99932f.png

community rules

进行了上面的更改后,运行下面的命令来检验配置文件。

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

771abcfaf3f881401ec357f374a1b426.png

snort running

总结

本篇中,我们关注了开源IDPS系统snort在Ubuntu上的安装和配置。通常它用于监控事件,然而它可以被配置成用于网络保护的在线模式。snort规则可以在离线模式中可以使用pcap捕获文件进行测试和分析

相关阅读:

Snort 的详细介绍:请点这里

Snort 的下载地址:请点这里

本文由 LCTT 原创翻译,Linux中国 荣誉推出

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值