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访问一直下面这个错误,然后傻逼一样一直百度百度,一弄又是几天,但是经过自己一步一步的排错,弄成功之后,那心情 ...
随机推荐
- Spark应用HanLP对中文语料进行文本挖掘--聚类详解教程
软件:IDEA2014.Maven.HanLP.JDK: 用到的知识:HanLP.Spark TF-IDF.Spark kmeans.Spark mapPartition; 用到的数据集:http:/ ...
- Linux shell 将字符串分割成数组
原文链接:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/ a="one,two,three,four& ...
- 多线程中的Lock小结
出处:http://www.cnblogs.com/DarrenChan/p/6528578.html#undefined 1.lock和synchronized的区别 1)Lock不是Java语言内 ...
- 排序算法<No.6>【插入排序】
算法,我在路上,将自己了解的算法内容全部梳理一遍! 今天介绍简单点的,插入排序. 首先,什么是插入排序,这个维基百科上有.个人的理解,就是将一个数插入到一个已经排好序的数列当中某个合适的位置,使得增加 ...
- 深入理解 JavaScript 中的函数
JavaScript函数也具有这些特性,但它们不仅仅是常规函数.JavaScript函数是对象.你可以查看我曾经写的关于JavaScript对象的文章,里面我提到几乎JavaScript中的所有一切都 ...
- 如何让classmethod只允许使用用类对象来调用
Django REST framework里面有这样一段代码,在网上查@classonlymethod的意思是使得classmethod只允许使用用类对象来调用 @classonlymethod de ...
- 代码从Polyline读取到的坐标和属性对话框显示的不一样?
属性窗口中查询的第一个点坐标: 程序输出的各个点坐标: 差这么多? 原来是坐标系的问题,程序查询到的是世界坐标,属性窗口中是当前ucs坐标 Document doc = Application.Doc ...
- Java ArrayList排序方法详解
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...
- 黄聪:C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
同样的代码,我尝试了很多次都没有成功.最后终于成功了,是因为我没有在正确的事件里面调用这段代码. private void InjectAlertBlocker() { HtmlElement hea ...
- 黄聪:PHP JSON_ENCODE 不转义中文汉字的方法
ios程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上很多,但是其实都是错误的,正确的方法是在json_enc ...