suricata安装与配置

一、功能介绍

1、概述

suricata来源于经典的nids系统snort,是一套基于网络流量的威胁检测引擎,整合了ids,ips,network security monitoring(NSM)和PCAP processing等功能。

2、IDS功能

通过监听网卡流量并匹配规则引擎进行入侵实时监测和预警,检测手段上也和Wazuh比较类似。

3、IPS功能

与Wazuh的主动响应功能并不完全一样,IPS功能并不需要对防火墙进行调用,而是直接通过流量引入iptables队列中,再根据特征进行检测,满足规则的流量会直接被Suricata丢弃或拒绝,导致整个流量根本无法到达目标服务器。而Wazuh的主动响应机制则是在攻击行为已经发生或正在发生的情况下,通过日志信息进行检测,再调用iptables或firewall-cmd进行处理,实时性和准确性方面相对于suricata更延后一些。

4、支持的协议

Suricata来源于Snort,但是比Snort更加实用也增强了更多的功能,同时,Snort支持传输层和网络层协议,而Suricata还支持应用层的协议进行解析和规则匹配。

二、安装suricata

1、源码安装 (不推荐)

sudo 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 PyYAML libmaxminddb-devel rustc cargo \
  lz4-devel
  
#下载安装包
wget https://www.openinfosecfoundation.org/download/suricata-6.0.0.tar.gz
tar -xvf suricata-6.0.0.tar.gz
cd  suricata-6.0.0

#编译安装
make
sudo make install
sudo ldconfig

#自动安装配置文件
make install-conf 
make install-rules
make install-full

2、二进制安装

centos7安装

yum install epel-release yum-plugin-copr
yum copr enable @oisf/suricata-6.0
yum install suricata
​
#安装完成后,对应路径如下:
suricata主程序路径:/usr/sbin/suricata
suricata核心配置目录:/etc/suricata/
suricata日志目录:/var/log/suricata/
suricata附属程序目录:/usr/bin
​
#日志目录下得4个文件的功能
eve.json:以json格式存储预警信息或附加信息
fast.log:预警核心文件,只用于存储警告信息,非结构话数据
stat.log:suricata的统计信息
suricata.log:suricata程序的运行日志

安装完可以执行如下命令进行验证是否安装成功

/usr/sbin/suricata --build-info
​
suricata -V

三、修改配置运行

直接编辑/etc/suricata/suricata.yaml

vars:
  # more specific is better for alert accuracy and performance
  address-groups:
    #HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
    #HOME_NET: "[192.168.0.0/16]"
    #HOME_NET: "[10.0.0.0/8]"
    #HOME_NET: "[172.16.0.0/12]"
    #HOME_NET: "any"
    HOME_NET: "[192.168.100.0/24]"      #这里改成自己ip对应网段
​
    #EXTERNAL_NET: "!$HOME_NET"
    EXTERNAL_NET: "any"

运行suricata,

cd /etc/suricata && suricata -c suricata.yaml -i ens33(这里网卡根据实际情况修改)

首次运行必定会报错误:

30/8/2023 -- 10:32:09 - <Info> - Configuration node 'HOME_NET' redefined.
30/8/2023 -- 10:32:09 - <Notice> - This is Suricata version 6.0.13 RELEASE running in SYSTEM mode
30/8/2023 -- 10:32:09 - <Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/suricata.rules
30/8/2023 -- 10:32:09 - <Warning> - [ERRCODE: SC_ERR_NO_RULES_LOADED(43)] - 1 rule files specified, but no rules were loaded!
30/8/2023 -- 10:32:09 - <Notice> - all 4 packet processing threads, 4 management threads initialized, engine started.

要在/etc/suricata/suricata.yaml修改如下配置,并创建一个suricata.rules

default-rule-path: /etc/suricata/rules
​
rule-files:
  - suricata.rules

还要在suricata.rules中编写一条规则,不然还是会报错

alert http any any <> $HOME_NET 80 (msg:"web服务器出现404状态码"; content: "404"; http_stat_code; sid:561001;)

这条规则是如果访问目标网站响应404则发生告警

四、安装XAMPP进行规则测试

详解Xampp和wordpress在Centos7上的搭建与使用 - Python技术站

1. 下载和安装XAMPP

首先,我们需要下载并安装XAMPP。可以在官方网站 XAMPP Installers and Downloads for Apache Friends 上下载最新版本的XAMPP。下载完成后,使用以下命令进行安装:

