1. 程式人生 > >NTP服務放大攻擊的解決辦法

NTP服務放大攻擊的解決辦法

轉載:

什麼是NTP服務?

網路時間協議NTP(Network Time Protocol)是用於網際網路中時間同步的標準網際網路協議。NTP伺服器通過NTP服務向網路上的計算機或其他裝置提供標準的授時服務,以保證這些服務系統的時鐘能夠同步。通常NTP服務使用UDP 123埠提供標準服務。

什麼是NTP服務放大攻擊?

標準NTP 服務提供了一個 monlist查詢功能,也被稱為MON_GETLIST,該功能主要用於監控 NTP 伺服器的服務狀況,當用戶端向NTP服務提交monlist查詢時,NTP 伺服器會向查詢端返回與NTP 伺服器進行過時間同步的最後 600 個客戶端的 IP,響應包按照每 6 個 IP 進行分割,最多有 100 個響應包。由於NTP服務使用UDP協議,攻擊者可以偽造源發地址向NTP服務進行monlist查詢,這將導致NTP伺服器向被偽造的目標傳送大量的UDP資料包,理論上這種惡意導向的攻擊流量可以放大到偽造查詢流量的100倍。

如何檢視是否遭受NTP放大攻擊?

如果網路上檢測到大流量的UDP 123埠的資料,就可以確認正在遭受此類攻擊。

如何防範NTP放大攻擊?

1、linux系統升級辦法:

升級服務程式版本
將系統中的NTP服務升級到 ntpd 4.2.7p26 或之後的版本,因為 ntpd 4.2.7p26 版本後,服務預設是關閉monlist查詢功能的。

關閉服務的monlist查詢功能:
首先查詢問題主機的REQ_MON_GETLIST和REQ_MON_GETLIST_1請求是否可用。具體操作方法:

ntpq -c rv<localhost/remotehost>
ntpdc -c
sysinfo<localhost/remotehost> ntpdc -n -c monlist<localhost/remotehost>

如果上述功能可用,可嘗試通過修改ntp.conf檔案解決問題,具體操作建議是在上述配置檔案中增加下面的配置:

IPV4: restrict default kod nomodify notrap nopeer noquery

IPv6: restrict -6 default kod nomodify notrap nopeer noquery

/允許發起時間同步的IP,與本伺服器進行時間同步,但是不允許修改ntp服務資訊,也不允許查詢伺服器的狀態資訊(如monlist)

/

另外,還可以配置限制訪問命令,如:

restrict default noquery /*允許普通的請求者進行時間同步,但是不允許查詢ntp服務資訊*/

修改並儲存配置檔案之後,請重啟ntpd服務。

2、windows系統的解決辦法:

在ntp.conf配置檔案中增加(或修改)“disable monitor”選項,可以關閉現有NTP服務的monlist功能。修改並儲存配置檔案之後,請重啟ntpd服務。

3、網路防範:

在攻擊發生時,通過網路裝置的ACL丟棄UDP 123埠的資料包。

參考資訊: