Suricata在ubuntu14.04环境下安装
简介
Suricata是一款高性能的网络IDS、IPS和网络安全监控引擎。它是由the Open Information Security Foundation开发,是一款开源的系统,现在的NIDS领域snort一枝独秀,而suricata是完全兼容snort规则的多线程IDS,无论在效率还是性能上都超过原有的snort
安装
安装依赖包
sudo apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 \
make libmagic-dev libjansson-dev libjansson4 pkg-config
HTP库
wget https://github.com/OISF/libhtp/releases/download/0.5.17/htp-0.5.17.tar.gz
tar -xzvf libhtp-0.5.17.tar.gz
cd libhtp-0.5.17
./configure
make
make install
安装libhtp库
git clone https://github.com/OISF/libhtp.git
cd libhtp/
./autogen.sh
./configure
make && sudo make install
注意:
有时候会出现./configure执行不成功的时候,然后去README中找答案,运行./autogen.sh以后继续执行以上命令

Suricata现在的源代码版本分为稳定版和开发版,现在的稳定版是suricata4.0.4,开发版本是suricata4.1.0-beta1。可以去Suricata官网------下载源码
wget https://www.openinfosecfoundation.org/download/suricata-4.0.4.tar.gz

编译并安装引擎
要启用数据包分析,请确保在配置阶段输入以下内容:
./configure --enable-profiling
如果想构建带有 IPS 功能的 Suricata ,使用如下命令:
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
如果不想带有 IPS 功能,使用如下命令:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
随后使用如下命令:
make
sudo make install
sudo make install-conf # 安装默认配置
sudo make install-rules # 安装默认规则
sudo ldconfig # 让系统共享动态链接库
如果上述规则库不能安装的话,可以手动下载规则库并进行解压放到rules文件夹中
https://rules.emergingthreats.net/open/suricata-4.0/emerging.rules.tar.gz
基本配置
设置变量
Suricata 的配置文件默认在 /etc/suricata/suricata.yaml,在启动前我们需要先配置好一些重要的变量,其中变量分为两组,一个是地址组(address-groups),另一个是端口组(port-groups)。示例配置文件如下(其中,HOME_NET 要设置为我们本地网络的的 IP 地址,EXTERNAL_NET 推荐为 !$HOME_NET,即除我们本地网络以外的。而端口组中的所有端口也要和实际使用的端口号相对应。)

规则
Suricata 无论是运行在 IDS 或者 IPS 模式下肯定要基于一定的规则,具体包含哪些规则同样是在 suricata.yaml配置文件中指定,例如如下样式:


其中,default-rule-path 用于指定存放规则的文件夹,而后续 rule-files 参数则是用来指定具体好吧哪些规则文件,规则文件前面的 # 是注释代表不启用这条规则,customize the rules file表示可以自定义自己的规则,可以把自己写的规则放到这里
如果先前使用 sudo make install-rules 命令,则这样会从 EmergingThreats.net 上下载可用的社区规则集快照。如果不使用社区规则的话,就需要自己编写规则,后续我会单独写文章讲述具体如何编写 Suricata 规则
输出选项
开启或者关闭相关的输出日志文件

运行
1、监控eth0网卡流量

-c 用来指定配置文件
-i 说明以 IDS 模式运行
eth0 说明让 Suricata 监听 eth0 端口
更多参数选项
-c <path> 这个选项是最重要的选项。在-c之后,要输入suricata.yaml文件所在的路径
-i <dev or ip> 输入你想用来抓包的网卡名称。这个参数关联网卡使用libpcap在pacp?live模式下抓包
-r <path> 输入记录数据的抓包文件的路径和文件名。可以在pcap/offline模式下,在这个文件中查看包数据
-s <path> 设置一个自定义规则文件,这个文件将与yaml中设置的rules文件集一起载入使用
-l 设置一个自定义的日志输出文件夹。否则采用已在yaml文件中设置了默认的日志文件夹(default-log-dir)
-D 设置使你的suricata进程能够在后台运行,使用终端窗口干其他的事而不会影响suricata运行
-V 显示suricata版本
-u 该选项用于运行单元测试,测试suricata代码
--list-runmodes 使用该选项将列出所有可能的运行模式
2、利用规则文件检测pacp流量包

