FTP是互聯網應用中的一個元老級人物了,其方便企業用戶文件的共享。但是,安全問題也一直伴隨在FTP左右。如何防止攻擊者通過非法手段竊取FTP服務器中的重要信息;如何防止攻擊者利用FTP服務器來傳播木馬與病毒等等。這些都是系統管理員所需要關注的問題。這次我就已Linux操作系統平臺上使用的最廣泛的VSFTP為例,談談如何來提高FTP服務器的安全性。
一、禁止系統級別用戶來登錄FTP服務器。
為了提高FTP服務器的安全,系統管理員最好能夠為員工設置單獨的FTP帳號,而不要把系統級別的用戶給普通用戶來使用,這會帶來很大的安全隱患。在VSFTP服務器中,可以通過配置文件vsftpd.ftpusers來管理登陸帳戶。不過這個帳戶是一個黑名單,列入這個帳戶的人員將無法利用其帳戶來登錄FTP服務器。部署好VSFTP服務器后,我們可以利用vi命令來查看這個配置文件,發現其已經有了許多默認的帳戶。其中,系統的超級用戶root也在其中。可見出于安全的考慮,VSFTP服務器默認情況下就是禁止root帳戶登陸FTP服務器的。如果系統管理員想讓root等系統帳戶登陸到FTP服務器,則知需要在這個配置文件中將root等相關的用戶名刪除即可。不過允許系統帳戶登錄FTP服務器,會對其安全造成負面的影響,為此我不建議系統管理員這么做。對于這個文件中相關的系統帳戶管理員最好一個都不要改,保留這些帳號的設置。
如果出于其他的原因,需要把另外一些帳戶也禁用掉,則可以把帳戶名字加入到這個文件中即可。如在服務器上可能同時部署了FTP服務器與數據庫服務器。那么為了安全起見,把數據庫管理員的帳戶列入到這個黑名單,是一個不錯的做法。
二、加強對匿名用戶的控制。
匿名用戶是指那些在FTP服務器中沒有定義相關的帳戶,而FTP系統管理員為了便于管理,仍然需要他們進行登陸。但是他們畢竟沒有取得服務器的授權,為了提高服務器的安全性,必須要對他們的權限進行限制。在VSFTP服務器上也有很多參數可以用來控制匿名用戶的權限。系統管理員需要根據FTP服務器的安全級別,來做好相關的配置工作。需要說明的是,匿名用戶的權限控制的越嚴格,FTP服務器的安全性越高,但是同時用戶訪問的便利性也會降低。故最終系統管理員還是需要在服務器安全性與便利性上取得一個均衡。
下面是我推薦的幾個針對匿名用戶的配置,大家若不清楚該如何配置的話,可以參考這些配置。這些配置兼顧了服務器的安全與用戶的使用便利。
一是參數anon_world_readable_only。這個參數主要用來控制匿名用戶是否可以從FTP服務器上下載可閱讀的文件。如果FTP服務器部署在企業內部,主要供企業內部員工使用的話,則最好把這個參數設置為YES。然后把一些企業常用表格等等可以公開的文件放置在上面,讓員工在匿名的情況下也可以下載這些文件。這即不會影響到FTP服務器的安全,而且也有利于其他員工操作的便利性上。
二是參數anon_upload_enable。這個參數表示匿名用戶能否在匿名訪問的情況下向FTP服務器上傳文件。通常情況下,應該把這個參數設置為No。即在匿名訪問時不允許用戶上傳文件。否則的話,隨便哪個人都可以上傳文件的話,那對方若上傳一個病毒文件,那企業不是要遭殃了。故應該禁止匿名用戶上傳文件。但是這也有例外。如有些企業通過FTP協議來備份文件。此時如果企業網絡的安全性有所保障的話,可以把這個參數設置為YES,即允許操作系統調用FTP命令往FTP服務器上備份文件。在這種情況下,為了簡化備份程序的部署,往往采用匿名訪問。故需要在FTP服務器上允許匿名用戶上傳文件。
三是參數anon_other_write_enable與參數anon_mkdir_write_enable。這兩個參數主要涉及到匿名用戶的一些比較高級的權限。如第一個參數表示匿名用戶具有上傳和建立子目錄之外的權限,如可以更改FTP服務器上文件的名字等等。而第二個參數則表示匿名用戶可以在特定的情