Ubuntu 18.04上使用snort3(一)

最近学校里做项目要用到snort3,网上找了找教程基本都是snort2.9版本的安装,靠着官网文档加上自己摸爬滚打,最终安装成功了,写篇博客大概记录一下。我用的是Ubuntu18.04.1 LTS版本的系统,其他版本的不保证能成功

这篇博客主要是到成功安装snort3并运行,怎么配置一个入侵检测(防护)系统可以期待后面的内容,等过几天我琢磨明白了再更新

首先确保apt的包都是最新的,不放心的话可以

1
2
sudo apt update
sudo apt dist-upgrade -y

前置要求

接下来安装snort3和DAQ(Data AcQuision library)的前置依赖

1
2
3
sudo apt install -y autotools-dev bison build-essential cmake \
    flex libdumbnet-dev  libhwloc-dev libluajit-5.1-dev \
    libpcap-dev pkgconfig zlib1g-dev

以及一些可选项(但是官网说是highly recommended,所以我这里是安装了)

1
sudo apt install -y cpputest liblzma-dev libsqlite3-dev libssl-dev openssl uuid-dev

如果之前没有用过GitHub可能还需要安装libtool git autoconf这三个小工具

因为项目上还要和iptables联动,用到所谓的inline模式,所以需要安装NFQ(NetFilter Queue),如果不需要的话这里可以省略,不过建议安装下,万一以后用到了呢是吧

1
sudo apt install libnetfilter-queue-dev libmnl-dev

接下来要安装一些工具类的软件,按照官方文档给出的建议,有一部分是可选项但是推荐安装的,我这里就都安装了一下,也非不了多大劲,下载下来./configure && make && sudo make install就ok,下面是安装的软件名和对应的地址,需要的自取

safec https://github.com/rurban.safeclib/releases/download/v04062019/libsafec-04062019-ga99a05.tar.gz
PCRE(Perl Compatible Regular Expressions)
https://ftp.pcre.org.pub/pcre/pcre-8.43.tar.gz
gperftools
https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz
ragel
https://www.colm.net/files/ragel/ragel-6.10.tar.gz

按照官方的说法,snort3中用Hyperscan实现快速模式匹配,这个hyperscan还需要安装Ragel还要使用Boost的头文件,ragel在上面给出来了,boost有点特殊。顺带一提,boost看起来很有用的样子

摘自boost官网:
Boost provides a set of free peer-reviewed portable C++ source libraries. It includes libraries for linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions and unit testing.

boost只需要下载解压就可以,并不需要安装,可以直接在官网上下载,点我直达
hyperscan就比较麻烦,因为需要用到boost库提供的头文件

1
2
3
4
5
6
7
wget https://github.com/intel/hyyperscan/archive/v5.2.0.tar.gz
tar -xvf v5.2.0.tar.gz
mkdir hyperscan-5.2.0-build
cd hyperscan-5.2.0-build/
cmake -DCMAKE_INSTLL_PREFIX=/usr/local -DBOOST_ROOT=your/boost/absolute/path your/hyperscan/source/directory
make
sudo make install

上面-DBOOST_ROOT后面填入之前解压boost的文件夹,后面一个参数是hyperscan源码的位置,这个过程比较漫长,我虚拟机本身也比较慢,大概花了两个小时

(建议出去跑个十公里,回来洗个热水澡,差不多就ok了)

还有一个也是可选项的flatbuffers 和之前./configure && make && sudo make install不同是把./confiure 换成了cmake sourcedirectory

正式安装

首先安装DAQ,这个比较简单,不过注意snort3和snort2.9的DAQ不一样
如果之前装过snort2.9的DAQ这里还要再装一遍

1
2
3
4
5
git clone https://github/com/snort3/libdaq.git
cd libdaq ./bootstrap
./configue
make
sudo make install

sudo ldconfig更新一下共享库,然后就可以开始安装snort3了

1
2
3
4
5
6
git clone git://github.com/snortadmin/snort3.git
cd snort3
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd build
make
sudo make install