1. 程式人生 > >vsftpd 使用虛擬用戶及單用戶多目錄的配置

vsftpd 使用虛擬用戶及單用戶多目錄的配置

vsftpd使用虛擬用戶 vsftpd使用虛擬用戶及單用戶多目錄 vsftpd使單用戶多目錄

vsftpd 使用虛擬用戶及單用戶多目錄的配置

安裝vsftpd

yum -y install pam pam-devel db4 db4-tcl
yum -y install vsftpd

配置vsftpd.conf

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
#設成YES,允許匿名用戶登陸
local_enable=YES
#允許/禁止本地用戶登陸 註意:主要是為虛擬宿主用戶,如果該項目設定為NO那麽所有虛擬用戶將無法訪問。
write_enable=YES
#設定可以進行寫操作。
local_umask=022
#設定上傳後文件的權限掩碼,文件644,文件夾755
dirmessage_enable=YES
#設定開啟目錄標語功能
xferlog_enable=YES
#設定開啟日誌記錄功能。
connect_from_port_20=YES
#設定端口20進行數據連接
xferlog_std_format=YES
#設定日誌使用標準的記錄格式
listen=YES
#開啟獨立進程vsftpd,不使用超級進程xinetd。設定該Vsftpd服務工作在StandAlone模式下。
pam_service_name=vsftpd
#設定,啟用pam認證,並指定認證文件名/etc/pam.d/vsftpd
userlist_enable=YES
#設定userlist_file中的用戶將不得使用FTP
tcp_wrappers=YES
#設定支持TCP Wrappers
chroot_local_user=YES
#限制所有用戶在主目錄
#限制所有用戶在主目錄
#↓↓↓↓↓↓↓↓↓↓↓
#↓↓↓↓↓↓↓↓↓↓↓
#以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置
guest_enable=YES
#設定啟用虛擬用戶功能
guest_username=www
#指定虛擬用戶的宿主用戶
virtual_use_local_privs=YES
#設定虛擬用戶的權限符合他們的宿主用戶 
user_config_dir=/etc/vsftpd/vconf
#設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,
#一個需要註意的地方就是這些配置文件名必須和虛擬用戶名相同。

配置虛擬用戶

創建虛擬用戶配置文件存放路徑
mkdir /etc/vsftpd/vconf

創建虛擬用戶名單文件,在其中加入用戶的用戶名和口令信息。格式很簡單:“奇數行用戶名,偶數行口令”。
virtusers文件格式如下:

vim /etc/vsftpd/virtusers

username1
password123

生成虛擬用戶數據文件

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

需要特別註意的是,以後再要添加虛擬用戶的時候,只需要按照“一行用戶名,一行口令”的格式將新用戶名和口令添加進虛擬用戶名單文件。
但是光這樣做還不夠,這樣是不會生效的!還要再執行一遍“ db_load -T -t hash -f 虛擬用戶名單文件 虛擬用戶數據庫文件.db ”的命令使其生效才可以!

設置認證文件PAM

編輯Vsftpd的PAM驗證配置文件,把原來的配置文件全部註釋掉(不註釋掉虛擬用戶會登錄不上),添加如下行
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup

#vim /etc/pam.d/vsftpd

auth    sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virtusers
account sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virtusers

#以上兩條是手動添加的,內容是對虛擬用戶的安全和帳戶權限進行驗證。

這裏的auth是指對用戶的用戶名口令進行驗證。
這裏的accout是指對用戶的帳戶有哪些權限哪些限制進行驗證。
其後的sufficient表示充分條件,也就是說,一旦在這裏通過了驗證,那麽也就不用經過下面剩下的驗證步驟了。相反,如果沒有通過的話,也不會被系統立即擋之門外,因為sufficient的失敗不決定整個驗證的失敗,意味著用戶還必須將經歷剩下來的驗證審核。
再後面的/lib/security/pam_userdb.so表示該條審核將調用pam_userdb.so這個庫函數進行。
最後的db=/etc/vsftpd/virtusers則指定了驗證庫函數將到這個指定的數據庫中調用數據進行驗證。

建立虛擬用戶配置文件模版

vim /etc/vsftpd/vconf/vconf.tmp

local_root=/data/www/virtual/
#指定虛擬用戶的具體主路徑
anonymous_enable=NO
#設定不允許匿名用戶訪問
write_enable=YES
#設定允許寫操作
local_umask=022
#設定上傳文件權限掩碼
anon_upload_enable=NO
#設定不允許匿名用戶上傳
anon_mkdir_write_enable=NO
#設定不允許匿名用戶建立目錄
idle_session_timeout=600
#設定空閑連接超時時間
data_connection_timeout=120
#設定單次連續傳輸最大時間
max_clients=10
#設定並發客戶端訪問個數
max_per_ip=5
#設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件
local_max_rate=50000
#設定該用戶的最大傳輸速率,單位b/s

cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/username1

測試配置

vsftpd 使用虛擬用戶及單用戶多目錄的配置