Suricata安装配置文档

  • 一、环境准备
    • 1. 基础环境安装
    • 2. 安装基础组件
  • 二、Luajit部署
    • 1. LuaJIT的安装
    • 2. 需要更新动态库
  • 三、suricata部署
    • 1. 安装相关依赖
    • 2. 下载、编译并安装suricata
    • 3. 执行
    • 4. 安装其他组件
    • 5. 修改配置文件
    • 6. 启动测试
    • 7. 安装suricata-update
    • 8. 更新规则集
    • 9. 启动
  • 四、参考资料

后两章节:
Su+ELK实现网络监测(1)——Suricata安装与配置
Su+ELK实现网络监测(3)——实际应用配置

Suricata是一款基于TCP/IP协议栈解析与安全数据分析引擎:

  • 能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线PCAP处理,全面支持Snort规则;
  • Suricata使用强大而广泛的规则和签名语言检查网络流量,并具有强大的Lua脚本支持来检测复杂的威胁;
  • 使用标准的输入和输出格式(如yaml和json),与现有的siem、splunk、logstash/elasticsearch、kibana和其他数据库等工具的集成变得很容易;
  • 入侵检测规则更新活跃,具有较强的社区支持;

一、环境准备

1. 基础环境安装

 yum updateyum upgrade

2. 安装基础组件

yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel wget vim

二、Luajit部署

LuaJIT是采用C语言写的Lua代码的解释器,LuaJIT试图保留Lua的精髓–轻量级,高效和可扩展

1. LuaJIT的安装

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -zxf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5/
sudo make && make install

2. 需要更新动态库

对文件 /etc/ld.so.conf 进行修改,添加相应的路径 /usr/local/lib

vim /etc/ld.so.conf# 在该conf文件下,添加如下路径,保存退出/usr/local/lib
# 运行如下命令加载sudo ldconfig

三、suricata部署

1. 安装相关依赖

yum -y install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel epel-release lz4-devel rustc cargo libmaxminddb-devel

2. 下载、编译并安装suricata

wget https://www.openinfosecfoundation.org/download/suricata-6.0.2.tar.gz
tar -zxf suricata-6.0.2.tar.gz
cd suricata-6.0.2

编译命令, 注意,这里的默认参数尽量不要改,否则后面各种问题排查起来也是要命的

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-geoip --enable-luajit --with-libluajit-includes=/usr/local/include/luajit-2.0/ --with-libluajit-libraries=/usr/local/lib/ --with-libhs-includes=/usr/local/include/hs/ --with-libhs-libraries=/usr/local/lib/ --enable-profiling

可能会提示某些依赖包有需要重新安装,安装完再重新 ./configure上面内容进行编译
yum install -y libmaxminddb-devel
yum install -y epel-release
yum install -y rustc cargo

3. 执行

make && make install

执行中可能会出现如下报错:

原因是安装的suricata-6.0.2版本,rustc版本不能太高,所以把rustc降级到1.50.0版本使用,解决方法:
参考自:https://blog.csdn.net/isxiaole/article/details/123282267

yum -y remove cargo.x86_64
curl https://sh.rustup.rs -sSf | sh     # 等待加载,选 yes,选1(输入默认项1,完成余下的安装)
source $HOME/.cargo/env
rustup install 1.52.0
export RUSTUP_TOOLCHAIN=1.52.0

完成上述版本降级后,再重新 ./configure编译第二步的命令,成功后接着执行make && make install

4. 安装其他组件

# 这里执行这一个就够了,它相当于安装:configuration、rules、provide等
make install-full               # 取代了make install-conf、make install-rules

如果出现如下规则报错,表示你的规则还没有下来,编译时会找不到规则,所以报错 暂时跳过,后面会去更新规则的,继续下一步即可

5. 修改配置文件

cd /etc/suricata/
cp suricata.yaml suricata.yaml.bak
vim suricata.yaml

》启用网段、服务、端口:

  • HOME_NET选项,需要自行确定哪些网段或特定网址可用来监控

》配置日志输出器(default-log-dir: /var/log/suricata/,也可以修改为其他地方)

  • 建议修改到/var/data/suricata/ (需要创建该目录:mkdir -p /var/data/suricata)
  • suricata日志记录哪些信息,可参考:https://zhuanlan.zhihu.com/p/344571466


    stats.log文件统计所有的数据来源,占用存储,可关掉

