1. 程式人生 > 其它 >VSFTP系列—VSFTP簡介和三種使用者模式及配置

VSFTP系列—VSFTP簡介和三種使用者模式及配置

目錄

VSFTP與FTP

FTP 是 File Transfer Protocol(檔案傳輸協議)的英文簡稱,用於 Internet 上的檔案的雙向 傳輸。使用 FTP 來傳輸時,是具有一定程度的危險性, 因為資料在因特網上面是完全沒有受到保護 的明文傳輸方式! VSFTP是一個基於 GPL釋出的類 Unix 系統上使用的 FTP 伺服器軟體,它的全稱是Very Secure FTP, 從名稱定義上基本可以看出,這是為了解決 ftp 傳輸安全性問題的。

VSFTP軟體基本資訊

服務端軟體名:vsftpd

客戶端軟體名:ftp

服務名:vsftpd

埠號:20、21、指定範圍內隨機埠

配置檔案:/etc/vsftpd/vsftpd.conf

安裝方式:通常是yum安裝即可。本地倉庫即可完成安裝。

VSFTP的三種驗證方式

  • 主要有三種驗證方式:分別是匿名登入、使用者登入以及虛擬使用者登入,這裡主要介紹前兩種
匿名登入

匿名登入,開箱即用,通過簡單的配置即可使用。這種方式使用者無需輸入賬號密碼即可進入FTP伺服器,存在一定的安全隱患。
匿名模式是最不安全的方式,同時也是最簡單的一種模式。匿名使用者可以通過設定,登入指定的資料夾。

該模式的配置vsftp.conf檔案設定:

anonymous_enable=YES/NO(YES) 控制是否允許匿名使用者登入,YES 為允許匿名登入,NO 為不允許。預設值為 YES。 write_enable=YES/NO(YES) 是否允許登陸使用者有寫許可權。屬於全域性設定,預設值為 YES。 no_anon_password=YES/NO(NO) 若是啟動這項功能,則使用匿名登入時,不會詢問密碼。預設值為 NO。

ftp_username=ftp 定義匿名登入的使用者名稱。預設值為 ftp。

anon_root=/var/ftp 使用匿名登入時,所登入的目錄。預設值為/var/ftp。注意 ftp 目錄不能是 777 的許可權屬性,即匿名 使用者的家目錄不能有 777 的許可權。 anon_upload_enable=YES/NO(NO) 如果設為 YES,則允許匿名登入者有上傳檔案(非目錄)的許可權,只有在 write_enable=YES 時,此項 才有效。當然,匿名使用者必須要有對上層目錄的寫入權。預設值為 NO。

anon_world_readable_only=YES/NO(YES) 如果設為 YES,則允許匿名登入者下載可閱讀的檔案(可以下載到本機閱讀,不能直接在 FTP 伺服器中開啟閱讀)。預設值為 YES。 anon_mkdir_write_enable=YES/NO(NO) 如果設為 YES,則允許匿名登入者有新增目錄的許可權,只有在 write_enable=YES 時,此項才有效。當 然,匿名使用者必須要有對上層目錄的寫入權。預設值為 NO。

anon_other_write_enable=YES/NO(NO) 如果設為 YES,則允許匿名登入者更多於上傳或者建立目錄之外的許可權,譬如刪除或者重新命名。(如 果 anon_upload_enable=NO,則匿名使用者不能上傳檔案,但可以刪除或者重新命名已經存在的檔案;如 果 anon_mkdir_write_enable=NO,則匿名使用者不能上傳或者新建資料夾,但可以刪除或者重新命名已經 存在的資料夾。)預設值為 NO。

chown_uploads=YES/NO(NO) 設定是否改變匿名使用者上傳檔案(非目錄)的屬主。預設值為 NO。

chown_username=username 設定匿名使用者上傳檔案(非目錄)的屬主名。建議不要設定為 root。

anon_umask=077 設定匿名登入者新增或上傳檔案時的 umask 值。預設值為 077,則新建檔案的對應許可權為 700。 deny_email_enable=YES/NO(NO) 若是啟動這項功能,則必須提供一個檔案/etc/vsftpd/banner_emails,內容為 email address。若是 使用匿名登入,則會要求輸入 email address,若輸入的 email address 在此檔案內,則不允許進入。 預設值為 NO。 banned_email_file=/etc/vsftpd/banner_emails 此檔案用來輸入 email address,只有在 deny_email_enable=YES 時,才會使用到此檔案。若是使用 匿名登入,則會要求輸入 email address,若輸入的 email address 在此檔案內,則不允許進入。
一般情況下,預設配置一般可以採用這個配置

匿名登入相關配置
anonymous_enable=YES
anon_umask=022
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=0
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
本地使用者登入
  • vsftp的本地使用者模式密碼校驗是使用系統的本地使用者的 /etc/passwd 和/etc/shadow兩個檔案來檢驗的。

  • 這裡特別要注意,新建使用者的時候不可以設定 使用者無登入許可權,比如:useradd zsk -s /sbin/nologin 這樣的使用者是不可以的,否則ftp即使配置的在正確,也會無法登入的,報530 Login incorrect。普通本地使用者 正常建立就可以。

  • 注意第二點,本地使用者登入進入的是使用者家目錄比如/home/greg

本地使用者登入相關配置
listen=YES
listen_ipv6=NO
connect_from_port_20=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_enable=YES
userlist_deny=NO
anonymous_enable=NO
local_enable=YES
check_shell=NO
write_enable=NO
local_umask=022
dirmessage_enable=YES
use_localtime=YES
local_root=/opt/vsftp
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log