1. 程式人生 > >搭建安全的FTP伺服器(SERV-U SSH)zz

搭建安全的FTP伺服器(SERV-U SSH)zz

通過FTP站點下載檔案是目前最常用的傳輸檔案方法之一,特別是對於企業使用者來說,公司建立一個專門的FTP伺服器提供給員工,讓他們通過這個伺服器共享資源是最便利的辦法。不過作為網路管理員的你是否真正瞭解FTP的安全呢?不要以為設定個複雜的管理員帳戶密碼就可以萬事無憂了,也不要以為將系統安裝上最新的補丁或者選擇最新版SERV-U等FTP搭建工具就可以萬無一失了。今天就由筆者帶領為大家介紹在預設情況下FTP站點傳輸資料方面的漏洞,當然在文中還會為讀者介紹如何彌補這些漏洞。

一、破解FTP使用者名稱和密碼

首先我們要知道預設情況下FTP站點資訊是用明文進行傳輸的,沒有進行任何的加密。也就是說當用戶登入FTP站點輸入使用者名稱和密碼時,這些資訊是沒有加密的。非法使用者可以通過sniffer等工具將這些資訊還原成本來面目。

實戰:通過sniffer將FTP站點的使用者名稱和密碼還原成明文

環境描述:

公司網路中AB兩臺計算機通過交換機相互連線到同一個子網,B是員工計算機,一名員工通過他訪問公司的FTP伺服器,登入FTP時使用自己的使用者名稱和密碼。A是我們安裝了sniffer的計算機,通過sniffer我們可以監測出使用B計算機的員工訪問FTP伺服器的使用者名稱和密碼。

實現方法:

第一步:首先在A計算機上安裝強大的sniffer工具,並啟動該程式。

第二步:在sniffer軟體中通過上方的“matrix”按鈕啟動監測介面。(如圖1)

圖1


第三步:開啟監測介面後我們就可以開始監測網路中的資料包了,通過選單欄的“capture->start”啟動。

第四步:在檢測資料包視窗中我們點左下角的objects標籤,然後選擇station,這樣將把當前網路中所有通訊都顯示在視窗中。(如圖2)

圖2


第五步:這時候如果B計算機的員工使用電腦登入了FTP伺服器,那麼我們在sniffer中點選單的“capture->stop and display”。

第六步:這裡假設我們FTP伺服器的IP地址為211.154.80.30,那麼我們從顯示的地址列表中找到關於211.154.80.30這個IP的資料包,然後點下方的“DECODE”按鈕進行資料包再分析。(如圖3)

圖3


第七步:在“DECODE”(反編碼)介面中我們就可以對關於211.154.80.30的所有資料包進行分析了。我們一個一個的分析資料包,分析到大概第十二個資料包時出現使用者名稱資訊,我們可以從介面中看到使用者名稱為softer。(如圖4)

圖4


第八步:繼續往下看,到了第十四個資料包的時候就可以看到密碼了,密碼以明文的形式顯示在sniffer中,密碼為pacino。(如圖5)
 
圖5


至此我們就通過sniffer工具將員工在FTP伺服器上的使用者名稱和密碼破解出來,該方法在員工和安裝了sniffer的計算機處在同一個子網的情況下有效。

二、加密FTP站點資訊的傳輸

既然知道了FTP伺服器是以明文方式傳輸資料的,特別是使用者名稱和密碼傳輸的安全性極差,資訊很容易被盜,雖然FTP提供了SSL加密的功能,不過預設情況下是沒有啟用的,如大家常用的Serv-U FTP伺服器(簡稱Serv-U)。所以說為了保證傳輸的資料資訊不被隨意竊取,有必要啟用SSL功能,提高伺服器資料傳輸的安全性。我們以Serv-u為例進行介紹來彌補這個安全缺陷。

小提示:什麼是SSL加密協議?SSL協議(Secure Socket Layer,安全套接層)是由網景(Netscape)公司推出的一種安全通訊協議,它能夠對信用卡和個人資訊提供較強的保護。SSL是對計算機之間整個會話進行加密的協議。在SSL中,採用了公開金鑰和私有金鑰兩種加密方法。所以使用SSL協議後我們就可以保證網路中傳輸的資料不被非法使用者竊取到了。

   (1)安裝Serv-U伺服器

由於安裝Serv-U的文章比較多,所以本文就不詳細介紹了。(如圖6)安裝完畢後我們要建立一個FTP伺服器的域並設定相應的使用者名稱和密碼。

   (2)建立SSL證書

