1. 程式人生 > >實驗-----實現基於文件驗證的vsftpd虛擬用戶

實驗-----實現基於文件驗證的vsftpd虛擬用戶

基於文件驗證的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虛擬用戶