FTP(File Transfer Protocol,文件傳輸協議) :
C/S應用層協議。
由服務端和客戶端實現文件傳輸
FTP連接端口:
20 : 建立數據連接,傳輸文件數據。
21 : 建立控制連接,傳輸FTP控制命令。
FTP數據連接模式:
主動模式:
服務器主動發起數據連接。
客戶端向服務器先建立FTP控制連接,
服務器向客戶端再發送請求並建立數據連接。
被動模式:
服務器被動等待數據連接,
客戶端向服務器先建立控制連接,
服務器以PASV命令告知客戶端,
客戶端向服務器發送請求並建立數據連接。
根據是否進行字符切換,分爲:
文本模式:
ASCII(美國信息交換碼),用於純文本文件的傳輸。
二進制模式:
Binary模式,適合傳輸程序,圖片等非純文本字符的文件。
FTP用戶類型:
匿名用戶:
ftp或anonymous,提供公共文件的下載。
本地用戶:
使用本機的系統用戶賬號進行驗證。
指除了匿名用戶以外的其他系統用戶。
虛擬用戶:
不使用系統用戶賬號,
而使用位於獨立的用戶數據庫文件中的FTP用戶賬號。
提高了安全性。
vsftpd官網:
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd
vsftpd的配置文件:
用戶列表文件:
ftpusers文件:
列出的用戶將禁止登錄vsftpd服務器。
默認包括系統運行的特殊用戶。
user_list文件:
用戶是否能登錄,
取決於主配置文件vsftpd.conf的配置。
userlist_enable=YES :
文件生效。能登錄。
userlist_deny=YES:
禁止此列表的用戶登錄。
userlist_deny=NO:
允許列表中的用戶登錄。
區別:
ftpusers文件是黑名單。
user_list 可靈活控制的用戶列表。
主配置文件vsftpd.conf
匿名用戶配置項:
anonymous_enable=YES :
是否允許匿名訪問
anon_umask=022 :
設置匿名用戶所上傳文件的默認權限掩碼值
anon_root=/var/ftp :
設置匿名用戶的FTP根目錄。
anon_upload_enable=YES :
是否允許匿名用戶上傳文件。
anon_mkdir_write_enable=YES :
是否允許匿名用戶有創建目錄的寫入權限。
anon_other_write_enable=YES :
是否允許匿名用戶有其他寫入權限。
anon_max_rate=0 :
限制匿名用戶的最大傳輸速率。字節/秒。
本地用戶配置項 :
local_enable=YES :
是否允許本地系統用戶訪問。
local_umask=022 :
設置本地用戶所上傳文件的默認權限掩碼值。
local_root=/var/ftp :
設置本地用戶的FTP根目錄。
chroot_local_user=YES :
是否將FTP本地用戶禁錮在宿主目錄中。
local_max_rate=0 :
限制本地用戶的最大傳輸速率,字節/秒。
全局配置項 :
listen=YES :
監聽服務。
listen_address=0.0.0.0 :
監聽FTP服務的IP地址。
listen_port=21 :
監聽服務的端口。
write_enable=YES :
啓用任何形式的寫入權限。
download_enable=YES :
是否允許下載文件。
dirmessage_enable=YES :
用戶切換進入目錄時顯示.message文件的內容。
xferlog_enable=YES :
啓用xferlog日誌,默認記錄到/var/log/xferlog.
xferlog_std_format=YES :
啓用標準的日誌格式。
connect_from_port_20=YES :
允許服務器主動模式。
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_clients=0 :
最多允許多少個客戶端同時連接。
max_per_ip=0 :
對來自同一個IP地址的客戶端,最多允許多少個併發連接。
tcp_wrappers=YES :
是否啓用TCP_Wrappers主機訪問控制。