阿里雲——如何預防或避免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)是標準的網絡時間同步協議,它採用層次化時間分佈模型。網絡體系結構主要包括主時間服務器、從時間服務器和客戶機,主時間服務器位於根節點,負責與高精度時間源進行同步,為其他節點提供時間服務,各客戶端由從時間服務器經主服務器獲得時間同步。

適用於

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