編者按:系統自帶的FTP組件使用和管理起來更加高效快捷,但也成為了黑客重點攻擊的目標。其實,只有合理有序地配置FTP服務器,就可以有效提高其安全性。這里就以Windows Server 2012提供的FTP 8.0組件為例,來深入分析具體的實現方法。
在Windows Server 2012中打開管理工具窗口,然后雙擊Internet Information Service(IIS)管理器,在IIS管理器窗口左側選擇服務器名,在窗口中部的“FTP”欄中雙擊“FTP登錄嘗試限制”項,在彈出界面中勾選“啟用FTP登錄嘗試限制”項,在“最大登錄嘗試失敗次數”欄中設置登錄失敗上限值,默認為4次。在“時間段”欄中設置判斷周期,單位為秒,默認為30 s。選擇“基于登錄嘗試失敗次數拒絕IP地址”項,在右側的操作欄中點擊“應用”鏈接,激活該功能。
如果選擇“僅寫入日志”項,則僅僅將黑客的可疑登錄行為寫入到FTP日志文件中,而不會對其非法連接進行限制。
為了提高靈活性,可以將該功能和系統的密碼策略配合起來使用。因為出于安全性考慮,一般是不允許匿名登錄FTP的,只有使用特定的賬戶才可以連接FTP服務器。
首先點擊“Windows+R”組合鍵,并執行“gpedit.msc”程序,在組策略窗口左側依次選擇“計算機配置”→“Windows設置”→“安全設置”→“賬戶策略”→“密碼策略”項,在其中可以設置很多和密碼的相關安全規則。例如,設置密碼的復雜度、長度最小值、最長最短使用期限以及強制密碼歷史等。
在“賬戶鎖定策略”欄中雙擊“賬戶鎖定閾值”項,在其屬性窗口中設置合適的鎖定次數,比如設置為6次。雙擊“賬戶鎖定時間”項,設置鎖定的具體時間。
對應地,將FTP的登錄嘗試次數設置為5次。這樣,當黑客在規定時間內連續5次連接失敗,就會被FTP服務器攔截。