$ chmod +x xampp-linux-x64-7.X.X-X-installer.run
$ sudo ./xampp-linux-x64-7.X.X-X-installer.run

2. 启动XAMPP

安装完成后,可以使用以下命令启动XAMPP:

$ sudo /opt/lampp/lampp start

后台启动suricata

suricata -c suricata.yaml -i ens33 -D

在浏览器中访问主机ip对应的网站/phpinfo这个不存在的页面,在另一个终端窗口查看日志,可以看到规则生效。

补充:

我们还可以通过eve.json文件中查看告警信息,相对于fast.log多了很多其他信息,有很多其实不用关心,可以用以下命令进行过滤:

cat /var/log/suricata/eve.json |grep 'event_type":"alert'

如果不想要eve.json产生过多无用信息,可以在suricata.yaml的配置文件中对各种类型的输出进行禁用,如:

在核心配置文件中,找到outputs->eve-log->types节点
- anomaly:
  enabled: no
- http:
  extended: no
​
可以大量减少无效信息,当然也取决于我们是否需要对此类日志进行收集

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【分享】小型园区组网场景

小型园区组网图 在小型园区中&#xff0c;S2700&S3700通常部署在网络的接入层&#xff0c;S5700&S6700通常部署在网络的核心&#xff0c;出口路由器一般选用AR系列路由器。 接入交换机与核心交换机通过Eth-Trunk组网保证可靠性。 每个部门业务划分到一个VLAN中&#…

如何高效进行测试用例评审

1.用例评审的目的 为了减少测试人员执行阶段做无效工作&#xff0c;执行无效case&#xff0c;提交无效缺陷&#xff08;可以友情提醒研发同学&#xff0c;讲到自己负责的相关模块时&#xff0c;注意下是否存在异议点&#xff09;为了避免三方&#xff08;产品、研发、测试&…

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式&#xff0c;发现分子都是1&#xff0c;分母从1~100&#xff0c;所以可以使用for循环产生1~100之间的数。 另一个问题是&#xff0c;如何产生正负交替的符号&#xff1f;很简单&#xff0c;这个符号本质上就是往每一项前面乘一个系数&#xff1a;一或者负一。所以只需…

【数据结构练习】单链表OJ题(二)

目录 一、相交链表二、环形链表1三、环形链表2四、链表分割五、复制带随机指针的链表 一、相交链表 题目&#xff1a; 示例&#xff1a; 注意&#xff1a;不能根据节点的值来比较是否相交&#xff0c;而是根据节点在内存中是否指向相同的位置。 例如以上图&#xff1a; 链表…

无涯教程-Android - RadioButton函数

RadioButton有两种状态:选中或未选中,这允许用户从一组中选择一个选项。 Radio Button 示例 本示例将带您完成一些简单的步骤,以展示如何使用Linear Layout和RadioButton创建自己的Android应用程序。 以下是修改后的主要Activity文件 src/MainActivity.java 的内容。 packa…

数学建模:数据的预处理

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 数据预处理数据变换数据清洗缺失值处理异常值处理 数据预处理 数据变换 常见的数据变换的方式&#xff1a;通过某些简单的函数进行数据变换。 x ′ x 2 x ′ x x ′ log ⁡ ( x ) ∇ f ( x k )…

MATLAB中mod函数转化为C语言

背景 有项目算法使用matlab中mod函数进行运算&#xff0c;这里需要将转化为C语言&#xff0c;从而模拟算法运行&#xff0c;将算法移植到qt。 MATLAB中mod简单介绍 语法 b mod(a,m) 说明 b mod(a,m) 返回 a 除以 m 后的余数&#xff0c;其中 a 是被除数&#xff0c;m 是…

