1. 程式人生 > 實用技巧 >CentOS 5.5之vsftpd伺服器配置(上)

CentOS 5.5之vsftpd伺服器配置(上)

vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程式。特點是小巧輕快,安全易用。在搭建vsftpd伺服器之前,首先了解一下FTP的工作原理。

FTP的傳輸使用的可靠的TCP協議,使用了兩個連線,分別是命令通道和資料流通道。一般來說,FTP服務佔用兩個埠:20和21埠。其中21埠用來建立命令通道,20埠用來建立資料通道。FTP分為兩種模式建立連線,分別為主動模式和被動模式。

主動模式:通過客戶端使用一個大於1024的隨機埠向伺服器的21埠發起請求,通過三次握手建立命令通道。如果此時有進行檔案的上傳或下載,伺服器會使用20埠向客戶端的另一個大於1024的埠發起請求,經過三次握手後建立資料通道。

被動模式:建立命令通道的方式和主動模式一樣,都是在21埠上建立。當有資料傳輸的指令時,客戶端會在命令通道內向伺服器發起請求;此時伺服器會啟用一個埠來監聽,但不是20埠,而是一個大於1024的隨機埠。這樣一來伺服器和客戶端兩端的資料通道會建立在大於1024的埠之間。


接下來就開始VSFTPD伺服器的搭建配置(環境:CentOS 5.5)

1、查詢系統是否安裝了vsftpd伺服器,同時開啟vsftpd服務。

2、來到windows客戶端,用命令列登陸ftp伺服器,使用匿名賬號anonymous或ftp登陸,密碼空。即可成功登陸!預設的匿名FTP根目錄為/var/ftp

3、這時可以用一些簡單的命令檢視使用者目錄的資訊,例如dir是檢視伺服器根目錄下的資料夾,可以發現有一個名為pub的資料夾。 !dir則是檢視自己計算機使用者根目錄下的資料夾,如下圖所示。

4、pwd可以用來檢視伺服器當前目錄的路徑。在這裡通過匿名使用者登陸的ftp目錄的路徑是相對路徑,即只能在/var/ftp這個目錄裡面訪問,沒有訪問伺服器其他路徑的許可權。lcd則可以用來檢視本地計算機的當前路徑。


5、預設情況下匿名使用者只有下載的許可權,而沒有上傳的許可權。如圖所示,上傳dns.txt檔案時被伺服器拒絕,但是可以成功下載ftptest檔案。另外使用bye命令可以退出ftp伺服器。

vsftpd相關配置檔案介紹:
/etc/vsftpd/vsftpd.conf #vsftpd的主配置檔案
/etc/pam.d/vsftpd #這是使用PAM相關模組時用到的檔案,用作身份驗證之用。
/etc/vsftpd.ftpusers #這個檔案相當於一個黑名單,包含了無法登陸FTP的使用者。
/etc/vsftpd.ftpuser_list #這個檔案既可以作黑名單也可作為白名單,主要看如何設定策略。
/etc/vsftpd.chroot_list #這個檔案預設不存在,需要手動建立,用途是將一些使用者的根目錄鎖定在預設目錄下,無法進入伺服器其他目錄。
/etc/sbin/vsftpd #vsftpd的啟動檔案。
/var/FTP #vsftpd的預設匿名使用者登陸的根目錄。

vsftpd.conf檔案設定值的說明:
anonymous_enable=YES #允許匿名使用者登陸
local_enable=YES #允許本地使用者登陸
write_enable=YES #允許使用者上傳
local_umask=022 #預設情況下上傳的資料夾許可權為777,檔案的許可權為666,022這個值的意思就是在預設許可權的基礎上減去022,即把檔案可寫的許可權給去除掉,這樣別人就只能讀取檔案,而不能修改檔案
anno_upload_enable=YES #允許匿名使用者上傳,預設被註釋掉
anno_mkdir_write_enable=YES #允許匿名使用者建立資料夾,預設被註釋掉
dirmessage_enable=YES #當用戶進入某個目錄時,會顯示該目錄需要注意的內容,預設檔案為.message
xferlog_enable=YES #開啟客戶端上傳和下載的日誌記錄
connect_from_port_20=YES #FTP資料通道埠號
xferlog_std_enable=YES #日誌採用標準格式
pam_service_name=vsftpd #使用者的認證檔案為vsftpd
userlist_enable=YES #可以用於檢測userlist_file檔案中的使用者是否可以訪問伺服器
listen=YES #工作在獨立模式下
tcp_wrappers=YES #linux自帶的安全保護程式

轉載於:https://blog.51cto.com/300second/719212