建立安全的ProFTPD
ProFTPD是針對Wu-FTP的弱項而開發的,除了改進的安全性,還具備許多Wu-FTP沒有的特點,能以Stand-alone、xinetd模式運行等。ProFTP已經成為繼Wu-FTP之后最為流行的FTP服務器軟件,越的站點選用它構筑安全高效的FTP站點,ProFTP配置方便,并有MySQL和Quota模塊可供選擇,利用它們的完美結合可以實現非系統賬號的管理和用戶磁盤的限制。那么該如何建立安全的ProFTPD
一、 ProFTPD服務面臨的安全隱患
ProFTPD服務面臨的安全隱患主要包括:緩沖區溢出攻擊(Buffer Overflow)、數據嗅探和匿名訪問缺陷。
1、緩沖區溢出攻擊
長期以來,緩沖區溢出已經成為計算機系統的一個問題。利用計算機緩沖區溢出漏洞進行攻擊的最著名的案例是莫里斯蠕蟲,發生在1988年11月。但即使其危害人所共知,緩沖區溢出仍然是現在入侵的一個重要手段。
緩沖區溢出的概念:緩沖區溢出好比是將一百公斤貨物放進一個只能裝十公斤的容器里。緩沖區溢出漏洞是一個困擾了安全專家30多年的難題。簡單來說,它是由于編程機制而導致的、在軟件中出現的內存錯誤。這樣的內存錯誤使得黑客可以運行一段惡意代碼來破壞系統正常地運行,甚至獲得整個系統的控制權。
2、數據嗅探
FTP是傳統的網絡服務程序,在本質上是不安全的,因為它們在網絡上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到"中間人"(man-in-the-middle)這種方式的攻擊。
所謂"中間人"的攻擊方式,就是"中間人"冒充真正的服務器接收你傳給服務器的數據,然后再冒充你把數據傳給真正的服務器。服務器和你之間的數據傳送被"中間人"轉手后做了手腳之后,就會出現很嚴重的問題。 截獲這些口令的方式主要為暴力破解。另外使用sniffer程序監視網絡封包捕捉FTP開始的會話信息,便可順手截獲root密碼。
3. 匿名訪問缺陷
匿名訪問方式在FTP服務當中被廣泛的支持,但是由于匿名FTP不需要真正的身份驗證,因此很容易為入侵者提供一個訪問通道,配合緩沖區溢出攻擊,會造成很嚴重的后果。
4. 拒絕服務攻擊
拒絕服務是一種技術含量低,但攻擊效果明顯的攻擊方式,受到這種攻擊時,服務器或網絡設備長時間不能正常提供服務,并且由于某些網絡通訊協議本身固有的缺陷,難以提出一個行之有效的解決辦法。防范拒絕服務攻擊需要我們從全局去部署防御拒絕服務攻擊策略,多種策略聯動防范,將拒絕服務攻擊的危害降至最低。
二、 加固ProFTPD服務端、建立安全的ProFTPD
1.升級版本
升級陳舊的ProFTPD版本,因為早期的ProFTPD版本存在的安全漏洞。對于一個新配置的ProFTPD服務器來說使用最新穩定版本是最明智的選擇,可以在其官方網站下載其源代碼進行編譯。ProFTPD最新版本是1.2.10,官方網址:http://www.ProFTPD.org 。
2.使用xinetd方式運行ProFTPD
ProFTPD能以Stand-alone、xinetd兩種模式運行,當用戶賬號比較少又經常需要連接到ProFTPD服務器時推薦使用xinetd模式運行。使用xinetd方式運行ProFTPD可以有效防范DoS攻擊。
從傳統的守護進程的概念可以看出,對于系統所要通過的每一種服務,都必須運行一個監聽某個端口連接所發生的守護進程,這通常意味著資源浪費。為了解決這個問題,一些Linux引進了"網絡守護進程服務程序"的概念。
Redhat Linux 8.0以后的版本使用的網絡守護進程是xinted(eXtended InterNET daemon)。和stand-alone模式相比xinted模式也稱 Internet Super-Server(超級服務器)。
xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,他能夠根據用戶請求的端口不同,啟動不同的網絡服務進程來處理這些用戶請求。可以把xinetd看做一個管理啟動服務的管理服務器,它決定把一個客戶請求交給那個程序處理,然后啟動相應的守護進程。xinetd模式工作原理見圖1。

圖1 xinetd模式網絡服務
和stand-alone工作模式相比,系統不想要每一個網絡服務進程都監聽其服務端口。運行單個xinetd就可以同時監聽所有服務端口,這樣就降低了系統開銷,保護系統資源。但是對于訪問量大、經常出現并發訪問時,xinetd想要頻繁啟動對應的網絡服務進程,反而會導致系統性能下降。察看系統為Linux服務提供那種模式方法在Linux命令行可以使用pstree命令可以看到兩種不同方式啟動的網絡服務。
【編輯推薦】