但是,正常的用戶可以排除此干擾正常的登錄系統,因為合法用戶還有一次正常登錄系統的機會。
出于安全考慮,FTP管理員希望能夠對用戶的操作進行合理的限制,例如禁止瀏覽、上傳和下載具有潛在風險的文件等危險的命令的。這里就可以利用FTP請求篩選功能來實現。
在IIS管理器中選擇服務器名(或者選擇具體的FTP主機名),在窗口中部的“FTP”欄中雙擊“FTP請求篩選”項,在彈出界面的“文件擴展名”面板的右鍵菜單中點擊“拒絕文件擴展名”項,在打開的編輯欄中輸入需要限制文件擴展名,例如“.exe”等,點擊“確定”,將其添加到文件擴展名列表中。
按照同樣的方法,可以添加任意文件類型,拒絕客戶端對其進行瀏覽及上傳下載等操作。在FTP目錄中,往往存在很多文件和目錄,當管理員不希望客戶端查看某些文件或進出某些目錄時,可以對其進行限制。在“隱藏段”面板的右鍵菜單中點擊“添加隱藏段”項,在彈出窗口中輸入文件名或者目錄名(例如“jimi”等)。這樣,客戶端雖然可以連接FTP服務器,但是卻無法查看指定的文件或目錄,當然無法進入該目錄進行各種操作。
同理,可以添加任意多個文件名和目錄名,禁止客戶端進行瀏覽。對于FTP目錄中的有些文件夾來說,管理員希望禁止用戶對其進行更名操作,或者禁止其進入該目錄。為此,可以在“拒絕的URL序列”面板的右鍵菜單中點擊“添加URL序列”項,在彈出窗口中輸入具體的目錄名(例如“共享文檔”等),點擊“確定”按鈕保存設置。這樣,客戶端試圖對該目錄進行更名或者訪問時,會遭到FTP服務器的攔截,并顯示警告信息。
在“命令”面板的右鍵菜單中點擊“拒絕命令”項,在彈出窗口中輸入具體的命令(如“dele”等),點擊“確定”保存配置。這樣,當客戶端試圖刪除FTP服務器上的文件時,就會遭到服務器的攔截,同時會收到FTP服務器發來的警告信息。這里可使用CuteFTP等工具連接FTP服務器,當執行各種操作時,在窗口中部的連接信息中可查看到對應的命令信息。
為了提高FTP安全性,是不允許采取匿名登錄的。這就需要對用戶的訪問進行授權,即只能允許用戶使用特定的賬戶來訪問FTP服務器。例如,可以在CMD窗口中執行“net user ftpuser1 p[]123qwe/add”命令,創建名為“ftpuser1”的賬戶。之后在FTP站點主目錄的屬性窗口中打開“安全”面板,在其中點擊“添加”按鈕,在選擇用戶和組窗口中點擊“高級”按鈕,在彈出面板中點擊“立即查找”按鈕,搜索本機中所有賬戶信息。選擇“ftpuser1”賬戶,將其添加到FTP目錄的“組或用戶名”列表中。
選擇該賬戶,在權限列表中選擇合適的權限,例如讀取、寫入和修改等。設置了合適的權限后,在IIS管理器中的“FTP”欄中雙擊“FTP授權規則”項,在右側的“操作”欄中點擊“添加允許規則”項,在彈出窗口中選擇“指定的用戶”項嗎,輸入“ftpuser1”賬戶名,可以輸入多個賬戶,且彼此之間要以頓號分隔。在“權限”列表中選擇“讀取”和“寫入”項。
注意,因為FTP的權限是在Windows用戶權限的基礎上的實現的,所以僅僅在這里開訪問權限是不夠的。必須按照上述方法,針對FTP目錄為具體的賬戶添加對應的權限,否則的話,在訪問FTP服務器時會出現權限不足的問題。
點擊“確定”按鈕保存配置信息。這樣,客戶端就可以利用該賬戶登錄FTP服務器,按照預設的權限執行瀏覽、上傳及修改等操作。
當然,也可以在添加允許授權規則窗口中選擇所有用戶、所有匿名用戶、指定的角色或用戶組等對象,為其設置合理的訪問權限。
對應地,如果點擊“添加拒絕規則”鏈接,那么其作用剛好與上述功能相反,可以限制指定的用戶對FTP服務器的訪問權限。
在某些情況下,限制FTP服務器只允許來自特定的IP進行訪問,可以有效防范黑客的襲擾。
首先在IIS管理器中選擇服務器名(或者選擇具體的FTP主機名),在中部的“FTP”欄中雙擊“FTP IP地址和域限制”項,在彈出界面右側的“操作”欄中點擊“添加允許條目”鏈接,在彈出窗口中可以輸入單個的IP或者指定的IP范圍,點擊“確定”按保存配置。這樣,當這些IP訪問FTP服務器時,就可以正常連接了。
對應地,點擊“添加拒絕條目”鏈接,可以設置禁止訪問本FTP服務器的IP或者IP范圍。
點擊“編輯功能設置”鏈接,在彈出窗口中的“未指定的客戶端的訪問權”列表中,如果選擇“拒絕”項,那么當非允許IP范圍外的主機訪問本FTP服務器時,將禁止其進行連接。
而如果選擇“允許”項,則情況剛好相反,只要不是禁止列表中的IP,都可以正常訪問本FTP服務器。如果選擇“啟用域名限制”項,那么在執行上述“添加允許條目”和“添加拒絕條目”操作時,可以輸入允許或者禁止的域名信息。
例如,在“添加拒絕限制規則”窗口中選擇“域名”項,輸入“*.xxx.com”的域名,那么本FTP服務器將拒絕所有后綴為“xxx.com”的主機訪問操作。
在默認情況下,FTP服務器是允許所有用戶進行連接的。如果出于安全性的考慮,只針對特定的用戶開放的話,就需要客戶端輸入對應的賬戶名和密碼,來連接FTP服務器。
在IS8.0中提供了基本身份驗證、匿名身份驗證、摘要式身份驗證和Windows身份驗證。這里以基本身份認證為例進行說明。