有时我们运行的时候可能会出现找不到libhtp-0.5.17.so.1文件的时候,因为libpcap.so.1默认安装到了/usr/local/lib下,我们做一个符号链接到/usr/lib/下即可,问题以及解决方法如下所示

Suricata在ubuntu14.04环境下安装的更多相关文章
- ubuntu14.04环境下spyder的安装
在ubuntu14.04系统中,默认在/usr/lib目录下安装了python2.7.6和python3.4.3,在该环境下安装spyder,然后使其链接到python3.4.3. 首先安装为pyth ...
- disconf系列【1】——百度disconf在ubuntu14.04环境下的安装
disconf官网给出的安装文档默认读者已经非常熟练本文1.2章节给出的依赖软件的原理及使用方法,且官网默认安装环境为linux(windows安装方法只字未提).同时,官网对很多重要的细节语焉不详, ...
- ubuntu14.04环境下利用docker搭建solrCloud集群
在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器 ...
- Ubuntu14.04环境下配置TFTP服务器
<<<<<<<<<<<<<<<<<<<<<<<<< ...
- Ubuntu14.04环境下Qt5.5以上版本无法输入中文的解决教程
1.前言 由于Qt5.4之后对之前的Qt5版本不再二进制兼容,所以网上很多简单的旧的办法已经失效了,所以本教程的办法是重新编译fcitx-qt5,生成最新的libfcitxplatforminputc ...
- ubuntu16.04环境下安装配置openface人脸识别程序
参考http://blog.csdn.net/weixinhum/article/details/77046873 最近项目需要用到人脸训练和检测的东西,选用了OpenFace进行,因而有此文. 本人 ...
- Ubuntu 18.04 环境下安装 Matlab2018
由于实验环境要求,最近在 Ubuntu 18.04 上安装了 Matlab2018b , 这里简单记录过程. (1) 首先是获取对应的 Matlab2018b 的安装包,这里笔者是在一个外国的网站上获 ...
- Ubuntu14.04环境下java web运行环境搭建
1.jdk安装 将下载好的安装包上传至/home目录解压 tar -zxvf jdk-8u71-linux-x64.tar.gz 执行 vim /etc/profile 在末尾添加java环境变量(J ...
- Ubuntu14.04环境下Samba报错排错过程
排错的方法和思路非常重要,日志非常非常非常非常重要!!! 搭建好Samba之后,windos访问一直下面这个错误,然后傻逼一样一直百度百度,一弄又是几天,但是经过自己一步一步的排错,弄成功之后,那心情 ...
随机推荐
- 配置中心Client端
配置中心Client端 1.在Order工程中的Order-Server模块的pom.xml中增加 <dependency> <groupId>org.springframew ...
- java 多线程详解
一.重点 重点: 1.创建和启动线程 2.实现线程调度 3.实现线程同步 4.实现线程通信 1.为什么要学习多线程? 当多个人访问电脑上同一资源的时候,要用到多线程,让每个人感觉很多电脑同时为多个人服 ...
- hanlp在Python环境中的安装失败后的解决方法
Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用.有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的解 ...
- java强制删除文件机制
//启动资源强制回收机制 System.gc(); 然后就可以删除了
- ThreadingTCPServer 如何设置端口重用
一个典型的TCPServer的建立 #ThreadingTCPServer从ThreadingMixIn和TCPServer继承 #class ThreadingTCPServer(Threading ...
- .net 4.0 程序遇到 停止工作 appcrash ,kernelbase.dll 等提示
经测试,删除*.exe.config 中 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v ...
- 关于Nginx配置性能优化
基本的 (优化过的)配置 将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置.在服务器的/etc/nginx目录中找到nginx.conf. 首先,我们将谈论一些全局设置,然 ...
- STL基础--基本介绍
为什么要使用C++标准库 /* * 为什么使用C++标准库: * 1. 代码重用,不用重新造轮子 * 2. 效率(快速,且使用更少的资源). 现代C++编译器经常对C++标准库的代码有优化 * 3. ...
- go get golang.org/x 包失败解决方法
由于墙的原因,国内使用 go get安装golang 官方包可能会失败 解决方法 方法1 [不需要FQ] Win10下相关配置: GOPATH : E:\go 安装记录: E:\>go get ...
- chrome 抓包的小功能--preserve log (记录页面跳转后,所有的抓包记录)
1.记录页面跳转后,所有的抓包记录,勾上