阿里云首页

如何预防或避免NTP服务的DDoS攻击

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

当需要对外暴露NTP服务时,请参见本文内容,预防或避免NTP服务的DDoS攻击。

详细信息

NTP服务的DDoS攻击原理

NTP协议是基于UDP协议的服务器/客户端模型,由于UDP协议的无连接性(不像TCP协议具有三次握手过程)具有天然的不安全性缺陷,有些人正是利用NTP服务器的不安全性漏洞发起DDoS攻击。

伪造要“攻击对象”的IP地址向NTP服务器发送请求时钟同步请求的报文,为了增加攻击强度,发送的请求报文为Monlist请求报文。NTP协议包含一个Monlist功能,用于监控NTP服务器,NTP服务器响应Monlist指令后就会返回与其进行过时间同步的最近600个客户端的IP地址,响应包按照每6个IP进行分割,一个NTP Monlist请求最多会形成100个响应包,具有较强的流量放大能力。测试显示,当请求包的大小为234字节时,每个响应包为482字节,按照这个数据计算,放大的倍数是482*100/234=206倍,从而导致大流量阻塞网络,导致网络不通,无法提供服务。

NTP服务的DDoS防御方法

  • 使用DDoS防御产品,将入口异常流量进行清洗,正常流量和区分异常,将正常流量分发给服务器进行业务处理。详情请参见设置清洗阈值
  • 对UDP使用的123端口进行限制,且只允许NTP服务与固定IP进行通信,其他IP全部拒绝:
    说明:进行此操作时,请确认对你的业务无影响。
    • ECS实例:添加如下安全组策略,允许策略中的授权对象为您需要允许通信的IP地址。如何添加安全组,请参见添加安全组规则
    • 自建服务器:通过防火墙对UDP使用的123端口进行限制,只允许NTP服务与固定IP进行通信,其他IP全部拒绝。参考命令如下。
      iptables -I INPUT -p udp --dport 123 -j DROP
      iptables -I INPUT -s [$IP] -p udp --dport 123 -j ACCEPT
      注意:[$IP]为您需要允许通信的IP地址。
  • 关闭NTP服务器Monlist功能:
    1. 执行以下命令,在NTP配置文件中关闭Monlist功能的配置。
      echo "disable monitor" >> /etc/ntp.conf
    2. 执行以下命令,重启NTP服务。
      systemctl restart ntpd
  • 升级NTP服务版本至v4.2.7p26,此版本修复了Monlist功能的问题,升级包请参见NTP官方网站
  • 将带宽升级到足够大,硬性抵挡NTP服务的DDoS攻击产生的大流量攻击。详情请参见修改带宽
    说明:推荐优先考虑上述几种解决方案。

更多信息

NTP协议(Network Time Protocol)是标准的网络时间同步协议,它采用层次化时间分布模型。网络体系结构主要包括主时间服务器、从时间服务器和客户机,主时间服务器位于根节点,负责与高精度时间源进行同步,为其他节点提供时间服务,各客户端由从时间服务器经主服务器获得时间同步。

适用于

  • DDoS高防

首页 如何预防或避免NTP服务的DDoS攻击