You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Suricata规则仅允许特定域名的UDP 123(NTP)流量?

实现Suricata仅允许特定域名的NTP流量配置

可以实现这个需求,但要注意:NTP(UDP 123)是无状态的传输层协议,流量本身不包含域名信息,所以需要通过关联DNS响应来标记目标IP,再基于标记的IP放行NTP流量。

配置步骤

  1. 确保Suricata启用DNS解析与日志
    检查suricata.yaml配置文件,确认DNS协议已启用:

    app-layer:
      protocols:
        dns:
          enabled: yes
          detection-enabled: yes
    

    这一步是为了让Suricata能够解析并识别DNS响应中的域名对应IP。

  2. 编写DNS标记规则
    添加规则标记time.aws.com对应的DNS响应IP,后续NTP规则会基于这个标记放行流量:

    alert dns any any -> any any (msg:"Mark DNS response for time.aws.com"; dns.resp.name; content:"time.aws.com"; nocase; flowbits:set,ntp_allowed_ip; sid:4002; rev:1;)
    

    这条规则会在Suricata捕获到time.aws.com的DNS响应时,设置一个名为ntp_allowed_ip的flowbit标记。

  3. 修改原NTP放行规则
    更新你现有的pass规则,添加flowbit检查,仅放行带有标记的IP的NTP流量:

    pass ntp $HOME_NET any -> $EXTERNAL_NET 123 (msg:"Allow NTP from time.aws.com"; flowbits:isset,ntp_allowed_ip; sid:4001; rev:2;)
    
  4. 添加未授权NTP流量拦截规则(可选但推荐)
    如果需要拒绝所有其他来源的NTP流量,添加以下drop规则(注意:这条规则要放在pass规则之后,因为Suricata按规则顺序匹配):

    drop ntp $HOME_NET any -> $EXTERNAL_NET 123 (msg:"Block unauthorized NTP traffic"; sid:4003; rev:1;)
    

关键说明

  • 必须确保Suricata能捕获到DNS流量(比如将DNS流量镜像到Suricata监听的网络接口),否则无法完成域名与IP的关联。
  • 由于time.aws.com的IP可能动态变化,这种基于DNS响应的动态标记方式比硬编码IP更灵活。
  • 规则顺序很重要:pass规则要优先于drop规则执行,否则合法流量会被误拦截。

内容的提问来源于stack exchange,提问作者Arun Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:11:08