阿里云——如何预防或避免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)是标准的网络时间同步协议,它采用层次化时间分布模型。网络体系结构主要包括主时间服务器、从时间服务器和客户机,主时间服务器位于根节点,负责与高精度时间源进行同步,为其他节点提供时间服务,各客户端由从时间服务器经主服务器获得时间同步。

适用于

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章