储能辅助电力系统调峰的容量需求研究(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《储能辅助电力系统调峰的容量需求研究》&#xff0c;是一个很常规很经典的matlab优化代码&#xff0c;主要是对火电、风电和储能等电力设备主体进行优化调度&#xff0c;在调峰能力达不到时采…

Java 面试 - Redis

Redis Redis 是基于键值对的非关系型数据库。Redis 拥有string、hash、list、set、zset等多种数据结构, redis具有惊人的读写性能, 其优秀的持久化机制是的它在断电和机械故障时也不会发生数据丢失, 可以用于热点数据存放, 还提供了键过期、发布订阅、食物、流水线、LUA脚本等多…

创建聊天机器人:产品专属ChatGPT智能问答机器人,可添加任意网站

ChatGPT智能问答机器人可以广泛应用于各种SaaS产品&#xff0c;通过创建聊天机器人可以快速反馈用户&#xff0c;并且针对性的提供解决方案&#xff0c;非常高效的完成客户问答反馈。 聊天机器人是生活中常见的一种交互方式&#xff0c;机器人根据用户输入的关键字&#xff0c;…

ChatGPT~Error1015You are being rate limited

目录 问题背景 问题的原因 下来说说解决方案 总结 问题背景 今天使用Chatgpt的时候突然出现"You are being rate limited"的错误提示。 问题的原因 小问题了&#xff0c;又不是第一次被弄出来了&#xff0c;莫慌。 让我们先看看Chatgpt自己是怎么解释这个问题…

JVM类加载器

一、类与类加载器 类加载器虽然只用于实现类的加载动作&#xff0c;但它在Java程序中起到的作用却远超类加载阶段。对于 任意一个类&#xff0c;都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性&#xff0c;每一个类加载器&#xff0c;都拥有一个独…

win | wireshark | 在win上跑lua脚本 解析数据包

前提说明&#xff1a;之前是在linux 系统上配置的&#xff0c;然后现在 在配置lua 脚本 &#xff0c;然后 分析指定协议 的 数据包 其实流程也比较简单&#xff0c;但 逻辑需要缕清来 首先要把你 预先准备的 xxx.lua 文件放到wireshark 的安装文件中&#xff0c;&#xff08;我…

并发编程的故事——共享模式之无锁

共享模式之无锁 文章目录 共享模式之无锁一、提出问题二、CAS和volatile三、原子整数四、原子引用五、原子数组六、原子更新器七、原子累加器八、unsafe 一、提出问题 关于对共享变量修改的多线程问题其实就是指令交错问题导致取值的时机相同&#xff0c;最后修改之后以最后一…

ChatGPT 制作可视化柱形图突出显示第1名与最后1名

对比分析柱形图的用法。在图表中显示最大值与最小值。 像这样的动态图表的展示只需要给ChatGPT,AIGC,OpenAI 发送一个指令就可以了, 人工智能会快速的写出HTML与JS代码来实现。 请使用HTML,JS,Echarts完成一个对比分析柱形图,在图表中突出显示第1名和最后1名用单独一种不…

数据结构--树4.2.2(二叉树--遍历)

目录 一、二叉树的建立 二、二叉树的遍历算法 一、二叉树的建立 CreateBitree(Bitree *t){char c;scanf("%c",&c);if( c){*t NULL;}else{*t(Bitnode*)malloc(sizeof(Bitnode));(*t)->data c;CreateBitree(&(*t)->lchild);CreateBitree(&(*t)-&…

C++ 手写实现类似lower_bound和upper_bound的二分功能

目录 lower_bound和upper_bound介绍手动实现类似的二分效果lower_boundupper_bound另一种常见的二分形式 对lower_bound函数使用lamda函数 lower_bound和upper_bound介绍 lower_bound函数的作用是查找范围内第一个大于等于目标元素的元素迭代器/指针 数组的简单使用&#xff…

vscode 与 C++

序 具体流程的话&#xff0c;官方文档里都有的&#xff1a;C programming with Visual Studio Code 浏览器下载一个mingw64&#xff0c;解压&#xff0c;配置环境变量vscode里安装c相关的插件没了 第一步只看文字&#xff0c;可能有点抽象&#xff0c;相关视频&#xff1a; …

科技云报道:AI+云计算共生共长,能否解锁下一个高增长空间?

科技云报道原创。 在过去近一年的时间里&#xff0c;AI大模型从最初的框架构建&#xff0c;逐步走到落地阶段。 然而&#xff0c;随着AI大模型深入到千行百业中&#xff0c;市场开始意识到通用大模型虽然功能强大&#xff0c;但似乎并不能完全满足不同企业的个性化需求。 大…

Three.js后处理后物体表面出现条纹

初始化 WebGLRenderer 时简单启用 logarithmicDepthBuffer: true 解决了问题。 根据文档&#xff0c;启用可能会导致性能下降&#xff0c;因此请根据您的性能预算考虑使用它。 缩小相机的near和far 后处理对于深度精度非常敏感。大视锥体很快就会使此类 AO 通道变得无法使用 th…