Suricata 是一款开源的网络威胁检测引擎(IDS/IPS/NSM),由 OISF(Open Information Security Foundation)开发和维护。它可以执行入侵检测(IDS)、入侵防御(IPS)和网络安全监控(NSM),并提供强大的日志记录和分析能力。
Suricata 作为一款高性能的开源网络分析和威胁检测软件,因其优异表现,已被大多数组织或企业使用。
GitHub开源地址:https://github.com/OISF/suricata
官网链接:https://suricata.io
功能特点多线程设计:Suricata 采用多线程设计,能够充分利用多核处理器,提高检测性能和效率。协议解析:支持解析多种网络协议,包括 HTTP、TLS、TCP、UDP、ICMP、SMB、FTP、DNS 等,提供深度协议解析和检测。文件提取与分析:能够从网络流量中提取文件,并对其进行进一步分析,如恶意软件检测和文件特征分析。基于规则的检测:兼容 Snort 规则格式,用户可以编写自定义规则以检测特定的威胁和攻击模式。集成威胁情报:支持集成多种威胁情报源,提高对已知威胁的检测能力。网络流量监控:提供全面的网络流量监控功能,能够记录和分析所有网络通信数据。高效日志记录:支持 JSON、EVE、PCAP 等多种日志格式,方便与 SIEM 系统集成。可扩展性:支持插件和扩展,用户可以根据需要扩展 Suricata 的功能。适用场景企业网络安全:部署 Suricata 以实时监控企业网络流量,检测并响应潜在的安全威胁。安全运营中心(SOC):Suricata 提供详细的网络流量日志和事件数据,支持 SOC 团队进行深入的安全分析和事件响应。入侵检测与防御:作为 IDS/IPS 系统,Suricata 能够检测并阻止恶意活动,保护网络安全。合规性审核:通过记录和分析网络流量,帮助企业满足各种合规性要求,如 PCI DSS 和 GDPR。威胁情报集成:与威胁情报源集成,提高对已知威胁的检测能力,增强整体安全态势感知。部署安装//以CentOS安装为例//更新系统并安装依赖sudo yum updatesudo yum install -y software-properties-commonsudo add-apt-repository ppa:oisf/suricata-stablesudo yum update//安装 Suricatasudo yum install -y suricata//配置 Suricatasudo vim /etc/suricata/suricata.yaml//启动 Suricatasudo suricata -c /etc/suricata/suricata.yaml -i ens160//查看 Suricata 状态和日志sudo systemctl status suricatasudo tail -f /var/log/suricata/suricata.log//维护更新sudo apt-get updatesudo apt-get upgrade suricata注意:安装过程详解或更多安装方式,请参考官方技术指导手册https://docs.suricata.io/en/latest/
使用选项
描述
-h
显示简要的使用概述。
-V
显示Suricata的版本信息。
-c <path>
配置文件的路径。
--include <path>
额外包含的配置文件路径,可以多次使用。
-T
测试配置文件。
-v
增加应用程序日志的详细程度,可以多次使用。
-r <path>
以离线模式(重放模式)运行,从PCAP文件读取数据。
--pcap-file-continuous
与-r选项一起使用,表示模式应保持运行直到中断。
--pcap-file-recursive
与-r选项一起使用,递归遍历目录中的子目录。
--pcap-file-delete
与-r选项一起使用,处理后删除PCAP文件。
-i <interface>
指定用于捕获数据包的网络接口,可以多次使用。
--pcap[=<device>]
以PCAP模式运行,如果未提供设备,则使用配置文件中的接口。
--af-packet[=<device>]
启用AF_PACKET捕获数据包。
--af-xdp[=<device>]
启用AF_XDP捕获数据包。
-q <queue id>
在NFQUEUE队列ID内联运行,可以多次使用。
-s <filename.rules>
设置包含签名的规则文件,与YAML中的规则一起加载。
-S <filename.rules>
设置包含签名的规则文件,独立于YAML中的规则加载。
-l <directory>
设置默认日志目录。如果YAML中已经设置了默认日志目录,则此选项将覆盖该设置。
-D
以守护进程模式运行。
--runmode <runmode>
设置运行模式,覆盖YAML中的设置。运行模式有:workers, autofp和single。
-F <bpf filter file>
使用文件中的BPF过滤器。
`-k [all
none]`
--user=<user>
初始化后设置进程用户,覆盖配置文件中的run-as部分。
--group=<group>
初始化后设置进程组,覆盖配置文件中的run-as部分。
--pidfile <file>
将进程ID写入文件,覆盖配置文件中的pid-file选项。
--init-errors-fatal
加载签名时遇到错误即退出。
`--strict-rule-keywords[=all
<keyword>
--disable-detection
禁用检测引擎。
--disable-hashing
禁用哈希算法(如md5, sha1, sha256)。禁用后将影响部分功能。
--dump-config
将配置文件内容输出到终端并退出。
--dump-features
输出Suricata模块的特性并退出。
--build-info
显示Suricata的构建信息。
--list-app-layer-protos
列出所有支持的应用层协议。
`--list-keywords=[all
csv
--list-runmodes
列出所有支持的运行模式。
--set <key>=<value>
设置配置值,覆盖基础配置参数。
--engine-analysis
打印引擎各部分的分析报告并退出。
--unix-socket=<file>
使用指定的Suricata Unix控制套接字文件。
--reject-dev=<device>
使用指定设备发送RST / ICMP错误数据包。
--pcap-buffer-size=<size>
设置PCAP缓冲区大小(0 - 2147483647)。
--netmap[=<device>]
启用使用NETMAP捕获数据包。
--pfring[=<device>]
启用PF_RING捕获数据包。
--pfring-cluster-id <id>
设置PF_RING集群ID。
--pfring-cluster-type <type>
设置PF_RING集群类型(cluster_round_robin, cluster_flow)。
-d <divert-port>
以IPFW divert模式运行。
--dag <device>
启用从DAG卡捕获数据包。
--napatech
启用使用Napatech Streams API捕获数据包。
--erf-in=<file>
以离线模式读取指定的ERF文件(Endace可扩展记录格式)。
--simulate-ips
在非IPS模式下模拟IPS模式。
-u
运行单元测试并退出,需要使用--enable-unittests配置Suricata。
-U, --unittest-filter=REGEX
选择要运行的单元测试。使用正则表达式。
--list-unittests
列出可用的单元测试。
--fatal-unittests
在单元测试错误时退出。
--unittests-coverage
显示单元测试覆盖率报告。
!!!【点赞】、【关注】不走丢^_^
!!!【点赞】、【关注】不走丢^_^