張俊賢,單蓉勝
網(wǎng)絡(luò)準(zhǔn)入控制,也稱為網(wǎng)絡(luò)接入控制,是一種日趨流行的內(nèi)網(wǎng)管理手段。它代表了主機(jī)從物理接入內(nèi)網(wǎng)網(wǎng)絡(luò),到實(shí)際獲得網(wǎng)絡(luò)資源訪問權(quán)力之間,所發(fā)生的認(rèn)證、檢驗(yàn)、評(píng)估、策略與控制實(shí)施等一系列過程。除了認(rèn)證所需的用戶信息和主機(jī)信息之外,典型的網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng),利用主機(jī)客戶端收集包括系統(tǒng)版本與補(bǔ)丁列表、殺毒軟件名稱與病毒庫版本、防火墻軟件名稱和防間諜軟件名稱這4類信息,這些信息被用來評(píng)價(jià)主機(jī)的安全程度是否與將要訪問的網(wǎng)絡(luò)資源匹配,確保網(wǎng)絡(luò)中的主機(jī)均達(dá)到一定程度的安全水平。
網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng)要求有個(gè)集中的數(shù)據(jù)存儲(chǔ)、策略設(shè)置與判斷的中心,為每個(gè)客戶主機(jī)完成準(zhǔn)入控制流程。為網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng)設(shè)立一臺(tái)服務(wù)器是很自然地想法,但當(dāng)網(wǎng)絡(luò)環(huán)境逐漸擴(kuò)大,出現(xiàn)多個(gè)站點(diǎn)的情況后,各個(gè)站點(diǎn)中的準(zhǔn)入控制服務(wù)器之間如何協(xié)調(diào),跨站點(diǎn)登錄用戶如何認(rèn)證,都將成為影響網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng)在數(shù)據(jù)存儲(chǔ)設(shè)計(jì)上所必須考慮的問題。
基于域活動(dòng)目錄的準(zhǔn)入控制系統(tǒng),將活動(dòng)目錄作為數(shù)據(jù)存儲(chǔ)的地點(diǎn),利用活動(dòng)目錄站點(diǎn)間復(fù)制機(jī)制實(shí)現(xiàn)同步,利用域信任模型實(shí)現(xiàn)跨站用戶的認(rèn)證,對(duì)于已經(jīng)組建 Windows域環(huán)境的網(wǎng)絡(luò)來說,增加的只有軟件成本,對(duì)于尚未建立域的環(huán)境來說,也可以作為過渡的開始。
相對(duì)于域的資源訪問控制手段,本系統(tǒng)從 VMPS協(xié)議入手,以VLAN劃分的手段,隔離認(rèn)證主機(jī)與未認(rèn)證主機(jī),合格主機(jī)與不合格主機(jī),以更徹底的方式,將這些主機(jī)隔離并分類管理。
本文所設(shè)計(jì)的網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng),由位于主機(jī)的客戶端程序、集成域控制器的管理平臺(tái)以及位于活動(dòng)目錄中的應(yīng)用目錄分區(qū)3部分組成。
這3個(gè)部分中,客戶端程序負(fù)責(zé)收集用戶信息與主機(jī)信息,用戶信息將被提交給域控制器進(jìn)行驗(yàn)證。當(dāng)通過域身份驗(yàn)證后,客戶端將主機(jī)信息作為屬性,寫入AD的應(yīng)用目錄分區(qū)(Application Directory Partition)中對(duì)應(yīng)該主機(jī)的對(duì)象中,并告知當(dāng)前站點(diǎn)的管理平臺(tái)。
圖1 基于域活動(dòng)目錄的網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng)框架圖
系統(tǒng)對(duì)于主機(jī)狀態(tài)信息的存儲(chǔ),利用活動(dòng)目錄應(yīng)用目錄分區(qū),在創(chuàng)建的應(yīng)用目錄分區(qū)下,主要存儲(chǔ)3方面的對(duì)象:對(duì)應(yīng)每個(gè)主機(jī)的主機(jī)對(duì)象、對(duì)應(yīng)各安全等級(jí)所要應(yīng)用的安全策略對(duì)象以及對(duì)應(yīng)各個(gè)站點(diǎn)網(wǎng)絡(luò)環(huán)境設(shè)置的站點(diǎn)對(duì)象,這些對(duì)象通過 DFS以及活動(dòng)目錄復(fù)制機(jī)制,實(shí)現(xiàn)多站點(diǎn)間的同步更新,使得位于各處主機(jī)上的客戶端或者管理平臺(tái),能夠使用統(tǒng)一的LDAP和ADSI接口訪問這些數(shù)據(jù)。此外對(duì)于沒有啟用域的內(nèi)網(wǎng)環(huán)境,通過導(dǎo)入帳戶信息,結(jié)合客戶端程序也能實(shí)現(xiàn)基于域的身份驗(yàn)證。
在本系統(tǒng)框架設(shè)計(jì)中,當(dāng)所轄站點(diǎn)中某臺(tái)主機(jī)客戶端完成信息收集后,將主動(dòng)告知管理平臺(tái)。管理平臺(tái)檢索對(duì)應(yīng)主機(jī)對(duì)象,根據(jù)屬性確定其安全等級(jí),并根據(jù)安全等級(jí)查找預(yù)設(shè)的安全策略對(duì)象,確定該主機(jī)的限制措施。同時(shí),管理平臺(tái)定時(shí)檢索現(xiàn)有主機(jī)對(duì)象,清除過期對(duì)象。在本系統(tǒng)中,針對(duì)主機(jī)隔離,管理平臺(tái)通過 VMPS管理模塊,配置管理平臺(tái)所在域控制器為本地 VMPS服務(wù)器,根據(jù)主機(jī)對(duì)象屬性建立MAC-VLAN映射表,控制各交換機(jī)(client)調(diào)整MAC與VLAN劃分關(guān)系,從而實(shí)現(xiàn)主機(jī)隔離。
對(duì)于一個(gè)新接入網(wǎng)絡(luò)的主機(jī),其網(wǎng)絡(luò)準(zhǔn)入控制流程具體來說包含以下5個(gè)步驟
1. 主機(jī)剛接入網(wǎng)絡(luò),此時(shí)活動(dòng)目錄中尚未創(chuàng)建主機(jī)對(duì)象,管理平臺(tái)識(shí)別主機(jī)為未認(rèn)證主機(jī),將連接端口劃分到默認(rèn)VLAN中。
2. 默認(rèn) VLAN中的主機(jī),只能訪問域控制器和管理平臺(tái),主機(jī)客戶端首先向域控制器提交用戶身份信息,進(jìn)行域用戶身份驗(yàn)證,若驗(yàn)證失敗,則無法進(jìn)一步訪問活動(dòng)目錄,主機(jī)繼續(xù)處于默認(rèn) VLAN中,若通過驗(yàn)證,則訪問站點(diǎn)對(duì)象,獲取當(dāng)前網(wǎng)絡(luò)相關(guān)信息(管理平臺(tái)的IP地址等信息),同時(shí)收集主機(jī)信息,并依照域用戶權(quán)限,于活動(dòng)目錄中創(chuàng)建主機(jī)對(duì)象。完成后告知管理平臺(tái)。
3. 管理平臺(tái)收到客戶端消息,查找活動(dòng)目錄中對(duì)應(yīng)主機(jī)對(duì)象,評(píng)估其安全等級(jí),查找對(duì)應(yīng)的安全策略,并以此為其建立MAC-VLAN映射。對(duì)于合格主機(jī),將被劃分到不受限制的VLAN中,對(duì)于不合格主機(jī),劃分到隔離VLAN中。
4. 管理平臺(tái)定時(shí)檢索所有主機(jī)對(duì)象,刪除離線主機(jī)的主機(jī)對(duì)象,并調(diào)整該端口VLAN。
5. 對(duì)于不合格主機(jī),當(dāng)其配置發(fā)生變化,用戶重新使用客戶端創(chuàng)建新的主機(jī)對(duì)象接受管理平臺(tái)評(píng)估檢查。
從以上流程可以看出,管理平臺(tái)首先通過域用戶身份驗(yàn)證,將主機(jī)分為認(rèn)證與未認(rèn)證主機(jī),未認(rèn)證主機(jī)直接被分配到隔離VLAN之中;對(duì)于已認(rèn)證主機(jī),再依據(jù)其主機(jī)信息,判斷為合格或不合格的主機(jī),不合格主機(jī)同樣分配到隔離VLAN中。只有那些經(jīng)過認(rèn)證,且主機(jī)信息合格的才被劃分到正常VLAN中,不受限制的訪問網(wǎng)絡(luò)。
VMPS即VLAN Management Policy Server--VLAN管理策略服務(wù)器,是一種基于源MAC地址,動(dòng)態(tài)的為交換機(jī)端口上分配VLAN號(hào)的方法。
當(dāng)啟動(dòng)了 VMPS以后,VMPS服務(wù)器首先會(huì)從一個(gè)預(yù)先指定的TFTP服務(wù)器上下載MAC-VLAN映射數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫是一個(gè)預(yù)先寫好的文本文件,包含了MAC-VLAN映射表等信息。之后VMPS服務(wù)器打開一個(gè)UDP進(jìn)程來監(jiān)聽從交換機(jī)發(fā)來的請(qǐng)求,并進(jìn)行處理。當(dāng) VMPS接到從交換機(jī)發(fā)來的一個(gè)合法請(qǐng)求后,首先是查看數(shù)據(jù)庫中是否有該MAC-VLAN的映射記錄。如果查找到MAC-VLAN對(duì)應(yīng)項(xiàng),則把對(duì)應(yīng)的VLAN號(hào)發(fā)給交換機(jī),并激活交換機(jī)端口;如果沒有對(duì)應(yīng)項(xiàng),VMPS有兩種處理方式:當(dāng)VMPS處于非安全模式下,VMPS將發(fā)送fallback-VLAN(若有)給客戶端或“access-denied”訪問被拒絕的信息;當(dāng)VMPS處于安全模式下,VMPS將發(fā)送“port-shutdown”端口關(guān)閉的信息,無論是否配置了fallback-VLAN。
圖2 管理平臺(tái)利用VMPS協(xié)議管理交換機(jī)VLAN劃分示意圖
在本系統(tǒng)中,管理平臺(tái)使用開源 OpenVMPS管理,OpenVMPS整合了作為服務(wù)器的交換機(jī)和作為數(shù)據(jù)庫的TFTP服務(wù)器,其管理模式如圖2所示,并提供命令行工具生成標(biāo)準(zhǔn)的VMPS配置文件,簡(jiǎn)化了MAC-VLAN映射到VMPS配置文件的轉(zhuǎn)換過程。
此時(shí)在管理平臺(tái)看來,主機(jī)動(dòng)態(tài) VLAN劃分與隔離的過程包含兩個(gè)流程:首先一臺(tái)主機(jī)接入到交換機(jī),交換機(jī)檢測(cè)到其MAC地址和接入端口號(hào),然后把自己的ip地址、端口號(hào)、接入主機(jī)的 MAC地址送至管理平臺(tái)的 OpenVMPS Daemon。OpenVMPS Daemon僅對(duì)管轄范圍內(nèi)的交換機(jī)進(jìn)行動(dòng)態(tài) VLAN劃分管理。這些配置有管理平臺(tái)在啟動(dòng)時(shí),從活動(dòng)目錄站點(diǎn)對(duì)象讀取并初始化。對(duì)于未注冊(cè)交換機(jī),OpenVMPS Daemon直接拒絕其請(qǐng)求。對(duì)于已注冊(cè)交換機(jī),若 MAC地址不在本地映射表中,返回默認(rèn) VLAN(如VLAN0);若MAC地址存在于本地映射表中,則返回指定VLAN號(hào)給交換機(jī)。
當(dāng)新主機(jī)通過域認(rèn)證并完成主機(jī)檢查后,或管理平臺(tái)定時(shí)掃描主機(jī)對(duì)象,發(fā)現(xiàn)主機(jī)對(duì)象更新時(shí),管理平臺(tái)將根據(jù)安全策略更新本地MAC-VLAN映射表,使得OpenVMPS服務(wù)器主動(dòng)調(diào)整各個(gè)交換機(jī)上主機(jī)所連接端口的VLAN配置,從而實(shí)現(xiàn)動(dòng)態(tài)的VLAN劃分與主機(jī)隔離。
實(shí)驗(yàn)環(huán)境介紹:
一臺(tái)24口交換機(jī),0-22端口為動(dòng)態(tài)VLAN端口,可被配置為屬于VLAN0或VLAN1,其中VLAN0作為未認(rèn)證與隔離主機(jī)網(wǎng)段,VLAN1作為正常主機(jī)網(wǎng)段,兩個(gè)VLAN均使用192.168.1.0/24的IP段,23端口靜態(tài)配置為VLAN1,連接應(yīng)用服務(wù)器, IP為192.168.1.10。劃分動(dòng)態(tài)VLAN使用的VMPS服務(wù)器配置為192.168.0,1,使用Open模式,配置fallback-VLAN為VLAN0。
路由器與交換機(jī)以 Trunk模式連接,僅設(shè)置兩 VLAN到另一網(wǎng)段192.168.0.0/24的路由,確保兩VLAN中主機(jī)均能訪問IP地址為192.168.0.1的域控制器兼管理平臺(tái),同時(shí)又不能互相訪問。
實(shí)驗(yàn)前在域控制器中導(dǎo)入一些域用戶,實(shí)驗(yàn)主機(jī)上的客戶端將使用這些帳戶完成認(rèn)證過程。
圖3 實(shí)驗(yàn)環(huán)境網(wǎng)絡(luò)拓?fù)鋱D
驗(yàn)證過程:
實(shí)驗(yàn)主機(jī)配置IP地址為192.168.1.5,當(dāng)主機(jī)首次接入交換機(jī)時(shí),此時(shí)應(yīng)用目錄分區(qū)NAC下沒有主機(jī)對(duì)象,管理平臺(tái) MAC-VLAN映射表為空,實(shí)驗(yàn)主機(jī)被分配到缺省VLAN0中,雖然看似與應(yīng)用服務(wù)器一個(gè)網(wǎng)段,但無法ping通應(yīng)用服務(wù)器。
通過運(yùn)行客戶端程序,實(shí)驗(yàn)主機(jī)向 192.168.0.1的域控制器發(fā)起 LDAP連接,使用域用戶密碼,訪問活動(dòng)目錄,并在NAC分區(qū)下創(chuàng)建與域用戶同名的活動(dòng)目錄動(dòng)態(tài)對(duì)象,其屬性包含本機(jī)MAC,主機(jī)名,訪問時(shí)間,并告知管理平臺(tái)。同時(shí)客戶端程序作為daemon后臺(tái)運(yùn)行,每隔5分鐘更新對(duì)應(yīng)對(duì)象的訪問時(shí)間屬性。
管理平臺(tái)程序監(jiān)聽自定義端口 8181,收到客戶端數(shù)據(jù)包,檢索NAC目錄分區(qū),發(fā)現(xiàn)新動(dòng)態(tài)對(duì)象,檢索其屬性,根據(jù)MAC地址與訪問時(shí)間,確定為活躍的已認(rèn)證主機(jī),更新本地的MAC-VLAN映射表,調(diào)整交換機(jī)VLAN劃分,將主機(jī)所連接端口劃分到VLAN1。
VLAN調(diào)整完成后,實(shí)驗(yàn)主機(jī)依然使用192.168.1.5,但此時(shí)與應(yīng)用服務(wù)器同屬VLAN1,實(shí)驗(yàn)主機(jī)可訪問位于正常VLAN中的網(wǎng)絡(luò)資源。
當(dāng)主機(jī)關(guān)機(jī)離線,因?yàn)橐慌_(tái)主機(jī)對(duì)應(yīng)一個(gè)活動(dòng)目錄動(dòng)態(tài)對(duì)象,在一定超時(shí)時(shí)間(較長(zhǎng),約30分鐘)過后沒有刷新將被域控制器自動(dòng)刪除;同時(shí)管理平臺(tái)會(huì)每隔5到10分鐘檢查現(xiàn)有 MAC-VLAN映射表中的主機(jī)在活動(dòng)目錄中對(duì)應(yīng)對(duì)象的訪問時(shí)間,淘汰對(duì)象缺失或長(zhǎng)期未更新訪問時(shí)間的那些主機(jī),刪除其MAC-VLAN映射,從而更新交換機(jī)VLAN劃分,關(guān)閉不被使用的端口。
本文詳細(xì)描述了基于 Windows域活動(dòng)目錄的網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng),該系統(tǒng)通過客戶端實(shí)現(xiàn)了與主機(jī)配置無關(guān)的域用戶認(rèn)證和主機(jī)信息收集,通過動(dòng)態(tài)VLAN劃分的方式,隔離了通過認(rèn)證和未通過認(rèn)證的主機(jī),實(shí)現(xiàn)了內(nèi)網(wǎng)隔離控制功能,但還需要進(jìn)一步擴(kuò)展全面的主機(jī)信息收集和評(píng)估機(jī)制。此外在如何充分利用活動(dòng)目錄以及客戶端程序?qū)崿F(xiàn)對(duì)于非域主機(jī)的策略管理、利用Windows Server系列服務(wù)器的遠(yuǎn)程VPN服務(wù)實(shí)現(xiàn)遠(yuǎn)程VPN接入用戶的認(rèn)證與隔離等方面還需要進(jìn)一步擴(kuò)展,從而實(shí)現(xiàn)一個(gè)完整的網(wǎng)絡(luò)準(zhǔn)入控制系統(tǒng)。
[1] 王國芬,李建華.用戶接入控制在網(wǎng)絡(luò)安全體系中的應(yīng)用[J] .網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005,第3期:53-55.
[2] 周益軍,黃本雄.網(wǎng)絡(luò)端點(diǎn)接入控制的實(shí)現(xiàn)[J] .計(jì)算機(jī)技術(shù)與發(fā)展,2006,第16卷,第9期:227-230.
[3] 顧尚杰,薛質(zhì).計(jì)算機(jī)通信網(wǎng)基礎(chǔ)[M] .電子工業(yè)出版社.2000:31-333.
[4] 薛質(zhì),蘇波,李建華.信息安全技術(shù)基礎(chǔ)和安全策略[M] .北京:清華大學(xué)出版社,2007:4-1.
[5] Network Access Protection Platform Architecture[R] .Microsoft Corporation,2004.