實驗-----實現基於文件驗證的vsftpd虛擬用戶
準備安裝包:yum install vsftpd
啟動服務: systemctl start vsftpd
步驟:
一、創建虛擬用戶數據庫文件
①編輯文本文件
vim /etc/vsftpd/ftpuser.txt 奇數行是用戶名,偶數行是密碼
ftpuser1
123456
ftpuser2
123456
②此文件需要被編碼為hash格式
cd /etc/vsftpd/
db_load -T -t hash -f ftpuser.txt ftpuser.db 編碼為hash格式
chmod 600 ftpser.db 為了安全修改權限
file ftpuser.db 查看文件格式
二、創建系統用戶和訪問FTP目錄
①useradd -r -m -d /var/ftproot -s /sbin/nologin ftpuser 即/var/ftproot是根目錄
②chmod 555 /var/ftproot/ 根目錄上不能有寫權限,否則不能登錄
③mkdir /var/ftproot/upload 創建子目錄,方便用戶訪問
④setfacl -m u:ftpuser:rwx /var/ftproot/upload 給予系統用戶對該目錄的rwx權限
三、創建pam配置文件,用來完成用戶認證
vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/ftpuser[.db]
account required pam_userdb.so db=/etc/vsftpd/ftpuser[.db]
後綴db可省略,會自動識別
四、編輯vsftpd配置文件,指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
添加下面兩行
guest_enable=YES
guest_username=ftpuser 映射為系統用戶ftpuser
修改下行:
pam_service_name=vsftpd.db pam配置文件
五、SELinux設置
禁用selinu,或者setenforce 0
六、虛擬用戶建立獨立的配置文件
說明:vsftpd可以在配置文件目錄中為每個用戶提供單獨的配置文件以定義其ftp服務訪問權限,每個虛擬用戶的配置文件名同虛擬用戶的用戶名。配置文件目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。
①mdkir /etc/vsftpd/ftpuser.d/ 創建配置文件存放的路徑
②編輯vsftp配置文件,指明用戶配置文件路徑:
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/ftpuser.d/
③創建用戶ftpuser1自已的配置文件,登陸目錄為默認目錄(/var/ftproot/)
vim /etc/vsftpd/ftpuser.d/ftpuser1 文件名同用戶名
anon_upload_enable=YES 支持上傳
anon_mkdir_write_enable=YES 支持創建文件夾
實現效果:wang用戶連接ftp登陸之後,進入upload目錄可以上傳文件和創建文件夾了
④創建用戶ftpuser2的配置文件,實現登陸目錄改變至指定目錄
mkdir /var/ftproot2;chmod 555 /var/ftproot2 作為ftpuser2的登陸目錄
vim /etc/vsftpd/ftpuser.d/ftpuser2
local_root=/var/ftproot2 登錄目錄改變至指定的目錄
七、重啟vsftpd服務
systemctl restart vsftpd
八、客戶端測試:需要事先安裝ftp客戶端工具(yum install ftp)
①ftp 192.168.199.140(vsftpd服務器ip)
使用ftpuser1登陸,可以使用put上傳文件並且可以創建文件夾。效果如下:
②ftp 192.168.199.140
使用ftpuser2登陸,使用ls看不到任何文件,說明已經更改登陸目錄,效果如下:
感謝瀏覽,如有不同意見,歡迎留言。
實驗-----實現基於文件驗證的vsftpd虛擬用戶