suricata安装与配置

本文介绍了Suricata,一款基于网络流量的威胁检测引擎,详细讲解了其IDS和IPS功能,源码和二进制安装方法,以及如何配置规则和进行规则测试,包括使用XAMPP进行实战演练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、功能介绍

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
​
可以大量减少无效信息,当然也取决于我们是否需要对此类日志进行收集
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值