單慶元,閻丕濤,南 峰
(大連工業(yè)大學(xué) 網(wǎng)絡(luò)信息中心,大連 116034)
統(tǒng)計(jì)顯示,黑客入侵主機(jī)后,在一段時(shí)間內(nèi)能夠在主機(jī)上潛伏而不被發(fā)現(xiàn),在這樣的情況下,限制一臺(tái)服務(wù)器在被入侵之后的行為就變得很重要.而服務(wù)器的安全措施通常有兩類:① 服務(wù)器系統(tǒng)及軟件本身的安全設(shè)置[1].② 位于服務(wù)器之外的安全設(shè)備(例如:防火墻、應(yīng)用安全網(wǎng)關(guān)等)的防護(hù)[2].由于服務(wù)器本身的安全策略在系統(tǒng)被入侵后有被清除的風(fēng)險(xiǎn),而安全設(shè)備由于價(jià)格的原因,通常用于對(duì)一定網(wǎng)絡(luò)區(qū)域(例如:全部服務(wù)器或內(nèi)網(wǎng))的防護(hù),所以被入侵服務(wù)器會(huì)對(duì)安全設(shè)備保護(hù)之下的內(nèi)網(wǎng)設(shè)備造成影響.被入侵設(shè)備通常被當(dāng)成網(wǎng)絡(luò)入侵中繼點(diǎn),去掃描其它的設(shè)備,而掃描而形成的巨大的并發(fā)連接及網(wǎng)絡(luò)流量通常會(huì)占用很大的出口帶寬、消耗過多出口安全設(shè)備的處理性能,形成拒絕服務(wù)攻擊,使網(wǎng)絡(luò)處于癱瘓狀態(tài).針對(duì)上述兩種服務(wù)器防護(hù)措施的不足,通過對(duì)服務(wù)器應(yīng)用數(shù)據(jù)包的分析,可利用交換機(jī)ACL對(duì)每臺(tái)服務(wù)器的網(wǎng)絡(luò)訪問進(jìn)行限制.由于接入交換機(jī)ACL具有高效(基于硬件的過濾機(jī)制,可達(dá)線性的流量處理)、專用(ACL可針對(duì)每個(gè)服務(wù)器設(shè)置和應(yīng)用,防護(hù)粒度小)、廉價(jià)(接入交換機(jī)價(jià)格便宜)的特點(diǎn),而且服務(wù)器無法更改交換機(jī)配置.因此,通過增加接入交換機(jī)ACL對(duì)服務(wù)器進(jìn)行防護(hù),可以有效地保護(hù)服務(wù)器和降低被入侵服務(wù)器對(duì)網(wǎng)絡(luò)造成的影響.
由于交換機(jī)ACL非防火墻應(yīng)用規(guī)則,不監(jiān)控網(wǎng)絡(luò)連接所處的狀態(tài),ACL只是根據(jù)每條ACL的內(nèi)容檢查網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)規(guī)則的設(shè)置執(zhí)行指定的動(dòng)作.配置及應(yīng)用交換機(jī)ACL的前提是對(duì)網(wǎng)絡(luò)應(yīng)用連接的透徹分析,總結(jié)出每個(gè)應(yīng)用的訪問連接的特點(diǎn),并據(jù)此編寫ACL的規(guī)則.本次試驗(yàn)的WWW服務(wù)器特點(diǎn)如下:WWW服務(wù)器的IP地址為WWW_SERVER_IP,操作系統(tǒng)是WINDOWS;使用微軟的 IIS提供 WWW 服務(wù);使用Filezilla提供FTP服務(wù);為保證服務(wù)器日志時(shí)間的準(zhǔn)確性,使用了NTP客戶端更新系統(tǒng)的時(shí)鐘;安裝了殺毒軟件;對(duì)管理主機(jī)開放了WINDOWS遠(yuǎn)程桌面服務(wù).
在服務(wù)器端由軟件服務(wù)程序(例如:微軟的IIS服務(wù)器)監(jiān)聽WWW服務(wù)端口(通常為TCP 80端口,但不限于該端口),被動(dòng)的接收來自WEB客戶端(通常為互聯(lián)網(wǎng)瀏覽器)的連接請(qǐng)求,網(wǎng)絡(luò)連接分析如表1所示.
表1 WWW服務(wù)的連接分析
域名解析服務(wù)[3]是一種將便于用戶記憶的網(wǎng)絡(luò)域名轉(zhuǎn)換成特定IP地址的服務(wù)(例如:將域名WWW.DLPU.EDU.CN轉(zhuǎn)換成IP地址210.30.48.9).域名解析客戶端軟件通常向服務(wù)器的UDP 53端口發(fā)送解析請(qǐng)求,DNS服務(wù)器將最終的解析結(jié)果通過該端口返回客戶機(jī).網(wǎng)絡(luò)連接分析如表2所示.
表2 域名解析的連接分析
FTP服務(wù)[4]是常用的服務(wù)器和客戶端之間傳送文件的服務(wù),FTP服務(wù)器的操作命令的傳輸(命令通道)和數(shù)據(jù)的傳輸(數(shù)據(jù)通道)是通過不同的TCP端口來進(jìn)行的.命令通道通常在TCP 21端口接收客戶的命令和返回結(jié)果.數(shù)據(jù)通道有點(diǎn)特殊,分為主動(dòng)模式和被動(dòng)模式.主動(dòng)模式是指服務(wù)器主動(dòng)通過TCP 20端口連接客戶機(jī)在命令通道中指定端口進(jìn)行數(shù)據(jù)傳輸;被動(dòng)模式是指客戶機(jī)主動(dòng)連接服務(wù)器指定的端口進(jìn)行數(shù)據(jù)傳輸,通常這些端口是有服務(wù)器隨機(jī)指定的,這使得ACL無法配置.為了解決此問題,FileZilla FTP服務(wù)器提供了配置接口,管理員可以指定被動(dòng)模式下使用的端口范圍[5].這可稱之為:隨機(jī)端口固定化原則.為了便于ACL配置,設(shè)置服務(wù)器將FTP被動(dòng)模式使用的隨機(jī)端口固定下來,使用TCP 20001-20010,網(wǎng)絡(luò)連接分析如表3所示.
表3 文件傳輸服務(wù)連接分析
服務(wù)器的遠(yuǎn)程維護(hù)對(duì)于服務(wù)器管理員來說是必須的,通常的遠(yuǎn)程管理軟件有微軟自帶的遠(yuǎn)程終端(WINDOWS系統(tǒng))、賽門鐵克公司的PC ANYWHERE(WINDOWS系統(tǒng)),這些軟件默認(rèn)所使用的端口都是固定的,網(wǎng)絡(luò)連接分析如表4所示.
表4 遠(yuǎn)程維護(hù)連接分析
管理IP地址的不固定給ACL的配置帶來了困難,如果在ACL中不限制遠(yuǎn)程管理客戶機(jī)的IP地址,管理員維護(hù)方便,帶來的問題是網(wǎng)絡(luò)上任何終端都可以嘗試登錄,這不安全.如果限制了管理客戶機(jī)的IP地址,管理員維護(hù)便利性就會(huì)下降,而且如果管理員換管理主機(jī),就需要修改ACL,這不方便.在這里,可以增加一臺(tái)VPN設(shè)備來解決這個(gè)問題.管理員首先通過賬號(hào)登錄VPN設(shè)備,VPN設(shè)備給管理員分配一個(gè)固定的IP地址,在ACL里限制只有該固定IP地址可以遠(yuǎn)程管理服務(wù)器,這樣管理員在任何地方都可以通過先登錄VPN,然后管理服務(wù)器了.這可稱為:動(dòng)態(tài)管理IP固定化原則.并且只有知道VPN用戶名、密碼、服務(wù)器遠(yuǎn)程IP地址以及服務(wù)器的用戶名、密碼才能登錄服務(wù)器,安全性和便利性都可兼顧.
在服務(wù)器中也經(jīng)常遇到特征庫(kù)的升級(jí)問題,例如:反病毒庫(kù)、應(yīng)用特征庫(kù)、垃圾郵件庫(kù)等等,如果這些特征庫(kù)不升級(jí),那么應(yīng)用服務(wù)運(yùn)行的效果會(huì)差很多.為了保障應(yīng)用運(yùn)行的效果,需要配置ACL,使得特征庫(kù)能正常升級(jí).網(wǎng)絡(luò)連接分析如表5所示.
表5 反病毒軟件升級(jí)服務(wù)
這里僅列出了部分常見應(yīng)用的網(wǎng)絡(luò)連接,對(duì)于其它的服務(wù),可以自己完成協(xié)議分析.
經(jīng)過上面對(duì)應(yīng)用協(xié)議的分析,掌握了應(yīng)用正常運(yùn)行所必須開放的端口,可以據(jù)此配置交換機(jī)的ACL,下面是WWW服務(wù)器的交換機(jī)ACL配置實(shí)例.
本次試驗(yàn)所使用的交換機(jī)型號(hào)為銳捷網(wǎng)絡(luò)的S2928G-24P,軟件版本為:RGOS 10.4(2b12)p6 Release(196987),首先需要根據(jù)第2小節(jié)的網(wǎng)絡(luò)連接分析,配置一個(gè)名稱為for_http的ACL,該ACL的內(nèi)容如表6所示.
表6 ACL的內(nèi)容
表6中的ACL表項(xiàng)的按序號(hào)解釋如下:① 定義一個(gè)名為for_http的擴(kuò)展的訪問控制列表;② 允許源地址為WWW_SERVER_IP,源端口為TCP 80,目標(biāo)地址為任意的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:開放服務(wù)器的WWW服務(wù);③ 允許源地址為 WWW_SERVER_IP,源端口為TCP 21,目標(biāo)地址為管理主機(jī)IP的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:開放服務(wù)器FTP服務(wù)的命令通道;④ 允許源地址為WWW_SERVER_IP,源端口范圍為TCP 20001-20010,目標(biāo)地址為管理主機(jī)IP的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:開放服務(wù)器FTP服務(wù)的被動(dòng)模式數(shù)據(jù)通道;⑤ 允許源地址為WWW_SERVER_IP,源端口為TCP 20,目標(biāo)地址為管理主機(jī)IP的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:開放服務(wù)器FTP服務(wù)的主動(dòng)模式數(shù)據(jù)通道;⑥ 允許源地址為WWW_SERVER_IP,源端口為TCP 3389,目標(biāo)地址為管理主機(jī)IP的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:允許管理主機(jī)訪問服務(wù)器的遠(yuǎn)程桌面服務(wù);⑦ 允許源地址為 WWW_SERVER_IP,目標(biāo)地址為病毒庫(kù)升級(jí)服務(wù)器IP,目標(biāo)端口為TCP 80的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:允許服務(wù)器的病毒軟件進(jìn)行更新病毒庫(kù);⑧ 允許源地址為WWW_SERVER_IP,目標(biāo)地址為DNS_SERVER_IP,目標(biāo)端口為UDP 53的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:允許服務(wù)器進(jìn)行域名解析;⑨ 允許源地址為WWW_SERVER_IP,目標(biāo)地址為NTP_SERVER_IP,目標(biāo)端口為UDP 123的數(shù)據(jù)包轉(zhuǎn)發(fā).作用:允許服務(wù)器進(jìn)行時(shí)間更新;⑩ 拒絕任何 IP 數(shù)據(jù)包轉(zhuǎn)發(fā).作用:除了上述指定的數(shù)據(jù)包可以轉(zhuǎn)發(fā)外,其它的IP數(shù)據(jù)包全部丟包.注:在配置時(shí),表 6 中的“管理主機(jī) IP”、“病毒庫(kù)升級(jí)服務(wù)器 IP”、“DNS_SERVER_IP”、“NTP_SERVER_IP”需要用真實(shí)的IP來替換.
最后將該訪問控制列表應(yīng)用于WWW服務(wù)器連接的交換機(jī)的接口的IN方向,對(duì)WWW服務(wù)器發(fā)送的,進(jìn)入交換機(jī)的數(shù)據(jù)包進(jìn)行過濾.
交換機(jī)接口入向的ACL處理邏輯流程如圖1所示.
圖1 IN方向的ACL流程圖
從圖1可以看出,當(dāng)交換機(jī)的某個(gè)接口收到一個(gè)數(shù)據(jù)包之后,交換機(jī)首先檢查該接口的IN方向是否應(yīng)用了ACL,如果沒有應(yīng)用ACL,那么交換機(jī)查找轉(zhuǎn)發(fā)表,將數(shù)據(jù)包轉(zhuǎn)發(fā)至相應(yīng)接口.如果該接口IN方向應(yīng)用了ACL,那么進(jìn)入ACL表項(xiàng)的比對(duì)過程.ACL實(shí)行首次匹配策略,從第一條規(guī)則開始,進(jìn)行比對(duì),當(dāng)數(shù)據(jù)包匹配該條規(guī)則后,如果規(guī)則的動(dòng)作是permit,數(shù)據(jù)包會(huì)被轉(zhuǎn)發(fā),如果規(guī)則的動(dòng)作是deny,數(shù)據(jù)包會(huì)被丟棄,不再檢查后續(xù)的規(guī)則.如果不匹配當(dāng)前的規(guī)則,那么繼續(xù)比對(duì)下一條規(guī)則,直至最后的默認(rèn)規(guī)則.每個(gè)IP數(shù)據(jù)包肯定會(huì)匹配一條規(guī)則,因?yàn)槊總€(gè)ACL最后會(huì)有一條默認(rèn)規(guī)則,該規(guī)則匹配任何的IP數(shù)據(jù)包,匹配后的動(dòng)作是丟棄數(shù)據(jù)包.
很多的情況下,由于管理不善,服務(wù)器管理員隨意地使用服務(wù)器去瀏覽互聯(lián)網(wǎng)的資源、安裝與服務(wù)無關(guān)的應(yīng)用,導(dǎo)致服務(wù)器運(yùn)行緩慢,甚至崩潰.使用表6的交換機(jī)ACL可以禁止服務(wù)器訪問互聯(lián)網(wǎng)的應(yīng)用和資源.原理如下:當(dāng)用戶使用服務(wù)器訪問某個(gè)網(wǎng)站時(shí)(這里以WWW.BAIDU.COM為例),由于ACL第8條規(guī)則的作用,服務(wù)器可以成功的把域名轉(zhuǎn)換成IP地址(域名WWW.BAIDU.COM對(duì)應(yīng)的IP地址為:119.75.216.20),然后服務(wù)器上應(yīng)用(例如:瀏覽器)發(fā)送一個(gè)TCP連接狀態(tài)請(qǐng)求的數(shù)據(jù)包,數(shù)據(jù)封包的源IP為WWW_SERVER_IP,目標(biāo)地址為119.75.216.20,源端口隨機(jī)生成,現(xiàn)假設(shè)為TCP 1850,目標(biāo)端口為TCP 80,同時(shí)TCP連接標(biāo)志TCP Flags中的SYN位置為1,Sequence Number為x;然后,服務(wù)器進(jìn)入 SYN_SEND 狀態(tài),等待119.75.216.20的確認(rèn).當(dāng)交換機(jī)接收到該數(shù)據(jù)包時(shí),進(jìn)入IN方向的ACL檢查過程,由于ACL的2-9項(xiàng)都不能匹配該數(shù)據(jù)包,則匹配所有IP數(shù)據(jù)包的第10項(xiàng)匹配成功,該數(shù)據(jù)包被丟棄.所以IP為119.75.216.20的服務(wù)器不會(huì)收到WWW服務(wù)器的連接請(qǐng)求,而WWW服務(wù)器更不會(huì)收到連接響應(yīng),最終該連接因超時(shí)而失敗.由于服務(wù)器無法訪問互聯(lián)網(wǎng)資源,無法使用與服務(wù)無關(guān)的聯(lián)網(wǎng)應(yīng)用,因此服務(wù)器的安全性會(huì)有很大提升.
成功入侵服務(wù)器后潛伏下來黑客,會(huì)利用被入侵的服務(wù)器作為中介,去掃描內(nèi)網(wǎng)的設(shè)備,以獲取內(nèi)網(wǎng)設(shè)備信息,或者操控服務(wù)器進(jìn)行DDOS攻擊.在服務(wù)器上使用網(wǎng)絡(luò)掃描軟件對(duì)內(nèi)網(wǎng)進(jìn)行掃的數(shù)據(jù)包和服務(wù)器對(duì)外的DDOS攻擊的數(shù)據(jù)包也會(huì)因?yàn)橹荒芷ヅ銩CL的第10項(xiàng)而被丟棄,所以很好地保護(hù)了內(nèi)網(wǎng)的設(shè)備安全.
另外,訪問控制列表一般由交換機(jī)芯片中的TCAM[7-9]來實(shí)現(xiàn),可實(shí)現(xiàn)過濾條件下線速轉(zhuǎn)發(fā),交換機(jī)ACL能把從服務(wù)器發(fā)出的大流量、高并發(fā)的惡意掃描數(shù)據(jù)包過慮掉,且不影響正常的數(shù)據(jù)轉(zhuǎn)發(fā).
為了測(cè)試交換機(jī)ACL在大流量、高并發(fā)的數(shù)據(jù)流量下的處理情況,使用基于INTEL DPDK[10,11]的PKTGEN的軟件進(jìn)行模擬的發(fā)包測(cè)試,DPDK使用用戶態(tài)的網(wǎng)卡驅(qū)動(dòng)、輪詢(polling)模式、內(nèi)存大頁等多種技術(shù)[12,13]極大提升了系統(tǒng)的包處理速率.本次測(cè)試使用的軟件為:dpdk-stable-18.02.tar.gz,pktgen-dpdkpktgen-3.5.0.tar.gz 下載地址是:https://git.dpdk.org/,本次測(cè)試使用的設(shè)備配置如表7所示.
圖2 測(cè)試拓?fù)?/p>
表7 測(cè)試設(shè)備配置信息
測(cè)試拓?fù)淙鐖D2所示.
軟件的安裝請(qǐng)參考https://www.dpdk.org/,DPDK和pktgen安裝完成后,通過以下命令配置運(yùn)行環(huán)境并啟動(dòng)發(fā)包測(cè)試:igb_uio 0000:02:00.0
cd /root/pktgen-dpdk-pktgen-3.5.0
注:進(jìn)入pktgen安裝目錄
/root/pktgen-dpdk-pktgen-3.5.0/app/x86_64-nativelinuxapp-gcc/pktgen-c f --master-lcore 0 -n 4 -m 1024 --proc-type auto --file-prefix pg -- -m"1.0"
注:運(yùn)行軟件
set 0 type ipv4
注:設(shè)置0號(hào)網(wǎng)卡發(fā)送IPV4數(shù)據(jù)包
set 0 proto udp
注:使用 UDP 協(xié)議 默認(rèn)源端口:1234 目的端口:5678
set 0 count 0 注:不間斷發(fā)包
set 0 size 64 注:包大小為 64 字節(jié)
set 0 pattern none注:不指定包填充模式
set 0 dst mac d8:c4:97:93:5a:6a
注:設(shè)置發(fā)包的目的為筆記本電腦mac地址
set 0 src ip 192.168.1.1/24
注:設(shè)置發(fā)包的源IP地址
set 0 dst ip 192.168.1.250
注:發(fā)包的目的為筆記本電腦IP地址
set 0 rate 100 注:發(fā)包速率,滿負(fù)荷發(fā)包
start 0 注:?jiǎn)?dòng) 0 號(hào)網(wǎng)卡發(fā)包
發(fā)包開始之后,通過交換機(jī)的命令show cpu;show memory;show interface counters rate分別查看交換機(jī)CPU的使用率、內(nèi)存的使用率、G0/14接口和G0/20接口的收發(fā)包的統(tǒng)計(jì)數(shù)據(jù)(5分鐘均值).從發(fā)包開始,以上命令總共運(yùn)行了313次,第254次命令運(yùn)行后(圖中箭頭所指處),在G0/14接口的IN方向應(yīng)用如下的訪問控制列表:
ip access-list extended for_http
permit tcp host 192.168.1.1 eq 80 any
permit tcp host 192.168.1.1 eq 21 host 192.168.1.100
permit tcp host 192.168.1.1 range 20001 20010 host 192.168.1.100
permit tcp host 192.168.1.1 eq 20 host 192.168.1.100
permit tcp host 192.168.1.1 eq 3389 host 192.168.1.100
permit udp host 192.168.1.1 host 192.168.1.7 eq 53
permit udp host 192.168.1.1 host 192.168.1.24 eq 123
deny ip any any
交換機(jī)的上述3個(gè)show命令的輸出數(shù)據(jù)如圖3.
圖3 交換機(jī)接口流量及資源利用率
圖3的左邊(中間)分別是G0/14接口收包速率(收包流量)和G0/20接口的發(fā)包速率(流量)的統(tǒng)計(jì),單位為PPS(bps),在PC機(jī)啟動(dòng)發(fā)包測(cè)試后,G0/14接口收包速率(收包流量)和G/20接口發(fā)包速率(發(fā)包流量)從0開始,經(jīng)過快速上升后,在150萬PPS(783M bps)和168萬PPS(860M bps)之間波動(dòng),且在箭頭所指點(diǎn)之前,G0/14接口的收包速率(收包流量)和G0/20接口的發(fā)包速率(發(fā)包流量)是同步的,PC發(fā)送給筆記本的數(shù)據(jù)都被交換機(jī)正常轉(zhuǎn)發(fā)了.在箭頭所指處,由于在G0/14接口的IN方向應(yīng)用了訪問控制列表,G0/20接口的輸出迅速降為零,盡管此時(shí)PC機(jī)依舊不停地發(fā)包.由于交換機(jī)的查看命令輸出的是5分鐘均值,所以在圖中可以看到一個(gè)下降過程,實(shí)際上當(dāng)應(yīng)用訪問控制列表后,筆記本就不再收到PC機(jī)發(fā)送的數(shù)據(jù)包了.圖3的右邊是交換機(jī)資源的利用率,在訪問控制列表應(yīng)用前后,交換機(jī)CPU和內(nèi)存的使用無任何變化.
服務(wù)器接入交換機(jī)在網(wǎng)絡(luò)防護(hù)中有著重要的作用,在接入服務(wù)器交換機(jī)上ACL可以單獨(dú)針對(duì)特定服務(wù)器配置.通過對(duì)應(yīng)用及協(xié)議進(jìn)行透徹的分析,總結(jié)出規(guī)律,使用動(dòng)態(tài)端口固定化原則和動(dòng)態(tài)管理主機(jī)IP固定化原則,可以將一些服務(wù)中不固定的參數(shù)固定下來.另外在管理主機(jī)IP地址固定化時(shí)需要VPN設(shè)備,這需要一定的費(fèi)用,因?yàn)樵谔囟ǖ目萍紬l件下,安全性、便利性和經(jīng)濟(jì)性往往不可兼得,只能根據(jù)需求在每個(gè)方面進(jìn)行取舍.另外本次實(shí)驗(yàn)中,只是對(duì)服務(wù)器發(fā)出的數(shù)據(jù)包進(jìn)行控制,網(wǎng)絡(luò)上其它主機(jī)發(fā)送給服務(wù)器的數(shù)據(jù)包還是能夠正常轉(zhuǎn)發(fā)至服務(wù)器,如果惡意主機(jī)給服務(wù)器發(fā)送大量的或者是異常的數(shù)據(jù)包,并且服務(wù)器主機(jī)防火墻設(shè)置不合理,可能會(huì)造成服務(wù)器異常.對(duì)于這種情況,可以在交換機(jī)上同時(shí)對(duì)服務(wù)器IN和OUT方向的數(shù)據(jù)包進(jìn)行過濾,這樣只有客戶機(jī)正常的服務(wù)請(qǐng)求數(shù)據(jù)包才能發(fā)送至服務(wù)器,不足之處就是消耗了較多的交換機(jī)ACL資源.