技术支持

为您提供7*24小时在线技术支持、安全技术专家、行业资深安全顾问服务。400-888-1688

网络安全相关

您当前位置首页 > 技术支持 > 网络安全相关

Ubuntu 24.04Suricata/Snort入侵检测系统配置与网络安全监控

入侵检测系统(IDS)和入侵防御系统(IPS)是企业网络安全纵深防御体系中的重要组成部分。Suricata作为新一代高性能IDS/IPS引擎,支持多线程处理、硬件加速和丰富的协议解析能力。本文以Ubuntu 24.04为例,详细介绍Suricata的安装配置、规则管理和告警分析。

一、IDS/IPS基础知识

入侵检测系统通过监控网络流量,基于特征签名和异常行为分析识别潜在的攻击行为。IDS被动监听流量并告警,IPS则能主动阻断攻击流量。Suricata支持三种工作模式:内联模式(IPS)、被动模式(IDS)和离线PCAP分析模式。部署位置通常在网络边界或核心交换机旁路。

二、安装Suricata

# Ubuntu/Debian安装
apt update && apt install -y suricata

# CentOS/RHEL安装
yum install -y epel-release
yum install -y suricata

# 验证安装版本
suricata --version

# 配置网络接口
# /etc/default/suricata
LISTENMODE=af-packet
IFACE=eth0

# 启动服务
systemctl start suricata
systemctl enable suricata

三、基础配置文件

# /etc/suricata/suricata.yaml 关键配置
vars:
  address-groups:
    HOME_NET: "[192.168.0.0/16,10.0.0.0/8]"
    EXTERNAL_NET: "!$HOME_NET"
    HTTP_SERVERS: "$HOME_NET"
    SMTP_SERVERS: "$HOME_NET"
    DNS_SERVERS: "$HOME_NET"

af-packet:
  - interface: eth0
    cluster-id: 99
    cluster-type: cluster_flow
    defrag: yes
    use-mmap: yes
    tpacket-v3: yes

# 规则文件路径
default-rule-path: /etc/suricata/rules
rule-files:
  - emerging-threats.rules
  - emerging-exploit.rules
  - emerging-scan.rules

# 输出配置
outputs:
  - eve-log:
      enabled: yes
      filetype: regular
      filename: eve.json
      types:
        - alert
        - http
        - dns
        - tls

四、更新检测规则

# 使用suricata-update工具更新规则
suricata-update

# 更新Emerging Threats规则集
suricata-update enable-source et/open
suricata-update enable-source ptm/dan

# 更新全部规则并重新加载
suricata-update && systemctl reload suricata

# 查看已加载规则数量
suricata --dump-rules | wc -l

# 指定自定义规则
suricata-update --local /etc/suricata/rules/local.rules

# 定期自动更新(crontab)
0 */6 * * * /usr/bin/suricata-update && /usr/bin/systemctl reload suricata

五、创建自定义检测规则

# /etc/suricata/rules/local.rules

# 检测SSH暴力破解(同一源IP多次连接)
alert tcp $EXTERNAL_NET any -> $HOME_NET 22     (msg:"SSH Brute Force Attempt"; flow:to_server;      detection_filter:track by_src, count 10, seconds 60;      sid:1000001; rev:1;)

# 检测端口扫描(多个目标端口连续访问)
alert tcp $EXTERNAL_NET any -> $HOME_NET any     (msg:"Port Scan Detected"; flow:to_server;      threshold:type both, track by_src, count 20, seconds 10;      sid:1000002; rev:1;)

# 检测域名请求可疑顶级域
alert dns $HOME_NET any -> any any     (msg:"Suspicious .xyz Domain Query"; dns.query; content:".xyz";      sid:1000003; rev:1;)

# 检测SQL注入尝试
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any     (msg:"SQL Injection Attempt"; flow:to_server,established;      content:"union"; http_uri; nocase;      content:"select"; http_uri; nocase; distance:0;      sid:1000004; rev:1;)

六、Suricata与ELK集成

将Suricata的eve.json日志通过Filebeat发送到Elasticsearch,使用Kibana创建可视化安全告警仪表板。配置Logstash过滤和丰富Suricata告警数据(地理位置、威胁情报匹配)。告警严重等级可配置为:高风险(暴力破解、漏洞利用)即时通知,中风险(扫描探测)日报汇总,低风险(信息收集)周报统计。