》设置规则目录

  • var/lib/suricata/rules 是放置定期更改的规则位置,可以每天下载/更新规则集
  • rule-files # 用来选择启用哪些规则(默认只有suricata.rules文件)

6. 启动测试

suricata -T

如果启动测试,出现如下报错:

  • 报错一:

    则定位到前面的配置文件suricata.yaml中对应某行出现空格或者其他格式出错,因此需要回到对应的行中进行修改!

  • 报错二:
    suricata: error while loading shared libraries: libhtp.so.2: cannot open shared object file: No such file or directory
    那么重新执行 sudo ldconfig 命令(第二步已经安装好的Luajit)

  • 报错三:
    如果出现一大串错,比如:
    那就要先安装suricata-update 并 更新规则集(见下一步)

7. 安装suricata-update

pip install --upgrade suricata-update

若没有安装pip,先要安装pip才行

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py# 核验是否成功
which pip   # 查看安装路径
pip -V      # 查看版本号

若执行pip install --upgrade suricata-update,出现如下报错:

证明在安装pip的时候,pip包里已经包含suricata-update,也可以pip list看下是否真的包含,如果存在,可以直接执行下面第8步骤

也可参考:https://blog.csdn.net/u010469993/article/details/102623270 ,删除再重装suricata-update
cd到pip库目录,删除底层工具distutils安装自带的suricata_update包 rm -rf suricata_update-1.2.1-py2.7.egg-info

8. 更新规则集

suricata-update是官方更新的rule规则命令,更新的配置文件存放在 /var/lib/suricata/rules 中,文件为:classification.config和suricata.rules

  • suricata-update的一些使用简单介绍如下:
suricata-update update-sources                   # 更新规则源
suricata-update list-sources                    # 列出suricata-update支持的所有的规则源suricata-update enable-source et/open           # 启用某个规则集(我这边启用的是ET的规则集)
suricata-update enable-source oisf/trafficid
suricata-update list-enabled-sources            # 把suricata-update这边能用的规则全部开启suricata-update disable-source et/pro          # 关闭某个规则源
suricata-update remove-source et/pro            # 删除某个规则源

安装完suricata-update后,根据需要开启 特定/全部 规则(开启规则命令如上中间三条),规则开启完成后才能执行下面的更新规则集

  • 更新规则集
    suricata-update

  • 测试
    suricata -T

    如果返回如下,则表示测试成功:

9. 启动

suricata -c suricata.yaml -i eth0            # eth0为网卡的名称  该命令需要在suricata文件夹下允许才行
/usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0

如果返回如下,则表示启动成功:

  • 若需要停止suricata,运行如下命令即可:
ps -ef | grep suricata|grep -v grep      # 查看suricata的执行进程
kill -9 id                              # 杀死suricata的进程id
rm -f /var/run/suricata.pid             # 文件锁,防止重复启动

四、参考资料

  • 官方文档:Suricata User Guide — Suricata 6.0.0 documentation
  • 官方中文文档:7.1. 使用Suricata更新进行规则管理 — Suricata 7.0.0-dev 文档 (osgeo.cn)
  • 官方中文文档:10.1. Suricata.yaml — Suricata 7.0.0-dev 文档 (osgeo.cn)
  • Suricata+ELK集群监控办公网流量CSDN博客
  • 使用Suricata和ELK进行流量检测 - 知乎 (zhihu.com)
  • Suricata规则介绍、以及使用suricata-update做规则管理 - 知乎 (zhihu.com)
  • Suricata配置文件suricata.yaml说明 - 简书 (jianshu.com)