在“FTP身份驗證窗口”中選擇“基本身份驗證”項,在右側點擊“啟用”項,激活該身份驗證方式。當然,這需要管理員在本地安全數據庫或者Active Directory數據庫中創建好對應的賬戶信息,并針對FTP目錄為不同的賬戶分配不同訪問權限,同時在“FTP授權規則”窗口將其添加進來,客戶端才可以利用對應的賬戶順利訪問FTP服務器。為了進一步提高安全性,可以使用該種身份驗證方式應該和SSL安全連接配合使用。
在“FTP身份驗證窗口”中選擇“基本身份驗證”項,在右側點擊“編輯”鏈接,在彈出窗口中的“默認域”欄中輸入特定的域名。這樣FTP服務器會將客戶端使用的賬戶作為域賬戶對待,將賬戶名和密碼發送給該域的域控制器進行檢查。當然,前提是FTP服務器必須加入該域環境。
為了防止黑客攔截數據,需要使用安全加密傳輸,來保證數據的安全性。
Windows Server 2012中的FTP服務支持FTP Over SSL工具,允許FTP客戶端使用SSL安全連接與FTP服務器進行通訊。當然前提是必須為FTP服務器申請和安裝SSL安全連接證書。常用的證書包括自簽名證書、域證書和第三方證書。
在IIS管理器中選擇FTP服務器,在窗口中部雙擊“FTP SSL設置”項,在彈出界面中的“SSL證書”列表中選擇合適的證書,選擇“允許SSL連接”項,表示允許客戶端利用SSL方式來連接本FTP服務器。
選擇“將128位加密用于SSL連接”項,表示客戶端需要采用128位加密方式。點擊右側的“應用”鏈接,激活該功能。而如果選擇“需要SSL連接”項,表示客戶端必須使用SSL連接FTP服務器。
選擇“自定義”項,點擊“高級”按鈕,在高級SSL策略窗口中,可以針對控制通道和數據通道,進行合適的調整操作。
例如,選擇“允許”項,表示允許使用SSL連接,選擇“要求”項,表示必須使用SSL連接。選擇“拒絕”項,表示拒絕SSL連接。選擇“只有憑證才需要”項,表示當客戶端傳送賬戶名和密碼時才使用SSL加密,該功能只針對控制通道發揮作用。
上述兩個通道針對的是在客戶端和FTP服務器之間存在防火墻而言的。當激活了SSL加密功能后,客戶端就可以使用CuteFTP等工具來連接SSL FTP服務器,在傳輸過程中,數據就處于加密狀態,可以有效防御黑客的嗅探操作。
一般來說,常用的是Windows Server自帶的防火墻,來保護主機的安全。為了解決該問題,可以在IIS管理器中的“FTP”欄中雙擊“FTP防火墻支持”項,在彈出界面中的“數據通道端口范圍”欄中輸入一個端口范圍,例如9 000~9 100等。
這樣,就可以為客戶端和FTP服務器端的數據通道開啟一段端口,讓客戶端和FTP服務器端可以避開防火墻的限制,自由的傳輸數據。當然,還需要在Windows防火墻設置界面中,來開放這一段端口,才可以達到所需的要求。

如果FTP服務器位于NAT設備之后,那么FTP服務器使用就是私有IP,當在被動模式下服務器端將自己的IP以及動態生成連接端口發送給客戶端時,就會因為外部客戶端主機無法和內網IP通訊,造成連接失敗的情況。
為了解決該問題,可以在“FTP防火墻支持”界面中的“防火墻的外部IP地址”欄中設置防火墻的外部IP,這樣,當FTP服務器向客戶端發送數據包時,就會自動將數據包中FTP服務器的私有IP替換為防火墻的外部IP,讓客戶端和FTP服務器的連接可以順利進行。