被攻擊伺服器相關配置:
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只開放了上一級提供ntp服務的ip位址。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服務,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...