vsftpd配置支援虛擬使用者登入

前言:

vsftpd有三種使用者模式:匿名使用者、本地使用者、虛擬使用者
匿名使用者就是不需要密碼就能對ftp進行訪問,本地使用者是使用/etc/passwd中記錄的系統使用者作為ftp使用者來訪問ftp服務,而虛擬使用者是專屬於vsftpd的使用者,他們對映在一個本地使用者上,便於控制許可權,比本地使用者登入更安全。

在主配置檔案中開啟虛擬使用者登入:

編輯vsftpd主配置檔案

vim /etc/vsftpd/vsftpd.conf

在檔案結尾新增如下三行:

guest_enable=YES開啟虛擬使用者登入
guest_username=ftp設定ftp(安裝vsftpd時預設建立)使用者為虛擬使用者在作業系統上的對映
user_config_dir=/etc/vsftpd/vu_conf設定用於儲存虛擬使用者個性配置檔案的目錄(目錄名隨便)

建立使用者資訊資料庫

建立並編輯用於儲存虛擬使用者賬戶名和密碼的文字檔案,檔名隨意。

vim /etc/vsftpd/vu

在其中新增虛擬使用者登入名和 密碼,登入名為奇數行號,密碼為偶數行號。

test1      #賬戶
12345678     #密碼
test2      #賬號
87654321      #密碼

生成使用者資訊資料庫檔案(其中記錄的就是虛擬使用者的賬戶名和密碼)

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

配置pam認證

編輯pam中關於ftp使用者認證的配置,pam是用於認證使用者及授權使用者訪問服務的一套東東。

vim /etc/pam.d/vsftpd

在檔案開頭新增兩條新內容:

auth sufficient pam_userdb.so db=/etc/vsftpd/vu        #這個檔案其實就是我們之前建立的使用者資料庫檔案,不過注意這裡一定不要加上db,否則會登入不了的。具體原因是pam在開啟資料庫檔案時會自動在後面增加.db字尾,如果之前已經加了就找不到檔案了。
account sufficient pam_userdb.so db=/etc/vsftpd/vu

建立並編輯虛擬使用者的個性配置檔案

建立用於存放虛擬使用者個性配置檔案的目錄

mkdir /etc/vsftpd/vu_conf

建立並編輯test1使用者的個性配置檔案(檔名必須和使用者名稱相同)

vim /etc/vsftpd/vu_conf/test1

新增個性配置(若不新增則使用全域性配置,對許可權的控制請使用匿名使用者的控制選項,如anon_mkdir_write=NO,禁止此虛擬使用者建立目錄):

local_root=/ftp/test1      #設定使用者的ftp目錄,如果不設定則使用宿主賬號的ftp目錄

vsftp配置檔案中各個選項的中文註釋參考此篇文章。

文章歸檔

建立虛擬使用者的FTP家目錄

建立test1使用者的家目錄。

mkdir -p /ftp/test1
chown -R ftp:ftp /ftp

收尾:

在確保SELinux和防火牆均已正確配置後,重啟vsftpd服務。

service vsftpd restart

最後使用ftp客戶端測試連線,推薦使用FileZilla。

2 thoughts on “vsftpd配置支援虛擬使用者登入”

  1. db_load -T -t hash -f /etc/vsftpd/vu /etc/vsftpd/vu.db
    大佬這條指令好像不能用了 我去百度db_load怎麼用出現的還是用這些引數
    我輸入之後直接說引數錯誤
    [root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vmuser /etc/vsftpd/vmuser .db
    usage: db_load [-nTV] [-c name=value] [-f file]
    [-h home] [-P password] [-t btree | hash | recno | queue] db_file
    usage: db_load -r lsn | fileid [-h home] [-P password] db_file

Leave a Reply to 佐鼬丶 Cancel reply

Your email address will not be published. Required fields are marked *

Captcha Code