曾金梁,朱曉民
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)
隨著增值業(yè)務(wù)范圍的擴(kuò)大,業(yè)務(wù)種類也越來(lái)越多。如何保障這些日益龐大、日益增長(zhǎng)的增值業(yè)務(wù)穩(wěn)定成為通信運(yùn)營(yíng)商的難題。東信北郵為運(yùn)營(yíng)商提供了增值業(yè)務(wù)統(tǒng)一管理平臺(tái)的解決方案:網(wǎng)絡(luò)管控平臺(tái)(簡(jiǎn)稱為網(wǎng)管)[1]。
為管控所有業(yè)務(wù)平臺(tái),網(wǎng)管系統(tǒng)一般需要在100多臺(tái)服務(wù)器上安裝代理程序[2]。這些代理程序進(jìn)行功能調(diào)整、異常排除等操作時(shí)通常需要接入主機(jī),進(jìn)行維護(hù)操作。而眾多服務(wù)器,密碼變動(dòng)頻繁,迫切需要一種比較便捷、安全的遠(yuǎn)程維護(hù)方式。
另一方面,業(yè)務(wù)提供商在不斷發(fā)展過(guò)程中,根據(jù)運(yùn)營(yíng)商客戶不同需求,推出多種業(yè)務(wù)。維護(hù)人員不但需要了解多個(gè)業(yè)務(wù)維護(hù)知識(shí),還需要承擔(dān)眾多業(yè)務(wù)主機(jī)的日常運(yùn)維。尤其是近幾年,運(yùn)營(yíng)商為提高信息安全,推行4A規(guī)范[3],將主從賬戶分離、定期更新密碼,更是讓各業(yè)務(wù)的維護(hù)工作越來(lái)越繁瑣。
如果能利用網(wǎng)管的代理機(jī)制,實(shí)現(xiàn)一個(gè)綜合維護(hù)平臺(tái),使公司所有業(yè)務(wù)維護(hù)工作入口統(tǒng)一,操作簡(jiǎn)單,那么將能極大的提高維護(hù)效率。該綜合維護(hù)平臺(tái)需要能隔離密碼變動(dòng)對(duì)維護(hù)工作影響,能在平臺(tái)界面上直接進(jìn)行遠(yuǎn)程主機(jī)的維護(hù),能將常用維護(hù)操作進(jìn)行批量處理。本文就是基于安全的無(wú)密碼登錄技術(shù),設(shè)計(jì)實(shí)現(xiàn)了綜合維護(hù)平臺(tái),使維護(hù)人員可遠(yuǎn)程接入主機(jī)。
通用消息中間件,即實(shí)時(shí)應(yīng)用進(jìn)程管理和通信組件(component package of real time application process management and communication,COPART-MACO),是總線型通信中間件,通過(guò)抽象的連接模型,以統(tǒng)一的方式支持各種IPC機(jī)制,可實(shí)現(xiàn)跨機(jī)器和跨平臺(tái)通用[4]。通用消息中間件具有很高的穩(wěn)定性和可靠性,其能滿足遠(yuǎn)程維護(hù)的通信要求?;谕ㄓ孟⒌某志没㈥?duì)列[5],能很好的解決在遠(yuǎn)程登錄時(shí),處理時(shí)間有時(shí)比較長(zhǎng)時(shí),部分關(guān)鍵消息超時(shí)問(wèn)題。
偽終端設(shè)備是一種特殊的終端驅(qū)動(dòng)設(shè)備,它并不驅(qū)動(dòng)某個(gè)物理設(shè)備,而是用來(lái)將終端的輸出定向到應(yīng)用程序中進(jìn)行處理。偽終端設(shè)備由主、從兩個(gè)成對(duì)的設(shè)備構(gòu)成[6]。任何寫到偽終端主設(shè)備的輸入都會(huì)作為從設(shè)備端的輸入,反之亦然。偽終端設(shè)備常用于遠(yuǎn)程登錄服務(wù)器來(lái)建立網(wǎng)絡(luò)和終端的關(guān)聯(lián)[7],其典型進(jìn)程結(jié)構(gòu)如圖1所示。利用偽終端能很好的實(shí)現(xiàn)遠(yuǎn)程接入 shell,并通過(guò)鏈路進(jìn)行輸入輸出。
圖1 典型的偽終端進(jìn)程結(jié)構(gòu)[7]
綜合維護(hù)平臺(tái)的部署結(jié)構(gòu)如圖2所示,其中包含業(yè)務(wù)功能域,平臺(tái)代理功能域,平臺(tái)管理功能域,平臺(tái)維護(hù)功能域。
各組件功能說(shuō)明:
(1)業(yè)務(wù)維護(hù)接口,即各業(yè)務(wù)自定義的維護(hù)操作入口,可以是通過(guò)執(zhí)行專用的維護(hù)腳本、可執(zhí)行程序,接入管理各業(yè)務(wù)進(jìn)程;也可以是通用的系統(tǒng)操作命令;
(2)無(wú)密碼登錄服務(wù),提供遠(yuǎn)程登錄;
(3)遠(yuǎn)程接入接口,負(fù)責(zé)執(zhí)行遠(yuǎn)程會(huì)話;
(4)遠(yuǎn)程接入控制,有效控制遠(yuǎn)程會(huì)話;
(5)維護(hù)操作接口,進(jìn)行遠(yuǎn)程維護(hù)操作。
圖2 綜合維護(hù)平臺(tái)部署結(jié)構(gòu)
無(wú)密碼登錄服務(wù)內(nèi)部邏輯如圖3所示。
圖3 無(wú)密碼登錄服務(wù)內(nèi)部邏輯
如果服務(wù)處于關(guān)閉狀態(tài),服務(wù)進(jìn)程在接收到開(kāi)啟服務(wù)消息后,會(huì)從配置中獲取開(kāi)啟服務(wù)的端口、登錄主目錄、默認(rèn)用戶、最大連接數(shù)等等,如無(wú)配置,則采用默認(rèn)配置;之后嘗試綁定端口,并開(kāi)始監(jiān)聽(tīng)。當(dāng)端口不可用時(shí),會(huì)嘗試查找可用端口,如果端口自適應(yīng)失敗,則開(kāi)啟服務(wù)失敗。服務(wù)綁定IP“0”,只有遠(yuǎn)程主機(jī)本地登錄才有效,從而防止服務(wù)開(kāi)啟后,被非法利用,遠(yuǎn)程侵入服務(wù)器。
服務(wù)進(jìn)程會(huì)由時(shí)鐘觸發(fā),定期判斷是否有新的接入請(qǐng)求,以及斷開(kāi)失效連接。當(dāng)有新的請(qǐng)求接入,服務(wù)進(jìn)程fork子進(jìn)程進(jìn)行處理,并將子進(jìn)程pid進(jìn)行記錄,以便回收處理、斷開(kāi)連接等。子進(jìn)程中會(huì)采用偽終端處理連接,由從設(shè)備開(kāi)啟交互服務(wù),主設(shè)備處理與連接請(qǐng)求方的鏈路通信。
服務(wù)進(jìn)程在接收到關(guān)閉服務(wù)消息后,會(huì)將開(kāi)啟中的服務(wù)中斷。如無(wú)業(yè)務(wù)維護(hù)操作時(shí),通過(guò)定期關(guān)閉服務(wù),可以提高服務(wù)安全性。
運(yùn)行在代理主機(jī)上的接入封裝進(jìn)程,能有效的處理管理功能域的請(qǐng)求消息,執(zhí)行本機(jī)接入操作。該封裝進(jìn)程還可以將常用交互操作進(jìn)行批量處理:順序執(zhí)行命令;可變信息通過(guò)通用消息進(jìn)行傳參;對(duì)于交互服務(wù)的應(yīng)答則通過(guò)枚舉正則匹配、實(shí)現(xiàn)跳轉(zhuǎn)[8]。
進(jìn)程還有回收過(guò)期會(huì)話功能,當(dāng)管理功能域的接入控制功能失效時(shí),能自行處理失效會(huì)話,以回收系統(tǒng)資源。
接入控制進(jìn)程負(fù)責(zé)與上層業(yè)務(wù)維護(hù)接口交互,并管理多個(gè)遠(yuǎn)程主機(jī)上的接入會(huì)話。在與上層維護(hù)操作交互過(guò)程中,進(jìn)程記錄所有的操作命令,以及應(yīng)答信息,使操作過(guò)程可回放。進(jìn)程通過(guò)會(huì)話池方式管理遠(yuǎn)程主機(jī)會(huì)話,定期斷開(kāi)失效會(huì)話,并提供會(huì)話信息查看功能。
采用chown命令將登錄服務(wù)程序所有者更改為root,并設(shè)置該程序的SUID——使程序可以被代理功能域的用戶運(yùn)行,則在服務(wù)啟動(dòng)后的euid是0。通過(guò)setuid操作,可以將交互服務(wù)的所有者更改為其他所期望接入的用戶。之后執(zhí)行bash login時(shí),則自動(dòng)登錄到指定業(yè)務(wù)用戶。為增強(qiáng)用戶接入管理安全性,可以增加黑白名單用戶列表,使登錄服務(wù)禁止無(wú)密碼接入重要業(yè)務(wù)用戶,或僅能跳轉(zhuǎn)到指定用戶。該功能采用的登錄方式的是non-login shell,如果需要切換到業(yè)務(wù)用戶的配置環(huán)境,則只需要執(zhí)行命令:source/destDir/.*profile。
在假定網(wǎng)管系統(tǒng)的安全性基礎(chǔ)上,無(wú)密碼登錄遠(yuǎn)程主機(jī)功能,因?yàn)椴恍枰诰W(wǎng)絡(luò)上傳輸密碼,并沒(méi)有額外風(fēng)險(xiǎn),所以它是安全的。基于該功能可以有效的利用網(wǎng)管的代理機(jī)制,實(shí)現(xiàn)操作維護(hù)入口的整合。該綜合維護(hù)平臺(tái),能讓業(yè)務(wù)維護(hù)人員從繁瑣的密碼管理工作中解脫,便捷的訪問(wèn)所有受控遠(yuǎn)程主機(jī)、進(jìn)行維護(hù);可以將常用維護(hù)操作封裝處理,讓維護(hù)工作更加方便。
[1] 王萌, 朱曉民, 李煒. 基于插件技術(shù)的綜合網(wǎng)管系統(tǒng)通用網(wǎng)元代理的分析與設(shè)計(jì)[J]. 電信工程技術(shù)與標(biāo)準(zhǔn)化, 2012, (8):81-84.
[2] 宋蕾. 智能網(wǎng)網(wǎng)管系統(tǒng)設(shè)備側(cè)代理的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué), 2005.
[3] QB-Y-065-2010, 中國(guó)移動(dòng)業(yè)務(wù)支撐網(wǎng)4A安全技術(shù)規(guī)范[S].
[4] 張蓮龍, 李煒. 一種騷擾電話識(shí)別與監(jiān)控技術(shù)[J]. 北京工商大學(xué)學(xué)報(bào)(自然科學(xué)版), 2009, 27(5):31.
[5] 郭盛興, 王晶, 廖建新. 基于通用消息的持久化消息隊(duì)列設(shè)計(jì)[J]. 北京工商大學(xué)學(xué)報(bào)(自然科學(xué)版), 2010, 28(1):69-71.
[6] 彭淑芬, 張穎江, 崔成法. Linux偽終端設(shè)備及其在L2TP中的應(yīng)用[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2005, 26(7):1956.
[7] 盧東, 陸以勤, 呂錦. 利用偽終端實(shí)現(xiàn)串行通信鏈路復(fù)用功能[J]. 嵌入式軟件應(yīng)用, 2008, 24(12):75.
[8] 杭州東信北郵信息技術(shù)有限公司.多個(gè)網(wǎng)絡(luò)設(shè)備智能操作邏輯的實(shí)現(xiàn)方法和系統(tǒng)[P].中國(guó):2011103052894,2012-03-21.
電信工程技術(shù)與標(biāo)準(zhǔn)化2013年11期