經(jīng)過適當(dāng)設(shè)置后,通過SSH服務(wù),你可以安全地從遠(yuǎn)程訪問服務(wù)器,你也許并不喜歡總是在自己的機(jī)器上運(yùn)行著SSH服務(wù)器。保衛(wèi)后門(SBD)這種技術(shù)能夠建立通向系統(tǒng)的加密連接,這樣你就可以遠(yuǎn)程執(zhí)行任何操作系統(tǒng)的命令,比如啟動(dòng)SSH或者Web服務(wù)器或者重啟服務(wù)器。
SBD可以監(jiān)聽任何你想監(jiān)聽的端口。如果你不特別指定某個(gè)窗口,那么它就會(huì)默認(rèn)地監(jiān)聽31415端口。該應(yīng)用的傳輸協(xié)議是SBD,該協(xié)議是基于一次一密的亂數(shù)本密鑰以及按鍵哈什表信息校驗(yàn)碼(HMAC)技術(shù)的。
客戶端和服務(wù)器端應(yīng)當(dāng)擁有相同的密鑰,用戶才可以接受遠(yuǎn)程命令。這些密鑰就是兩份帶有隨機(jī)生成的字符的身份識(shí)別文件,該密鑰只能在首次連接的時(shí)候創(chuàng)建的,人們必需要謹(jǐn)慎使用并保持它的神秘氣息。
安裝和使用
SBD最新的穩(wěn)定版本是0.5版,是在2005年2月發(fā)布的全功能版。下載源代碼包,將其解壓縮到/usr/local,并編譯如下的二進(jìn)制文件:
|
你得用C++編譯器以及上述的開發(fā)庫(kù)才能順利編譯這些二進(jìn)制代碼。你可以參考?jí)嚎s文件夾中的Readme文件來了解更多關(guān)于如何編譯SBD和使用方法的說明。
為了讓客戶能夠成功在服務(wù)器上執(zhí)行遠(yuǎn)程命令,你需要?jiǎng)?chuàng)建兩個(gè)身份文件——即客戶用的enckey.bits,和服務(wù)器用的deckey.bits。你可以在空白文件中輸入隨機(jī)選擇的字符,并把它保存成enckey.bits。把該文件復(fù)制到deckey.bits就行了。該文件沒有字?jǐn)?shù)限制,你用越多字符越好。
目錄中還有另一個(gè)服務(wù)器用的隨機(jī)字符文件叫做athkey.bits,它是用來識(shí)別最基本的客戶端IP偽裝的。文件中的字符只是測(cè)試用的,你需要用自己隨機(jī)生稱得字符來創(chuàng)建自己的文件,跟創(chuàng)建enckey.bits和deckey.bits一樣。
一旦服務(wù)器都設(shè)定好了,接著就應(yīng)該把SBD客戶端的二進(jìn)制文件和enckey.bits文件安裝或者復(fù)制到客戶機(jī)上。你可以在客戶機(jī)上運(yùn)行早已編譯過的SBD二進(jìn)制文件,或者如果這樣做行不通的話,你還可以在客戶端上建立二進(jìn)制文件。
你現(xiàn)在可以測(cè)試SBD服務(wù)器。為了在12345端口啟動(dòng)SBD服務(wù)器,可以運(yùn)行./sbdd 12345。
要想從遠(yuǎn)程客戶端啟動(dòng)SSH服務(wù)器,就運(yùn)行如下命令行:
|
用服務(wù)器的真實(shí)地址替代server.IP.address項(xiàng)。如果每項(xiàng)都沒有問題的話,那么客戶機(jī)就會(huì)顯示如下信息:
|
這條秘密信息就是你能從SBD得到的唯一的成功標(biāo)志,如果你要確定SSH服務(wù)已經(jīng)在服務(wù)器上啟動(dòng)了,可以檢查/var/log/syslog。
如果你的客戶端和服務(wù)器上沒有身份安全密碼,你就會(huì)看到如下的錯(cuò)誤提示:
|
如果你的SBD服務(wù)器并沒有運(yùn)行或者你正在從錯(cuò)誤的端口訪問,你就會(huì)收到如下的錯(cuò)誤提示:
|
使用SBD,你可以遠(yuǎn)程執(zhí)行任何命令,就像你真正登陸到SBD服務(wù)器上一樣。例如,比起SSH,使用SBD的話,你就不會(huì)總是有易受攻擊的服務(wù)暴露到網(wǎng)上。最好的操作方法就是只有在真正需要的時(shí)候才運(yùn)行那些你很少用的服務(wù)。SBD讓你少為系統(tǒng)安全操心。
=============================================
參考文章:Anže Vidmar《A keyhole for your system's back door》