Su+ELK实现网络监测(1)——Suricata安装与配置相关推荐

  1. 关于bacula网络备份软件的安装以及配置1

    最近在网上看到有一个强大的网络备份软件bacula,于是就找了一些资料来看,发现网上的资料寥寥无几啊,凭着自己的理解就在本地环境下面进行了测试,最后终于实现了网络的备份以及还原功能,当然此文章也有不足 ...

  2. iOS网络编程--ASIHTTPRequest框架安装和配置-图文解说

    ASIHTTPRequest框架是优秀的第三方Objective-C的HTTP框架,支持Mac OS X和iOS下的HTTP开发.技术支持网站是http://allseeing-i.com/ASIHT ...

  3. [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

    步骤/详情 一:下载 注意的是下载版本为免安装版.下载地址: https://www.elastic.co/cn/downloads/elasticsearch 笔者由于当前用的是JDK8选择的是 7 ...

  4. 关于bacula网络备份软件的安装以及配置3

    现在去看看备份路径下面是否生成了备份文件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

  5. sqlserver 安装共享功能什么意思_网络多功能电力仪表安装要注意什么

    ACR 系列网络多功能电力仪表,是针对电力系统.工矿企业.公用设施.智能大厦的电力监控需求而设计的智能表,它集成电力参数的测量(如单相或者三相的电流.电压.有功功率.无功功率.视在功率.频率.功率因数 ...

  6. 网络监测是如何工作的?

    网络监测是如何工作的? 网络监测(Website Monitoring,又名Network Monitoring),顾名思义,是在网络上对特定的目标进行监测的一种服务. 被监测的一般是在网络上需要长时 ...

  7. Windows CE下的网络监测工具(上)

    作者:马宁 最近被一个软件网络连接的问题,折腾得死去活来.问题本身不复杂,主要是网络设置不同造成的,在这里不多说了.在调试过程中,用到了Windows CE下的几个网络监测工具,才了解到Windows ...

  8. ELK —— Metricbeat 传送器 监测、Filebeat 传送器

    ELK -- Metricbeat 监测. Filebeat 传送器 文章目录 ELK -- Metricbeat 监测. Filebeat 传送器 Metricbeat 监测 简介 Metricbe ...

  9. suricata匹配从入门到精通(一)----suricata安装配置及使用

    本文主要为即将进行CVE漏洞分析以及IDS规则编写的同事提供文档参考资料.文中所述过程均为本人安装使用过程,不能保证每一项配置均为最优配置,希望大家在使用过程中发现问题可以及时交流分享. Surica ...

最新文章

  1. mvc html的扩展,关于asp.net mvc 3:Razor无法正确呈现HtmlHelper扩展方法
  2. wfs方式获取最短路径
  3. 这些让人看瞎了的设计!实力证明,数学才是世界的最终boss!
  4. 思科服务器 vmware虚拟多少个hba卡,利用Cisco UCS 管理虚拟机网络(上)
  5. C#设计模式之9-装饰者模式
  6. PHP arrray_filter(), array_map()区别与应用
  7. VC中将bmp作为资源文件写入EXE或DLL,然后内部调用(转)
  8. Javascript备忘复习笔记2
  9. MyEclipse搭建SSH(Struts2+Spring2+Hibernate3)框架项目教程
  10. 根号2以及π的计算--关于无理数的畅想
  11. 用php表单写出梯形的面积,梯形面积
  12. 如何设计SEO关键字分析统计表
  13. UWP 制作汉堡菜单及添加滑动手势
  14. 在 Mac/win7 下上使用 Vagrant 打造本地开发环境
  15. 三维形体的数据结构(1)半边数据结构
  16. 朋友圈终于能斗表情包了,会发表情包您就多发点!
  17. VS code:代码出现蓝色波浪线,提示显示 xxxx: Unknown word.cSpell
  18. js如何实现复制功能
  19. 本地无需安装数据库,实现plsql远程连接数据库
  20. pycharm软件中去掉竖线的方法

热门文章

  1. socket编程---send函数recv函数详解
  2. C++使用 自定义函数 判断素数
  3. 【Linux操作系统】——网络配置与SSH远程
  4. 重新回到Fcitx5的怀抱
  5. 外卖餐饮管理系统开发源码
  6. 计算机导师招生,计算机学院2017年具备招生资格的硕士研究生导师一览表.DOC
  7. jq滚动小插件superslide2,的确是很强悍的
  8. php抓取搜狗图片,搜狗美图 API 接口请求调用
  9. 使用YOLOv5实现图片、视频的目标检测
  10. 剖析网页游戏前景 三大趋势或助其健康发展