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

news2024/11/8 21:51:06

Suricata安装配置文档

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

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

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

一、环境准备

1. 基础环境安装

	yum update
	yum 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/411285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程:线程组

线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象…

从4k到42k,软件测试工程师的涨薪史,给我看哭了

清明节一过,盲猜大家已经无心上班,在数着日子准备过五一,但一想到银行卡里的余额……瞬间心情就不美丽了。 最近,2023年高校毕业生就业调查显示,本科毕业月平均起薪为5825元。调查一出,便有很多同学表示自己…

命令行打jar包

命令行打jar包前言jar --helpcvfmMANIFEST.MF压入class文件前言 每一个java开发者运行第一个java项目时都知道项目通常被打成jar包,这些jar包是由IDE工具打的,知其然不知其所以然。 jar --help 用help命令打印jar支持的所有参数,不做过多解…

【GPT开发】人人都能用ChatGPT4.0做Avatar虚拟人直播

0 前言 最近朋友圈以及身边很多朋友都在研究GPT开发,做了各种各样的小工具小Demo,AI工具用起来是真的香!在他们的影响下,我也继续捣鼓GPT Demo,希望更多的开发者加入一起多多交流。 上一篇结合即时通 IM SDK捣鼓了一个…

2023mathorcup B题

已完成完整B题C题的模型代码,具体看文末 摘要 城市轨道交通系统作为城市出行的重要组成部分,对于缓解城市交通压力、提高出行效率具有重要意义。优化列车时刻表是提高运营效率、降低企业运营成本、提高乘客满意度的关键。本研究针对城市轨道交通列车时…

SAR ADC系列24:冗余设计

目录 冗余(Redundancy) 比较器出错:原因 比较器出错:后果 引入冗余:纠错 冗余:容错量 冗余:非二进制CDAC --sub二进制 冗余:提速 另一种冗余设计方法: 下面的关…

tab栏切换

效果&#xff1a; 当鼠标通过上边tab栏时&#xff0c;对应的元素变亮并切换到相应的菜单 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge…

英语学渣如何成功逆袭?聊聊我获得海外工作的真实经历

今天我想和大家分享一下作为一个英语学渣&#xff0c;我是如何成功找到一份海外工作的。希望能够给和我有相似经历的小伙伴们一些启示。以下是兴哥一个女粉丝成功逆袭的经历&#xff0c;大家可以一起旁观一下她的自白。 首先&#xff0c;让我简单介绍一下我的情况。我现在在芬…

【云原生概念和技术】1.2 云原生技术概括(上)

如果想了解或者学习云原生的友友们&#xff0c;欢迎订阅哦&#xff5e;&#x1f917;&#xff0c;目前一周三更&#xff0c;努力码字中&#x1f9d1;‍&#x1f4bb;…目前第一章是一些介绍和概念性的知识&#xff0c;可以先在脑海里有一个知识的轮廓&#xff0c;从第二章开始就…

window eNSP安装使用教程

1&#xff0c;需要的安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1U38OENqOeKXDN0-ipFTxwA?pwdsd12 提取码&#xff1a;sd12 安装eNSP 根据提示&#xff1a;需要先安装wireshark, VirtualBox, winPcap,所以我们接下来先依次安装上面三个安装包。 1&#x…

教育大数据总体解决方案(3)

为区县教育局提供标准制定、流程把控、实施监控、决策支持等服务&#xff0c;支持在全市统一的评价指标体系基础上&#xff0c;为各个区县提供个性化定制功能&#xff0c;各县能够在市统一评价指标体系内任意调整、增加二三级评价指标项&#xff0c;并可以调整对应指标项的分数…

逍遥自在学C语言 | 位运算符<<的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了~运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍<< 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿…

带你们偷瞄编程绕不开的C语言(二)

&#x1f929;&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;&#xff1a;这里是C专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c;希望可以帮到读者们哦。 &#x1f…

常见面试题之MQ篇

1.1.你们为什么选择了RabbitMQ而不是其它的MQ&#xff1f; 如图&#xff1a; 话术&#xff1a; kafka是以吞吐量高而闻名&#xff0c;不过其数据稳定性一般&#xff0c;而且无法保证消息有序性。我们公司的日志收集也有使用&#xff0c;业务模块中则使用的RabbitMQ。 阿里巴…

SQL——子查询

在SQL语言中&#xff0c;一个SELECT&#xff0d;FROM&#xff0d;WHERE语句 称为一个查询块。 子查询(或内层查询)是一个 SELECT 查询,它嵌套在 (1)SELECT、UPDATE、INSERT、DELETE 语句的 WHERE 、 (2)带GROUP BY 的 HAVING 子句内&#xff0c; (3)或其它子查询中 (与比较(6个…

JDBC MySQL ORM 实现登录功能(避免SQL注入)

目录 一、创建数据库表 二、创建Users类 三、登录类 四、存在的漏洞 &#xff08;1&#xff09;SQL注入 &#xff08;2&#xff09;分析 &#xff08;3&#xff09;补救 一、创建数据库表 CREATE DATABASE jdbcdatabase;CREATE TABLE IF NOT EXISTS user( uid INT PRIMARY KE…

windows 配置 libxml2

1、下载需要的包 1&#xff09;libconv LibIconv for Windows 2) libxml2 Releases GNOME / libxml2 GitLab 2、配置文件 将 libxml2 的包解压到一个目录&#xff0c;并在该目录下创建 include 和 lib 目录 将如下的 iconv.h 复制到新建的 include 目录 路径&#xff…

013 - C++引用

本期我们要讲的是 C 中的引用。 上期我们讨论了指针&#xff0c;如果你没有看过那期内容&#xff0c;你一定要回去看看&#xff0c;因为引用实际上只是指针的扩展&#xff0c;你至少需要在基本层面上理解指针是如何工作的&#xff0c;然后才能继续学习本期的内容&#xff0c;本…

UI Toolkit(1)

UI ToolkitUI Toolkit界面画布设置背景制作UI布局UI Toolkit界面 在Unity 2021LTS版本之后UI Toolkit也被内置在Unity中&#xff0c;Unity有意的想让UI Toolkit 成为UI的主要搭建方式&#xff0c;当然与UGUI相比还是有一定的差别。他们各有有点&#xff0c;这次我们就开始介绍…

【Homebrew】MacBook的第二个AppStore

英文官网&#xff1a;Homebrew — The Missing Package Manager for macOS (or Linux) 中文官网&#xff1a;macOS&#xff08;或 Linux&#xff09;缺失的软件包的管理器 — Homebrew 1 简介 Homebrew 由开发者 Max Howell 开发&#xff0c;并基于 BSD 开源&#xff0c;是一…