FTP服務學習筆記之FTP簡介(1)

一、FTP服務概述:

    FTP:(File Transfer Protocol,文件傳輸協議)是典型的C/S結構的應用層網絡協議。需要相應的客戶端和服務器端軟件才能進行文件傳輸。

1、FTP連接及傳輸模式

     FTP服務器默認使用TCP協議的20、21端口與客戶端進行通信。21端口用於建立控制連接,並傳輸FTP控制命令;20端口用於建立數據連接,並傳輸文件數據。

     根據FTP服務器在建立數據連接過程中的主、被動關係,FTP數據連接分爲:主動模式和被動模式。

兩者區別如下:

  主動模式:

     首先客戶段向連接服務器21端口建立FTP控制連接,當需要傳輸數據時,客戶端以PORT(主動)命令告知服務器“我打開了某某端口,你來連接我”,於是服務器從20端口向客戶端的該端口發送請求並建立數據連接。

  

  被動模式: 

     如果客戶機所在網絡的防火通常牆禁止主動模式連接,通常會使用被動模式。首先由客戶端向服務器端的21端口建立FTP控制連接,當需要傳輸數據時,服務器以PASV(被動)命令告知客戶端“我打開了某端口,你過來連接”,於是客戶端向服務器該端口(非20)發送請求並建立數據連接。


傳輸模式:

    假設客戶端與服務器建立好數據連接以後,就可以根據從控制連接中發送的FTP命令,上傳和下載文件了,在傳輸文件時,根據是否進行字符轉換,分爲文件模式和二進制模式。

 文本模式又稱爲ASCII模式,這種模式在傳輸文件時使用ASCII字符序列,一般只用於純文本文件傳輸。

 二進制模式又稱爲Binary模式,這種模式不會轉換文件中的字符序列,更適合傳輸程序、圖片等文件。

說明:使用二進制模式比文本模式更有效率,大多數FTP客戶端工具可以根據文件類型自動選擇文件傳輸模式,而無需用戶手工指定。

2、FTP用戶類型

  匿名用戶:其用戶名爲anonymous和ftp,提供任意密碼(包括空密碼)都可以通過服務器驗證,這樣的用戶稱之爲“匿名用戶”。匿名用戶一般用於提供公共文件的下載,如一些提供免費軟件、學習資料下載的站點。

  本地用戶:就是以真實的用戶名和密碼進行登錄,但前提條件是用戶在FTP服務器上擁有自己的帳號.用真實帳號登錄後,其登錄的目錄爲用戶自己的目錄,該目錄在系統建立帳號時系統就自動創建.

  虛擬用戶:FTP服務器軟件可以維護一份獨立的用戶數據庫文件,而不是直接使用本地用戶賬號。這些位於獨立數據庫文件中的FTP用戶賬號,通常稱爲“虛擬用戶”,使用FTP虛擬用戶可以提供更好的安全性。

3、FTP服務器軟件的種類

   Wu-ftpd服務器是早期較爲流行的FTP服務器程序之一,功能強大且穩定性也較出色。但是安全性比Proftpd和vsftpd要差一些。

   Proftpd服務器在Wu-ftpd的基礎上進行改進,配置起來也相對比較容易,執行效率和安全性方面也得到很大的提高。

  vsftpd服務器主要基於安全性進行改進,vsftpd在速度和穩定性方面的表現也很突出。vsftpd可以支持15000個用戶併發連接。

注:本文主要介紹的Vsftpd軟件

4、FTP客戶端軟件

  Windows平臺:CuteFTP、FlashFXP、LeapFTP、Filezilla等

  Linux平臺:gftp、kuftp等

二、FTP服務基礎知識

在redhat5系統中,安裝vsftpd軟件,下面由redhat5上安裝vsftpd,介紹相關內容。

   vsftpd服務的配置文件默認位於:/etc/vsftpd/文件夾中,主要包括用戶控制列表文件(ftpusers、user_list)和主配置文件(vsftpd.conf)。

1、用戶控制列表文件ftpusers和user_list

   ftpusers和user_list文件中均包含一份FTP用戶名的列表,兩個文件雖然都用於FTP用戶控制,但是之間存在一些差別。

ftpusers文件:(就像黑名單),該文件中包含的用戶賬號將禁止登錄vsftpd服務器,不管該用戶是否存在user_list文件中出現。通常將root、bin、daemon等特殊用戶列在改文件中,禁止用戶登錄FTP服務。

user_list文件:該文件中包含的用戶賬號可能被禁止登錄,也可能被允許登錄,具體在主配置文件vsftpd.conf中決定。當存在"userlist_enable=YES"的配置項時,user_list文件生效,如果配置"userlist_deny=YES",則禁止列表中的用戶賬號登錄,如果配置"userlist_deny=NO",則僅允許列表中的用戶賬號登錄。

2、主配置文件/etc/vsftpd/vsftpd.conf

    在vsftpd主配置文件中,配置行採用“配置項=參數”的格式。下面列出vsftpd.conf文件中常見配置項:

作用範圍配置項及示例含義說明





匿名用戶

anonymous_enable=YES是否允許匿名訪問
anon_umask=022設置匿名用戶所上傳的默認權限
anon_root=/var/ftp設置匿名用戶FTP根目錄(缺省爲/var/ftp/)
anon_upload_enable=YES是否允許匿名用戶上傳文件
anon_mkdir_write_enable=YES是否允許匿名用戶有創建目錄的寫權限
anon_other_write_enable=YES是否允許匿名用戶有其他寫入權限。如對文件改名、覆蓋及刪除文件
anon_max_rate=0限制匿名用戶的最大傳輸速率(0位無限制)單位爲字節




本地用戶

local_enable=YES是否允許本地系統用戶訪問
local_umask=022設置本地用戶所上傳文件的默認權限掩碼值
local_root=/var/ftp設置本地用戶的FTP根目錄(缺省爲用戶的宿主目錄)
chroot_local_user=YES是否將FTP本地用戶禁錮在宿主目錄中
local_max_rate=0限制本地用戶最大傳輸速率(0爲無限制),單位爲字節
全局配置listen=YES是否以獨立運行的方式監聽服務
listen_port=21設置監聽FTP服務的端口號
write_enable=YES啓用任何形式的寫入權限(如上傳、刪除文件等)都需要開啓此項
download_enable=YES是否允許下載文件(建立僅限於瀏覽、上傳的FTP服務時可將其設爲NO)
dirmessage_enable=YES用戶切換進入目錄時顯示.message文件(如果存在)的內容
xferlog_enable=YES啓用xferlog日誌,默認記錄到/var/log/xferlog文件
xferlog_std_format=YES啓用標準的xferlog日誌格式,若禁用此項,將使用vsftpd自己的日誌格式
connect_from_port_20=YES允許服務器主動模式(從20端口建立數據連接)
pasv_enable=YES允許被動模式連接
pasv_max_port=24600設置用於被動模式的服務器最大端口號
pasv_min_port=24500設置用於被動模式的服務器最小端口號
pam_service_name=vsftpd設置用於用戶認證的PAM文件位置(/etc/pam.d/目錄中對應的文件路徑)
userlist_enable=YES是否啓用user_list用戶列表文件
userlist_deny=YES是否禁止user_list列表文件中的用戶賬號
max_client=0最多允許多個客戶端同時連接(0無限制)
max_per_ip=0對來自相同IP地址的客戶端,最多允許多少個併發連接(0爲無限制)
tcp_wrappers=YES是否啓用TCP_Wrappers主機訪問控制

說明:關於vsftpd文件中的更多配置選項,使用man vsftpd.conf查看幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章