天天看點

linux的FTP伺服器搭建及FTP伺服器的入侵和防禦

FTP 是File Transfer Protocol(檔案傳輸協定)的英文簡稱,而中文簡稱為“文傳協定”。用于Internet上的控制檔案的雙向傳輸。

與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。使用者通過一個支援FTP協定的客戶機程式,連接配接到在遠端主機上的FTP伺服器程式。使用者通過客戶機程式向伺服器程式發出指令,伺服器程式執行使用者所發出的指令,并将執行的結果傳回到客戶機。

使用者分類

Real帳戶

這類使用者是指在FTP服務上擁有帳号。當這類使用者登入FTP伺服器的時候,其預設的主目錄就是其帳号命名的目錄。但是,其還可以變更到其他目錄中去。如系統的主目錄等等。

Guest使用者

在FTP伺服器中,我們往往會給不同的部門或者某個特定的使用者設定一個帳戶。但是,這個賬戶有個特點,就是其隻能夠通路自己的主目錄。伺服器通過這種方式來保障FTP服務上其他檔案的安全性。這類帳戶,在Vsftpd軟體中就叫做Guest使用者。擁有這類使用者的帳戶,隻能夠通路其主目錄下的目錄,而不得通路主目錄以外的檔案。

Anonymous(匿名)使用者

這也是我們通常所說的匿名通路。這類使用者是指在FTP伺服器中沒有指定帳戶,但是其仍然可以進行匿名通路某些公開的資源。

在組建FTP伺服器的時候,我們就需要根據使用者的類型,對使用者進行歸類。預設情況下,Vsftpd伺服器會把建立的所有帳戶都歸屬為Real使用者。但是,這往往不符合企業安全的需要。因為這類使用者不僅可以通路自己的主目錄,而且,還可以通路其他使用者的目錄。這就給其他使用者所在的空間帶來一定的安全隐患。

TCP/IP協定中,FTP标準指令TCP端口号為21,Port方式資料端口為20。FTP的任務是從一台計算機将檔案傳送到另一台計算機,不受作業系統的限制。

需要進行遠端檔案傳輸的計算機必須安裝和運作ftp客戶程式。

啟動ftp客戶程式工作的另一途徑是使用浏覽器,格式::ftp://[使用者名:密碼@]ftp伺服器域名:[端口号]

伺服器安裝的一般步驟:

1.安裝檢測rpm -qa | grep 包名

2.檢測出沒有安裝則安裝

3.yum install 包名

4.檢測并啟動

rpm -qa | grep 包名

chkconfig 服務名 on  将伺服器設定為開機自啟

封包件名:vsftpd  服務名:vsftpd

挂載CD光牒并用yum安裝,(本地yum源在之前的部落格裡已經配過了)

<a href="http://s3.51cto.com/wyfs02/M02/87/39/wKiom1fX4G_SOGn-AAAWabAEeJY415.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M00/87/39/wKiom1fX4Iiiv2HnAACtfCWolHM147.png" target="_blank"></a>

用rpm指令檢視下vsftpd包。

<a href="http://s5.51cto.com/wyfs02/M01/87/37/wKioL1fX4MWjwbk9AAAOzlYos1k462.png" target="_blank"></a>

cd /etc/vsftpd并ls檢視下。

<a href="http://s1.51cto.com/wyfs02/M00/87/37/wKioL1fX4N3TRJttAAAp48eXxkU469.png" target="_blank"></a>

ftpusers是使用者控制檔案,在這個檔案裡面的使用者,預設是不可以使用vsftpd服務的

<a href="http://s2.51cto.com/wyfs02/M01/87/39/wKiom1fX4PrS1PFzAABFN7k7fQc772.png" target="_blank"></a>

user_list預設功能和第一個一樣,但是通過配置,我們可以讓隻有在第二個檔案裡的使用者才能使用vsftpd服務,這樣新加入的使用者就不會自動擁有vsftp的使用權,這樣可以讓vsftpd伺服器更加安全

<a href="http://s2.51cto.com/wyfs02/M00/87/39/wKiom1fX49WjZRdRAAB4cYR2wQ0573.png" target="_blank"></a>

vsftpd_conf_migrate.sh是vsftpd操作的一些變量和設定(可忽略)

vsftpd.conf ,配置vsftpd,我們操作最多的也就是這個檔案

<a href="http://s1.51cto.com/wyfs02/M02/87/39/wKiom1fX5AiyYzWJAAC0FalN-ZY501.png" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M01/87/37/wKioL1fX5B_y1z39AAAj-Dmbhhc239.png" target="_blank"></a>

搭建了ftp伺服器,/etc/passwd下就多了個ftp的使用者名了,看到shell是/sbin/nologin,說明這個是虛拟使用者使用的,不具有登陸系統的權限。他隻能使用vsftpd這樣的伺服器登陸用,而家目錄不在/home下,而在/var/ftp下,在匿名登陸的時候,系統預設使用的使用者就是ftp使用者 ,可以用ll -d /var/ftp檢視下權限是755,這個權限一般預設就好。

<a href="http://s1.51cto.com/wyfs02/M00/87/37/wKioL1fX5D_jR5F6AAAYfMCKMZA671.png" target="_blank"></a>

現在windows上測試了下ftp伺服器。

<a href="http://s1.51cto.com/wyfs02/M00/87/39/wKiom1fX5F6x5XeyAACPzS8v9Mk338.png" target="_blank"></a>

