一、FTP并不安全
我們知道默認情況下FTP站點信息是用明文進行傳輸的,沒有進行任何的加密。也就是說當用戶登錄FTP站點輸入用戶名和密碼時,這些信息是沒有加密的。非法用戶可以通過sniffer等工具將這些信息還原成本來面目。下面我們做個檢測,通過sniffer將FTP站點的用戶名和密碼還原成明文。
測試環境:
企業網絡中A、B兩臺計算機通過交換機相互連接到同一個子網,B是員工計算機,一名員工通過他訪問公司的FTP服務器,登錄FTP時使用自己的用戶名和密碼。A是我們安裝了sniffer的計算機,通過sniffer我們可以監測出使用B計算機的員工訪問FTP服務器的用戶名和密碼。
測試過程:
第一步首先在A計算機上安裝sniffer嗅探工具,并啟動該程序。在sniffer軟件中通過上方的“matrix”(矩陣)按鈕啟動監測界面,打開監測界面后我們就可以開始監測網絡中的數據包了。通過菜單欄的“capture(捕獲)→start(開始)”啟動。在檢測數據包窗口中我們點左下角的objects(對象)標簽,然后選擇station(狀態),這樣將把當前網絡中所有通信都顯示在窗口中。(圖1)
第二步:這時候我們通知B計算機的員工使用電腦登錄了FTP服務器,那么我們在sniffer中點菜單的“capture(捕獲)→stop and display(停止并顯示)”。這里假設我們FTP服務器的IP地址為192.168.1.20,那么我們從顯示的地址列表中找到關于192.168.1.20這個IP的數據包,然后點下方的“DECODE(反解碼)”按鈕進行數據包再分析。(圖2)
第三步:在“DECODE”(反編碼)界面中我們就可以對關于192.168.1.20的所有數據包進行分析了。我們一個一個的分析數據包,分析到大概第十九個數據包時出現用戶名信息,我們可以從界面中看到用戶名為lw。繼續往下看,到了第二十一個數據包的時候就可以看到密碼了,密碼以明文的形式顯示在sniffer中,密碼為test168。(圖3)
至此我們就通過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非常簡單,所以本文就不詳細介紹了。安裝完畢后我們要建立一個FTP服務器的域并設置相應的用戶名和密碼。(圖4)
(2)創建SSL證書
要想使用Serv-U的SSL功能,需要SSL證書的支持才行。雖然Serv-U在安裝之時就已經自動生成了一個SSL證書,但這個默認生成的SSL證書在所有的Serv-U服務器中都是一樣的,非常不安全,所以我們需要手工創建一個自己獨特的SSL證書。
第一步:在“Serv-U管理員”窗口中,展開“本地服務器→設置”選項,然后切換到“SSL證書”標簽頁。
第二步:創建一個新的SSL證書。首先在“普通名稱”欄中輸入FTP服務器的IP地址,接著其它欄目的內容,如電子郵件、組織和單位等,#p#分頁標題#e#根據用戶的情況進行填寫。(圖5)
第三步:完成SSL證書標簽頁中所有內容的填寫后,點擊下方的“應用”按鈕即可,這時Serv-U就會生成一個新的SSL證書。
(3)啟用SSL功能
雖然為Serv-U服務器創建了新的SSL證書,但默認情況下,Serv-U是沒有啟用SSL功能的,要想利用該SSL證書,首先要啟用Serv-U的SSL功能才行。
第一步:要啟用Serv-U服務器中域名為“ftp”的SSL功能。在“Serv-U管理員”窗口中,依次展開“本地服務器→域→ftp”選項。
第二步:在右側的“域”管理框中找到“安全性”下拉列表選項。這里Serv-U提供了3種選項,分別是“僅僅規則FTP,無SSL/TLS進程”、
“允許SSL/TLS和規則進程”、“只允許SSL/TLS進程”,默認情況下,Serv-U使用的是“僅僅規則FTP,無SSL/TLS進程”,因此是沒有啟用SSL
加密功能的。
第三步:在“安全性”下拉選項框種選擇“只允許SSL/TLS進程”選項,然后點擊“應用”按鈕,即可啟用softer域的SSL功能。(圖6)
提示:啟用了SSL功能后,Serv-U服務器使用的默認端口號就不再是“21”了,而是“990”了,這點在登錄FTP的時候一定要留意,否則就會無法成功連接FTP服務器。
(4)使用SSL加密連接FTP
啟用Serv-U服務器的SSL功能后,就可以利用此功能安全傳輸數據了,但FTP客戶端程序必須支持SSL功能才行。如果我們直接使用IE瀏覽器進行登錄則會出現圖7顯示的錯誤信息,一方面是以為沒有修改默認的端口21為990,另外IE瀏覽器不支持SSL協議傳輸。(圖7)
當然支持SSL的FTP客戶端程序現在也比較多,筆者以“Flash FXP”程序為例,介紹如何成功連接到啟用了SSL功能的Serv-U服務器。
第一步:運行“FlashFXP”程序后,點擊“會話→快速連接”選項,彈出“快速連接”對話框,在“服務器或URL”欄中輸入Serv-U服務器
的IP地址,在“端口”欄中一定要輸入“990”,這是因為Serv-U服務器啟用SSL功能后,端口號就從“21”變為“990”。(圖8)
第二步:輸入可以正常登錄FTP服務器的“用戶名”和“密碼”。
第三步:切換到“SSL”標簽頁,選中“絕對SSL”選項,這一步驟是非常關鍵的,如果不選中“絕對SSL”,就無法成功連接到Serv-U服務器。最后點擊“連接”按鈕。 根據實際傳輸情況在絕對SSL下方的四個選項進行選擇即可。(圖9)
第四步:當用戶第一次連接到Serv-U服務器時,Flash FXP會彈出一個“證書”對話框如圖10,這時用戶只要點擊“接受并保存”按鈕,將SSL證書下載到本地后,就能成功連接到Serv-U服務器,以后和Serv-U服務器間的數據傳送就會受到SSL功能的保護,不再是以明文形式傳送,這樣就不用再擔心FTP賬號被盜,敏感信息被竊取的問題了。在Flash FXP的下方我們也會看到一個小鎖的標志了,他代表當前傳輸是加密安全的傳輸。(圖10)
提示:如果我們僅僅選擇接受則每次登錄FTP時都會彈出這個證書對話框。
總結:通過設置使用SSL進行加密傳輸的FTP站點就可以有效的保護自己服務器上的資源不被別人隨意偷窺了,只有通過認證的用戶才能下載到自己所需的文件資源。而且傳輸過程中的所有數據都是進行加密的,網絡中的其他用戶使用類似sniffer的軟件是無法將登錄信息還原成明文的,即使能夠獲得傳輸數據也是經過加密的,一點價值也沒有。