編者按:NTP服務(wù)時(shí)常面臨各類安全威脅,反射放大攻擊即是其中之一。本文探討在CentOS 7系統(tǒng)下安全部署NTP服務(wù),以預(yù)防常見的反射放大攻擊。
NTP協(xié)議是用來使計(jì)算機(jī)時(shí)間同步化的一種網(wǎng)絡(luò)協(xié)議,它可以使計(jì)算機(jī)與服務(wù)器做時(shí)間同步,可以提供高精準(zhǔn)度的時(shí)間校正,目的是在無序的網(wǎng)絡(luò)環(huán)境中提供精確和健壯的時(shí)間服務(wù),使局域網(wǎng)內(nèi)所有的PC、服務(wù)器和其他設(shè)備通過網(wǎng)絡(luò)與NTP服務(wù)器保持同步。
NTP協(xié)議可自動(dòng)判斷網(wǎng)絡(luò)延時(shí),并對(duì)數(shù)據(jù)進(jìn)行時(shí)間補(bǔ)償,從而使局域網(wǎng)設(shè)備時(shí)間保持統(tǒng)一精準(zhǔn)。
為了安全起見,筆者希望設(shè)置只有服務(wù)器所在的IP段能訪問NTP服務(wù)同步時(shí)間,而禁止其他網(wǎng)段訪問。
所用系統(tǒng)及配置:CentOS Linux release 7.8.2003(Core),硬盤為20 GB,內(nèi)存為2 GB。
安裝ntpd并修改配置文件,保存退出后將ntpd服務(wù)加入開機(jī)啟動(dòng)。
yum -y install ntp
vi/etc/ntp.conf
# 第18行: 增加允許訪問NTP服務(wù)器的網(wǎng)段
restrict 192.168.0.0 mask 255.255.255.0 nomo dify notrap
# 第21-24行: 修改可用的上一級(jí)NTP服務(wù)器
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
systemctl start ntpd
systemctl enable ntpd
# 將ntp服務(wù)加入防火墻允許列表,以免客戶端訪問時(shí)被防火前攔截
firewall-cmd --addservice=ntp–-permanent
firewall-cmd --reload
此時(shí)NTP的服務(wù)已搭建完成并測(cè)試成功。
但是經(jīng)過測(cè)試發(fā)現(xiàn)其允許非服務(wù)器192.168.0.0/24網(wǎng)段的NTP請(qǐng)求,說明其配置文件中的restrict并未限制其他網(wǎng)段對(duì)NTP服務(wù)器的時(shí)間同步請(qǐng)求。
此時(shí)的補(bǔ)償措施是可以結(jié)合系統(tǒng)防火墻限制其他網(wǎng)段請(qǐng)求NTP服務(wù)器的UDP 123端口。
反射攻擊是因?yàn)镹TP協(xié)議基于UDP協(xié)議,而UDP協(xié)議是面向無連接的,所以當(dāng)客戶端請(qǐng)求服務(wù)端的時(shí)候,可以將客戶端源IP修改為受害者的IP,最終服務(wù)端返回的響應(yīng)包就會(huì)返回到受害者的IP。這就形成了一次反射攻擊。
放大攻擊是客戶端向服務(wù)端發(fā)送一個(gè)請(qǐng)求包,此時(shí)服務(wù)端會(huì)返回一個(gè)或多個(gè)響應(yīng)包,這就造成了一個(gè)放大的效果。
NTP反射放大攻擊就是客戶端偽造源IP地址并利用NTP的Monitor監(jiān)控功能進(jìn)行攻擊。
如圖1所示,通過抓包,我們可以觀察到第一個(gè)是請(qǐng)求包,第二和第三個(gè)是響應(yīng)包,響應(yīng)包的數(shù)量及容量已超過第一個(gè)請(qǐng)求包。
在獲悉NTP的反射放大原理后,可以通過以下幾種方式來處理ntpd的反射放大攻擊。
1.將NTP服務(wù)器升級(jí)到4.2.7p26 2。
2.修改配置文件/etc/ntp.conf,并追加disable monitor,關(guān)閉Monitor監(jiān)控功能。
項(xiàng)目教學(xué)模式以學(xué)生為主體,以項(xiàng)目為導(dǎo)向,以培養(yǎng)知識(shí)、能力和素質(zhì)為目標(biāo),為社會(huì)培養(yǎng)實(shí)用型人才,它是高職院校開展課程教學(xué)活動(dòng)的最佳模式。國(guó)內(nèi)有關(guān)項(xiàng)目教學(xué)法的研究成果頗多,大多以“能力導(dǎo)向”、“就業(yè)導(dǎo)向”、“任務(wù)導(dǎo)向”或“工作過程導(dǎo)向”等為出發(fā)點(diǎn),分析某類課程的教學(xué)模式。本課題組經(jīng)過長(zhǎng)期教改實(shí)踐,以職業(yè)標(biāo)準(zhǔn)為研究起點(diǎn),將國(guó)際商法課程的項(xiàng)目教學(xué)模式具體界定為“標(biāo)準(zhǔn)轉(zhuǎn)換、理實(shí)一體”模式,供同行借鑒和參考。
3.網(wǎng)絡(luò)出口禁止NTP協(xié)議,以防止NTP服務(wù)器被黑客利用而攻擊其他服務(wù)器。
4.使用chronyd替代ntpd。
較新的CentOS版本推薦使用chrony來替代ntpd服務(wù)。
yum -y install chrony
vi/etc/chrony.conf
# 第3-6行: 修改可用的上一級(jí)NTP服務(wù)器
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
# 第27行: 增加允許訪問NTP服務(wù)器的網(wǎng)段
allow 192.168.0.0/24
systemctl start chronyd
systemctl enable chr onyd
圖1 NTP反射放大攻擊抓包分析
# 將ntp服務(wù)加入防火墻允許列表,以免客戶端訪問時(shí)被防火前攔截
firewall-cmd --addservice=ntp–-permanent
firewall-cmd --reload
通過chronyd配置也能實(shí)現(xiàn)NTP服務(wù),并成功的限制了非192.168.0.0/24網(wǎng)段對(duì)NTP服務(wù)器的時(shí)間同步請(qǐng)求,實(shí)現(xiàn)了我們對(duì)NTP服務(wù)器使用需求。
結(jié)合chronyd與ntpd相關(guān)材料,總結(jié)了兩個(gè)組件的一些區(qū)別,可供讀者按需選擇。
相比于ntpd,chronyd的優(yōu)勢(shì)在于:
chronyd在同步時(shí)間上更快更精確;
chronyd在間歇性網(wǎng)絡(luò)系統(tǒng)中仍可以快速同步時(shí)鐘,而ntpd需要對(duì)服務(wù)器進(jìn)行定期輪詢;
chronyd在Linux系統(tǒng)上可以調(diào)整更大范圍的時(shí)間偏差;
chrondy較ntpd更加輕便,較少的資源性能消耗。
而ntpd的優(yōu)勢(shì)在于:
ntpd支持所有NTPv4(RFC 5905)的模式,包括廣播、組播;
ntpd支持AutoKey協(xié)議,使用公鑰來認(rèn)證NTP服務(wù)器;
ntpd包含更多的時(shí)鐘驅(qū)動(dòng),而chronyd是依賴其他程序,使用共享內(nèi)存來訪問數(shù)據(jù)。
上述4個(gè)方法可以加固本地NTP服務(wù)器并預(yù)防被他人利用而攻擊其他設(shè)備。
以下建議也可以預(yù)防我們的服務(wù)器被他人NTP反射放大攻擊。
1.新增防DDoS設(shè)備,可抵抗設(shè)備閾值下的流量攻擊。
2.NTP響應(yīng)數(shù)據(jù)包特征明顯,可以結(jié)合運(yùn)營(yíng)商對(duì)流量進(jìn)行清洗。
3.一般被攻擊對(duì)象為網(wǎng)站應(yīng)用,可結(jié)合CDN配置,隱藏真實(shí)IP。