設定匿名允許上傳功能

先修改目錄權限

<a href="http://s4.51cto.com/wyfs02/M02/87/37/wKioL1fX5H3CdrsTAAC7Vq-LBU8582.png" target="_blank"></a>

anonymous_enable=YES

是否允許匿名ftp(預設為YES),如否則選擇NO,基于使用者名與密碼的通路。   (12)

anon_upload_enable=YES         (27)

anon_mkdir_write_enable=YES            (31)

是否允許匿名ftp 使用者上傳(預設被注釋即不支援),将兩行的注釋符取消

<a href="http://s1.51cto.com/wyfs02/M01/87/39/wKiom1fX5JvxpCV6AAC2jha2tVQ510.png" target="_blank"></a>

在windows測試,就可以匿名上傳了。但是是禁止删除的。

匿名始終是不安全的,還有一種是基于使用者的通路和上傳

先不允許匿名模式使用。

<a href="http://s1.51cto.com/wyfs02/M01/87/39/wKiom1fX5LOiFbLSAADfnB0OJNY102.png" target="_blank"></a>

2.建立虛拟使用者

先建立一個使用者,然後修改使用者的登陸shell為nologin,讓使用者不能登陸系統,隻能使用ftp之内的服務,然後使用passwd  test 修改密碼 

<a href="http://s1.51cto.com/wyfs02/M01/87/37/wKioL1fX5Mij5NkKAAAh_ExPtN4509.png" target="_blank"></a>

sevrice vsftpd restart 重新開機ftp服務就可以了

<a href="http://s3.51cto.com/wyfs02/M02/87/39/wKiom1fX5N_z7USxAADoD1MfNEE976.png" target="_blank"></a>

用windows驗證,需要使用者名和密碼了。

通路的路徑為test的家目錄,有上傳和下載下傳的權限。

 對于FTP的入侵

更多的人認為網絡上是存在“萬能”的攻擊方法的,原因和簡單,因為“暴力破解”(或者說窮舉)的存在,注定網絡攻擊永遠沒有盡頭。作為一種廣泛被使用的協定,FTP被攻擊者暴力破解是經常遇到的問題。

1.鼎鼎大名的X-Scan,是國内著名的綜合漏洞檢測、安全掃描器之一,完全沒費,是不需要安裝的綠色軟體。其中有FTP弱密碼,該插件載入字典對FTP弱密碼進行檢測。

2.泛濫的Serv-U FTP Server漏洞攻擊

作為國内使用率最大的一個FTP伺服器,Serv-U無疑是成功的,但是所謂樹大招風,針對Serv-U FTP Server的攻擊從來就沒有終止過而且還有越演越烈的姿勢。

通過serv-u,使用者能夠将任何一台PC設定成一個FTP伺服器,這樣使用者或其他使用者就能夠使用FTP協定,通過同一網絡上的任何一台PC與FTP伺服器連接配接,進行檔案或目錄的複制,移動,建立和删除。

Serv-U FTP伺服器溢出漏洞

受影響系統:

RhinoSoft Serv-U 5.0

RhinoSoft Serv-U 4.x

RhinoSoft Serv-U 3.x

RhinoSoft Serv-U 2.x

Serv-U在處理"MDTM"指令的參數時缺少正确的緩沖區邊界檢查,遠端攻擊者可以利用這個漏洞對FTP服務程式進行緩沖區溢出攻擊,可能以FTP程序權限在系統上執行任意指令。

Serv-U提供FTP指令"MDTM"用于使用者更改檔案時間,當使用者成功登入系統,并發送畸形超長的時區資料作為指令參數,可觸發緩沖區溢出,精心建構參數資料可能以FTP程序權限在系統上執行任意指令。

  利用此漏洞需要使用者擁有合法帳戶登入到系統,但不需要寫及其他權限。

建構高安全性的使用FTP伺服器

1、避免跳轉攻擊

為了避免跳轉攻擊,伺服器最好不要打開資料連結到小于1024的TCP端口号。

受限制的通路

一些FTP伺服器希望有基于網絡位址的通路控制。在這種情況下,伺服器在發送受限制的檔案之前應該首先確定遠端主機的網絡位址在本組織的範圍内,不管是控制連接配接還是資料連接配接。通過檢查這兩個連接配接,伺服器就被保護避免了這種情況:控制連接配接用一台可信任的主機連接配接而資料連接配接不是。同樣的,客戶也應該在接受監聽模式下的開放端口連接配接後檢察遠端主機的IP位址,以確定連接配接是由所期望的伺服器建立的。

2、保護密碼

為了減少通過FTP伺服器進行強力密碼猜測攻擊的風險,建議伺服器限制嘗試發送正确的密碼的次數。在幾次嘗試(3~5次)後,伺服器應該結束和該客戶的控制連接配接。

3、匿名FTP

匿名FTP服務使用戶端用最少的證明連接配接到FTP伺服器分享公共檔案。如果這樣的使用者能夠讀系統上所有的檔案或者能建立檔案,那麼問題就産生了

這裡隻是簡單的說明下,http://down.51cto.com/data/2241389《黑客FTP攻擊剖析與實用防禦技術精解》這本書将FTP協定和服務解析得很透徹,對這對FTP入侵和防禦也概括的很仔細。

本文轉自 wt7315 51CTO部落格,原文連結:http://blog.51cto.com/wt7315/1852413

繼續閱讀