最近学校里做项目要用到snort3,网上找了找教程基本都是snort2.9版本的安装,靠着官网文档加上自己摸爬滚打,最终安装成功了,写篇博客大概记录一下。我用的是Ubuntu18.04.1 LTS版本的系统,其他版本的不保证能成功
这篇博客主要是到成功安装snort3并运行,怎么配置一个入侵检测(防护)系统可以期待后面的内容,等过几天我琢磨明白了再更新
首先确保apt的包都是最新的,不放心的话可以
sudo apt update
sudo apt dist-upgrade -y
前置要求
接下来安装snort3和DAQ(Data AcQuision library)的前置依赖
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,所以我这里是安装了)
sudo apt install -y cpputest liblzma-dev libsqlite3-dev libssl-dev openssl uuid-dev
如果之前没有用过GitHub可能还需要安装libtool git autoconf这三个小工具
因为项目上还要和iptables联动,用到所谓的inline模式,所以需要安装NFQ(NetFilter Queue),如果不需要的话这里可以省略,不过建议安装下,万一以后用到了呢是吧
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库提供的头文件
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源码的位置,这个make的过程比较漫长,我虚拟机本身也比较慢,大概花了两个小时
(建议出去跑个十公里,回来洗个热水澡,差不多就ok了)
安装好之后用./bin/unit-hyperscan
可以验证是否成功,像这样说明是正常的
还有一个也是可选项的flatbuffers 和之前./configure && make && sudo make install
不同是把./confiure
换成了cmake sourcedirectory
正式安装
首先安装DAQ,这个比较简单,不过注意snort3和snort2.9的DAQ不一样
如果之前装过snort2.9的DAQ这里还要再装一遍
git clone https://github/com/snort3/libdaq.git
cd libdaq ./bootstrap
./configue
make
sudo make install
用sudo ldconfig
更新一下共享库,然后就可以开始安装snort3了
git clone git://github.com/snortadmin/snort3.git
cd snort3
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd build
make
sudo make install
运行./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
后出现下面的提示
可以看到之前安装的DAQ, Flatbuffers, Hyperscan, ICONV, LZMA, SafeC, TCMalloc UUID都是ON的状态(如果前面那些可选项没安装这里不会出现)
确定无误后make && sudo make install
就行,这里make又是一个漫长的过程。
完成以后可以用snort -V
来查看版本,如果出现下面这样的情况说明是安装成功了