NTP服務被利用做流量攻擊以及檢測預防手段

2021-08-10 00:15:04 字數 3215 閱讀 1311

被攻擊伺服器相關配置:

ip:eth0: 172.28.9.2

eth1: 192.168.0.2

eth3: 外網ip

某一天發現這台web伺服器流量一直很高。

開始一直以為是web服務的流量很高,根本沒往ntp服務那方面想。

因為我設定ntp服務的時候就有考慮到安全問題。

檢測過程:

可以發現傳送流量非常大。

後面還用了nethogs和iptraf兩個流量分析軟體進行了分析。

nethogs是檢測程序的流量,但是檢測不到udp的流量,所以一開始也沒想到是ntp的引起的。因為ntp用的是123的udp埠。

iptraf是檢測連線到伺服器某個埠的流量

這裡需要注意了:預設執行iptraf在上面視窗中只會顯示tcp流量,而不會顯示udp流量,udp流量會在下面快速閃現。所以一開始也沒注意到是ntp引起的,因為udp流量沒排在上面。後面會講怎麼檢視udp流量。

可以先設定一下iptraf,開啟按服務名顯示,而不是顯示埠號,比較直觀。

#iptraf

configure

#iptraf -s eth3

這裡一定要加上-s,才能顯示udp流量

這樣就會看到ntp的流量非常高,從而可以判斷是ntp服務而引起的。

再用#ntpdc -n -c monlist 外網ip

能檢視到一堆ip同步過我的ntp服務。

查了一下ntp.conf,發現並沒有什麼不合理的地方。

ntp.conf

restrict default ignore

restrict 127.0.0.1

restrict -6 ::1

restrict 192.168.0.154

restrict 192.168.0.155

server 192.168.0.154

server 192.168.0.155

server 127.127.1.0

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

authenticate no

keys /etc/ntp/keys

只開放了上一級提供ntp服務的ip位址。

後來回憶了一下,以前的配置檔案沒有這麼嚴謹,所以當時我對這個配置檔案做了修改了。但是當時為了不影響業務,並沒有立即重啟服務。

所以這次我立即重啟ntp服務後,流量就恢復了正常。

注意:如果有外網ip的伺服器,有開ntp服務,restrict開放只能開放內網ip。

或者用iptables防火牆來做限制,比如拒絕從eth3外網訪問ntp服務。

配置完ntp後,可以執行

#ntpdc -n -c monlist 外網ip

來檢測,如果說超時,得不到資料,說明沒問題。

知識點:

什麼是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

ntpdc -c sysinfo

ntpdc -n -c monlist能查詢出同步過時間的主機

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

ipv4: restrict default ignore

ipv6: restrict -6 default ignore

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

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

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

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

2、windows系統的解決辦法:

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

3、網路防範:

在攻擊發生時,通過網路裝置的acl丟棄udp 123埠的資料報。

放大反射 dos 攻擊由 cve-2013-5211 所致。且這漏洞是與 molist 功能有關。ntpd 4.2.7p26 之前的版本都會去響應 ntp 中的 mode7 monlist 請求。ntpd-4.2.7p26 版本後, monlist 特性已經被禁止,取而代之的是 mrulist 特性,使用 mode6 控制報文,並且實現了握手過程來阻止對第三方主機的放大攻擊。

因為 ubuntu 14.04 預設的 ntpd 版本是 4.2.6p5 ,所以我們可以用禁止 monitor 的方法,直接修改 /etc/ntp.conf 即可

echo 「disable monitor」 >> /etc/ntp.conf

利用ntp服務同步時間(史上最簡單)

本文僅適用於測試環境下,解決集群時間同步問題。生產環境ntp服務配置一般不能連外網,需要自行指定一台伺服器作為ntp伺服器,此伺服器可以通過手動設定時間並寫入cmos硬體 防止重啟失效 其餘機器從指定的伺服器同步時間。具體方案,以後有時間再寫。環境要求 集群可連外網。步驟 1 修改dns,以使ntp...

配置ntp服務

客戶端 一 在 etc crontab 2 etc ntp.sh 每兩個小時校對一次時間 二 在 etc ntp.sh中新增 bin bash ntpdate 172.19.61.110 改變 etc ntp.sh的許可權 chmod 700 etc ntp.sh 三 etc init.d fcro...

NTP服務配置

寫於2013年秋,centos6.4 伺服器端 hadoop master1 sudo chkconfig ntpd on hadoop master sudo vi etc ntp.conf server 127.127.1.0 local clock fudge 127.127.1.0 stra...