七、IPS模式配置

# 切换到IPS模式需要使用NFQUEUE
# 1. 配置iptables将流量转到NFQUEUE
iptables -I FORWARD -j NFQUEUE --queue-num 0
iptables -I INPUT -j NFQUEUE --queue-num 0

# 2. suricata.yaml配置IPS模式
af-packet:
  - interface: eth0
    cluster-id: 99
    cluster-type: cluster_flow
    defrag: yes
    mode: inline  # 开启内联模式

# 3. 在规则中启用drop操作
drop tcp $EXTERNAL_NET any -> $HOME_NET 22     (msg:"Block SSH Brute Force"; flow:to_server;      detection_filter:track by_src, count 10, seconds 60;      sid:1000050; rev:1;)

八、性能调优与基准测试

# Suricata性能调优参数
# /etc/suricata/suricata.yaml

# 启用多线程处理
threading:
  set-cpu-affinity: yes
  detect-thread-soft-limit: 8
  receive-threads: 4

# 启用流处理优化
flow:
  memcap: 512MB
  hash-size: 65536
  emergency-recovery: 30

# 启用应用层解析器
app-layer:
  protocols:
    http:
      enabled: yes
      memcap: 256MB
    tls:
      enabled: yes
    smtp:
      enabled: yes

# 性能测试
suricata --benchmark -c /etc/suricata/suricata.yaml

九、告警分析与应急响应

SOC安全运营团队应建立Suricata告警的标准化处理流程:告警确认(关联多个检测源排除误报)、严重程度评定(高危/中危/低危)、响应措施(封禁IP/隔离主机/更新规则)、事后复盘(根因分析/规则优化)。建议每日审查高危告警,每周分析告警趋势,及时发现新的攻击模式。

十、安全增强与最佳实践

生产环境部署Suricata的推荐做法:使用专用硬件或高性能云服务器承载Suricata负载、配置多网卡分离管理口和检测口、部署高可用主备模式、启用TLS流量解密检测恶意加密流量、集成威胁情报源(AlienVault OTX、MISP)提升检测准确率、定期审计规则命中率和误报率。

十一、威胁情报集成与自动化响应

将外部威胁情报(AlienVault OTX、MISP、AbuseIPDB)集成到Suricata中可以提升对新威胁的检测能力。通过suricata-update脚本自动下载威胁情报规则,配置定期更新(建议每6小时)。当Suricata检测到高威胁告警时,通过自动化脚本调用防火墙API封禁攻击源IP,结合SOAR平台实现检测到响应闭环。

十二、IDS负载均衡部署架构

在高速网络环境中单台Suricata可能无法处理全部流量,需要部署多台Suricata集群实现负载均衡。使用AF_PACKET集群模式或PF_RING分发流量到多台检测节点,搭建ELK或OpenSearch集群统一分析告警。配置SSH隧道或消息队列(Kafka/NATS)传输告警数据,使用saltstack或ansible统一管理多个检测节点的规则和配置。

十三、安全告警分级响应机制

建立明确的告警分级响应机制,将Suricata产生的告警按严重程度分为三级:一级告警(高危)如漏洞利用、恶意软件通信需要立即响应,5分钟内确认告警真实性并执行封禁操作;二级告警(中危)如扫描探测、异常登录需在30分钟内分析确认;三级告警(低危)如信息收集、DNS查询异常汇总到日报处理。制定标准化的告警处理SOP响应模板,减少安全事件响应时间。

安全告警处理完毕后必须进行复盘分析,总结告警的根本原因和改进措施。持续优化检测规则降低误报率提高告警质量,让安全团队集中精力处理真正的威胁而非噪音。定期评估告警处理效率统计平均响应时间(MTTR)和改进效果。

这条帮助是否解决了您的问题? 已解决 未解决

安全合格的云服务,让您的业务轻松上云!

立即选购
https://affim.baidu.com/unique_50626027/chat?siteId=21806899&userId=50626027&siteToken=f4b13c0dda3b403b51fd8811d5a360c7