编译是在Ubuntu 11.04 (32bit)下完成的,Ubuntu采用默认安装方式。
Snort本身用到了一些第三方的库,这些库默认在Ubuntu下并没有安装,因此需要我们自己手动安装。具体包括:libdnet-1.12、libpcap-1.0.0、pcre-8.12、zlib-1.2.5等,除此之外,还需要安装build-essential、flex和bison包。
这些第三方库的编译安装比较简单,一般只需要执行以下三个命令即可:
./configure
make
sudo make install
当所依赖的包和库均已安装完毕后,就可以编译安装snort了。
Snort的源码可以从获得,本文使用的snort源码版本为2.9.0.5,下载后的压缩包名为snort-2.9.0.5.tar.gz。另外,还应下载daq源码,因为snort在编译时需要用到该库。daq在snort的官方站点也直接提供了源码下载。本文使用的daq版本为0.5,下载后的压缩包名为daq-0.5.tar.gz。最后,需要下载snort的规则库,因为我们需要snort工作在IDS模式下,这需要提供相应的入侵检测规则库。幸运的是,snort官方同样提供了规则库下载,不过分为收费版本和免费版本。只需要注册一个免费的账户就可以下载免费版本的规则库了。本文使用的版本库下载后的压缩包名为snortrules-snapshot-2905.tar.gz。编译时并不需要用到规则库,运行时才会用到。
接下来是snort的编译过程,直接./configure是可以的,但是这样编译出来的snort一些功能没有启用,不能满足我们的需要,所以必须使用一些配置选项,具体如下:
./configure –enable-ipv6 –enable-gre –enable-mpls –enable-targetbased –enable-decoder-preprocessor-rules –enable-ppm –enable-perfprofiling –enable-zlib –enable-active-response –enable-normalizer –enable-reload –enable-react –enable-flexresp3
完毕后,使用 make 命令进行编译,编辑完毕后使用 sudo make install 完成安装。
下面是编译过程中的截图:
【图1】snort编译中
【图2】snort编译完毕