在 Ubuntu 15.04 中如何安装和使用 Snort

本文涉及的产品
云防火墙,500元 1000GB
简介:

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

Snort 安装

要求

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

downloading_daq

downloading_daq

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

flex和bison错误

flexandbison_error

flexandbison_error

libpcap错误

libpcap error

libpcap error

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

install_flex

install_flex

如下所示安装libpcap开发库

libpcap-dev installation

libpcap-dev installation

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

without_error_configure

without_error_configure

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

make install

make install

make

make

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

downloading_snort

downloading_snort

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


 
 
  1. #tar -xvzf snort-2.9.7.3.tar.gz

snort_extraction

snort_extraction

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


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

snort_installation

snort_installation

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

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

pcre-error

pcre-error

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

libdnt error

libdnt error

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

zlib error

zlib error

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


 
 
  1. # aptitude install libpcre3-dev

libpcre3-dev install

libpcre3-dev install


 
 
  1. # aptitude install libdumbnet-dev

libdumnet-dev installation

libdumnet-dev installation


 
 
  1. # aptitude install zlib1g-dev

zlibg-dev installation

zlibg-dev installation

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

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


 
 
  1. # make

make snort

make snort


 
 
  1. # make install

make install snort

make install snort

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

snort running

snort running

如下图所示snort转储流量。

traffic

traffic

Snort的规则和配置

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

  • 在linux中创建用于snort IDS服务的snort用户。
  • 在/etc下面创建snort的配置文件和文件夹。
  • 权限设置并从源代码的etc目录中复制数据。
  • 从snort文件中移除规则中的#(注释符号)。

 
 
  1. #!/bin/bash#
  2. # snort源代码的路径
  3. snort_src="/home/test/Downloads/snort-2.9.7.3"
  4. echo "adding group and user for snort..."
  5. groupadd snort &> /dev/null
  6. useradd snort -r -s /sbin/nologin -d /var/log/snort -c snort_idps -g snort &> /dev/null#snort configuration
  7. echo "Configuring snort..."mkdir -p /etc/snort
  8. mkdir -p /etc/snort/rules
  9. touch /etc/snort/rules/black_list.rules
  10. touch /etc/snort/rules/white_list.rules
  11. touch /etc/snort/rules/local.rules
  12. mkdir /etc/snort/preproc_rules
  13. mkdir /var/log/snort
  14. mkdir -p /usr/local/lib/snort_dynamicrules
  15. chmod -R 775 /etc/snort
  16. chmod -R 775 /var/log/snort
  17. chmod -R 775 /usr/local/lib/snort_dynamicrules
  18. chown -R snort:snort /etc/snort
  19. chown -R snort:snort /var/log/snort
  20. chown -R snort:snort /usr/local/lib/snort_dynamicrules
  21. ###copy configuration and rules from etc directory under source code of snort
  22. echo "copying from snort source to /etc/snort ....."
  23. echo $snort_src
  24. echo "-------------"
  25. cp $snort_src/etc/*.conf* /etc/snort
  26. cp $snort_src/etc/*.map /etc/snort##enable rules
  27. sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf
  28. echo "---DONE---"

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

running script

running script

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

files copied

files copied

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


 
 
  1. ipvar HOME_NET 192.168.1.0/24 # LAN side


 
 
  1. ipvar EXTERNAL_NET !$HOME_NET # WAN side

veriable set

veriable set


 
 
  1. var RULE_PATH /etc/snort/rules # snort signature path
  2. var SO_RULE_PATH /etc/snort/so_rules #rules in shared libraries
  3. var PREPROC_RULE_PATH /etc/snort/preproc_rules # Preproces path
  4. var WHITE_LIST_PATH /etc/snort/rules # dont scan
  5. var BLACK_LIST_PATH /etc/snort/rules # Must scan

main path

main path


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

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

path rules

path rules

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

wget_rules

wget_rules

community rules

community rules

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


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

snort running

snort running

总结

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


本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-09-03

目录
相关文章
|
28天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
149 2
|
28天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
2565 3
|
22天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
79 4
Linux系统之Ubuntu安装cockpit管理工具
|
27天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
114 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
27天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
70 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
28天前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
143 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
29天前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
38 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
1月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
66 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
23天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
75 1
|
27天前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
26 2