Linux 启动snort服务,系统运维|在 Ubuntu 15.04 中如何安装和使用 Snort

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

7a808a6ee1335266561aa6f12ff4b95a.png

Snort 安装

要求

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

d184664629cae04fa645ce143bda968c.png

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

flex和bison错误

726eb155d031908234f6714bcb1a3b14.png

libpcap错误

c94a7fdb6e819707f990e39a831d097c.png

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

14879e3c4e6c5d0107dd987e52bc88f2.png

如下所示安装libpcap开发库

dd77362e9fe7b51cd619643dcc57100e.png

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

5c26cff944d838dad328e6b84392a140.png

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

6a7fd6a4d7ae0af7d50806091581da82.png

85644fcfa882e756ba7c19a89340387e.png

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

5785bdbf4a2029347c813ace51e67986.png

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

#tar -xvzf snort-2.9.7.3.tar.gz

53ec99f4b9a70df6cb6ac5b23da626af.png

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

#mkdir /usr/local/snort

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

d98e6c20ed9241c056a5937c48ed528a.png

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

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

e1dde3051e099c9295b1bd48e94a5a02.png

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

c00b7e420240f35fde8612e482dd7f5b.png

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

9fba9cb48a0e50846b06a88935bb0a43.png

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

# aptitude install libpcre3-dev

4302b3ed95431c20de5d6e661adc83c2.png

# aptitude install libdumbnet-dev

6eec2eee3a3ccd3ab3122bd1ccf34e4f.png

# aptitude install zlib1g-dev

0eff48659f9206288326986a54ae90c8.png

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

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

# make

91b42587d262168580663e433154e34a.png

# make install

aec58c5a3ef954a5630fa6e98e27bc88.png

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

a9b52fe394dca5ea2d2d644a8a830d1d.png

如下图所示snort转储流量。

ad1f482df9d574430c805a255543bdab.png

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 -R 775 /etc/snort

chmod -R 775 /var/log/snort

chmod -R 775 /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源目录路径并运行。下面是成功的输出。

2c02c3c5dbf93d88f44f720a17fe0f6d.png

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

c10bf7fcb8ddca36f874e55f710788db.png

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

ipvar HOME_NET 192.168.1.0/24 # LAN side

ipvar EXTERNAL_NET !$HOME_NET # WAN side

46029ebb034945cac337b08a8c414424.png

var RULE_PATH /etc/snort/rules # snort signature path

var SO_RULE_PATH /etc/snort/so_rules #rules in shared libraries

var PREPROC_RULE_PATH /etc/snort/preproc_rules # Preproces path

var WHITE_LIST_PATH /etc/snort/rules # dont scan

var BLACK_LIST_PATH /etc/snort/rules # Must scan

982d84b03678bc5291e63897c4d5bd85.png

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

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

c3179db89a3173bd23e2c72f1c51e04f.png

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

a99d61015a33d4851f47e3f7e66f7180.png

ae9a27a10ab0dfcd4318462887e5c88d.png

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

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

2ba23b74ad329ac7c6b6d380f5fec3c5.png

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值