要想使用Serv-U的SSL功能,需要SSL證書的支援才行。雖然Serv-U在安裝之時就已經自動生成了一個SSL證書,但這個預設生成的SSL證書在所有的Serv-U伺服器中都是一樣的,非常不安全,所以我 們需要手工建立一個自己獨特的SSL證書。

第一步:在“Serv-U管理員”視窗中,展開“本地伺服器->設定”選項,然後切換到“SSL證書”標籤頁。

第二步:建立一個新的SSL證書。首先在“普通名稱”欄中輸入FTP伺服器的IP地址,接著其它欄目的內容,如電子郵件、組織和單位等,根據使用者的情況進行填寫。(如圖7)

圖7


第三步:完成SSL證書標籤頁中所有內容的填寫後,點選下方的“應用”按鈕即可,這時Serv-U就會生成一個新的SSL證書。

   (3)啟用SSL功能

雖然為Serv-U伺服器建立了新的SSL證書,但預設情況下,Serv-U是沒有啟用SSL功能的,要想利用該SSL證書,首先要啟用Serv-U的SSL功能才行。

第一步:要啟用Serv-U伺服器中域名為“softer”的SSL功能。在“Serv-U管理員”視窗中,依次展開“本地伺服器->域->softer”選項。

第二步:在右側的“域”管理框中找到“安全性”下拉列表選項。這裡Serv-U提供了3種選項,分別是“僅僅規則FTP,無SSL/TLS程序”、“允許SSL/TLS和規則程序”、“只允許SSL/TLS程序”,預設情況下,Serv-U使用的是“僅僅規則FTP,無SSL/TLS程序”,因此是沒有啟用SSL加密功能的。

第三步:在“安全性”下拉選項框種選擇“只允許SSL/TLS程序”選項,然後點選“應用”按鈕,即可啟用softer域的SSL功能。 (如圖8)

圖8



小提示:啟用了SSL功能後,Serv-U伺服器使用的預設埠號就不再是“21”了,而是“990”了,這點在登入FTP的時候一定要留意,否則就會無法成功連線FTP伺服器。

(4)使用SSL加密連線FTP

啟用Serv-U伺服器的SSL功能後,就可以利用此功能安全傳輸資料了,但FTP客戶端程式必須支援SSL功能才行。如果我們直接使用IE瀏覽器進行登入則會出現圖9顯示的錯誤資訊,一方面是以為沒有修改預設的埠21為990,另外IE瀏覽器不支援SSL協議傳輸。

當然支援SSL的FTP客戶端程式現在也比較多,筆者以“Flash FXP”程式為例,介紹如何成功連線到啟用了SSL功能的Serv-U伺服器。

第一步:執行“FlashFXP”程式後,點選“會話->快速連線”選項,彈出“快速連線”對話方塊,在“伺服器或URL”欄中輸入Serv-U伺服器的IP地址,在“埠”欄中一定要輸入“990”,這是因為Serv-U伺服器啟用SSL功能後,埠號就從“21”變為“990”。

第二步:輸入可以正常登入FTP伺服器的“使用者名稱”和“密碼”。 (如圖10)

圖10


第三步:切換到“SSL”標籤頁,選中“絕對SSL”選項,這一步驟是非常關鍵的,如果不選中“絕對SSL”,就無法成功連線到Serv-U伺服器。最後點選“連線”按鈕。 根據實際傳輸情況在絕對SSL下方的四個選項進行選擇即可。(如圖11)
圖11

第四步:當用戶第一次連線到Serv-U伺服器時,Flash FXP會彈出一個“證書”對話方塊,(如圖12)這時使用者只要點選“接受並儲存”按鈕,將SSL證書下載到本地後,就能成功連線到Serv-U伺服器,以後和Serv-U伺服器間的資料傳送就會受到SSL功能的保護,不再是以明文形式傳送,這樣就不用再擔心FTP賬號被盜,敏感資訊被竊取的問題了。在Flash FXP的下方我們也會看到一個小鎖的標誌了,他代表當前傳輸是加密安全的傳輸。(如圖13)

圖12

圖13


小提示:如果我們僅僅選擇接受則每次登入FTP時都會彈出這個證書對話方塊。

總結:通過設定使用SSL進行加密傳輸的FTP站點就可以有效的保護自己伺服器上的資源不被別人隨意偷窺了,只有通過認證的使用者才能下載到自己中意的檔案資源。而且傳輸過程中的所有資料都是進行加密的,網路中的其他使用者使用類似sniffer的軟體是無法將登入資訊還原成明文的,即使能夠獲得傳輸資料也是經過加密的,一點價值也沒有。