Ubuntu下Snort从编译、安装到调试全过程

自:https://www.newbyter.net/?p=1403

一、编译

编译是在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的源码可以从www.snort.org获得,本文使用的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编译完毕

二、安装和运行

编译snort成功后,执行 sudo make install 就顺利安装了。snort将会被安装到 /usr/local 目录下。

接下来要让snort运行起来。现在需要解压出刚才下载的snort规则库压缩包,假设解压后的文件夹名字叫做snort-rules-2905,该文件夹下的etc目录下有一个snort.conf文件,这个文件里面提供了一些默认配置,对本文来说是足够了,但是要运行起来,还有一个细节需要修改:

查找 compress_depth 20480 decompress_depth 20480 并将其中的两个20480 都替换为 65535

修改后记得保存一下。然后还需要将 snort-rules-2905/so_rules/precompiled/Ubuntu-10-4/i386/2.9.0.5 文件夹拷贝到 /usr/local/lib 下,并更名为 snort_dynamicrules。

完成上面的步骤后,就可以准备开始运行snort了。

打开控制台,切换到 /usr/local/bin 目录下,执行:

sudo ./snort -dev -l /home/jian/tmp/log -h 192.168.1.0/24 -c /home/jian/soft/snort-rules-2905/etc/snort.conf

其中 -l 参数指明了日志文件的存放位置,-h 参数指明了检测的网段,-c 参数指明了配置文件的位置。

如果运行成功,将会显示类似下面的画面:

【图3】成功运行snort

三、调试

为了方便分析snort的源码,以及进行后续开发,一个方便的调试和开发环境是相当重要的。本文选择采用Eclipse IDE for C/C++ Developers (下文简称Eclipse)作为调试和开发环境。

首先打开Eclipse,不过需要以管理员权限打开,原因是snort在以IDS模式运行时需要管理员权限,如果直接打开则Eclipse运行在普通用户权限下,虽然能编译,但是运行snort将失败。解决这一问题有多种方法,但是直接以管理员权限运行Eclipse是一个比较简单直接的解决办法。

具体为:切换到eclipse所在的目录下,执行 sudo ./eclipse 即可。

打开Eclipse后,依次选择菜单 File → New → Project,然后在弹出的对话框中,选择C/C++ 分类下的Makefile Project with Existing Code,如下图:

【图4】选择项目类型

然后点击 Next,进入下一步。这一步需要告诉Eclipse我们的snort源码在哪个位置,并选择编译器类型。编译器类型我们选择Linux GCC,如下图所示:

【图5】定位snort源码位置并选择编译器类型

完毕后点击Finish,Eclipse就会立刻开始编译Snort的源码。

Eclipse编译源码是直接根据我们之前在控制台下切换到snort源码目录执行的./configure(带相应参数)后生成的makefile文件来编译的,因此需要确保Eclipse在编译之前我们就已经手动调用了./configure(带相应参数)已经生成了正确的makefile文件。

完成至此,已经离最后的成功之差一步了:

打开Debug Configurations,并切换到Arguments选项卡,输入:

-dev -l /home/jian/tmp/log -h 192.168.1.0/24 -c /home/jian/soft/snort-rules-2905/etc/snort.conf

如图:

【图6】配置Debug Configurations

好了,点击Apply按钮,然后Close即可。

同样的,也应该配置Run Configurations,这里不再赘述。

通过以上配置,我们就可以开始调试snort源码了。也能够随心所欲的修改snort中的源码并重新编译,进行各种实验了。

时间: 2024-12-11 23:26:42

Ubuntu下Snort从编译、安装到调试全过程的相关文章

Ubuntu 下ftp服务器的安装配置

Ubuntu 下ftp服务器的安装配置 FTP服务器是平时应用最为广泛的服务之一.VSFTP是Very Secure FTP的缩写,意指非常安全的FTP服务.VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务. 首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有: 1.如何添加FTP用户?  2.如何临时冻结某FTP用户?  3.FTP用户登入后的默认目录?是否可以改变?  4.如何锁定FTP用户可访问的目录范围

Linux/ubuntu下的boost库安装

我一直都没有写博客的习惯,最近正好在研究linux下的开发(目前也只是粗粗的研究),且用到了boost库,就乘此机会写点什么,最起码记录一下我在安装boost的一些步骤,主要给和我一样的linux开发新手们提供点借鉴(当然如果看到这篇文档的话 ),作者(jwybobo2007). 1.下载boost库 这个我就不说啥了,去官网看一下就能下到:www.boost.org ,现在的版本更新到了1.44 2.执行:sudo apt-get install build-essential 不为别的,就是

Ubuntu下android studio 编译报错A problem occurred starting process 'command '/Android/Sdk/build-tools/21.1.2/aapt''

此问题在stack  over flow 上找到答案. 原链接地址:http://stackoverflow.com/questions/27589844/android-studio-1-0-2-not-building-appmergedebugresources-error 解决方法: //在终端分别运行下面两条指令,安装lib32stdc++6 和lib32z1 sudo apt-get install lib32stdc++6 sudo apt-get install lib32z1

CentOS 6.6 下源码编译安装MySQL 5.7.5

版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# yum -y install gcc-c++ ncurses-devel cmake make perl \ gcc autoconf automake zlib libxml libgcrypt libtool bison2. 清理环境检查boost版本: # rpm -qa boost*卸载b

「android」Ubuntu下android studio 编译报错A problem occurred starting process 'command '/Android/Sdk/build-tools/21.1.2/aapt''(转)

转自”http://www.cnblogs.com/jonzone/p/5246531.html“ 此问题在stack  over flow 上找到答案. 原链接地址:http://stackoverflow.com/questions/27589844/android-studio-1-0-2-not-building-appmergedebugresources-error 解决方法: //在终端分别运行下面两条指令,安装lib32stdc++6 和lib32z1 sudo apt-get

postgresql编译安装与调试(二)

接前文postgresql编译安装与调试(一),继续说说postgresql的编译安装与调试. 上一篇已经详细说明了如何在Linux系统上编译安装postgresql,这次我们在此基础上简单讲讲如何在linux系统上调试和追踪代码. 我记得之前看过一篇关于posgresql的文章,postgresql最早只有20万左右的代码量,而如今已经过100万行了,如此巨大的代码量,在没有纲领的前提下简直是盲人摸象. 为方便调试工作,在进入具体的调试之前,我们先来好好了解下postgresql的代码体系结构

ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用

作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: Ubuntu12.04 TLS android-ndk-r9d-linux-x86_64.tar.bz2 ffmpeg2.2 --------------------

Ubuntu下deb包的安装方法 (zz)

Ubuntu下deb包的安装方法 分类: Ubuntu10使用技巧 2010-10-11 23:49 42969人阅读 评论(3) 收藏 举报 ubuntudebdebianlinux deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubu

Ubuntu 下iscsi initiator的安装与使用

Ubuntu下比较方便好用的initiator是open iscsi,这里将要简要介绍它的使用方法: 1.安装: sudo apt-get install open-iscsi 2.chap设置 如果ip-san上设置了chap(没有设置chap的话,可以略去这一步),则要修改/etc/iscsi/iscsid.conf,找到以下内容,去掉前面的#,然后将用户名.密码改为san上设置好的密码 node.session.auth.authmethod = CHAPnode.session.auth