VSFTP配置虛擬用戶

虛擬用戶的特點是隻能訪問服務器爲其提供的FTP服務,而不能訪問系統的其它資源。所以,如果想讓用戶對FTP服務器站內具有寫權限,但又不允許訪問系統其它資源,可以使用虛擬用戶來提高系統的安全性。

    在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,並且配置更加靈活。
    下面介紹配置過程。

    1.生成虛擬用戶口令庫文件。爲了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數行爲用戶名,偶數行爲口令:

#vi account.txt
ylg
1234
zhanghong
4321
gou
5678
 


    2.生成口令庫文件,並修改其權限:

#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
 


    3.新建一個虛擬用戶的PAM文件。加上如下兩行內容:

#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
 


    4.建立虛擬用戶,設置該用戶所要訪問的目錄,並設置虛擬用戶訪問的權限:

#useradd -d /home/ftpsite virtual_user
#chmod 700 /home/ftpsite
 


    經過該步驟的設置,/home/ftpsite就是virtual_user用戶的主目錄,該用戶也是ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執行的權限。


    5.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內容如下所示(去掉了註釋內容):

anonymous_enable=NO
local_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu
 


    上面代碼中,guest_enable=YES表示啓用虛擬用戶;guest_username=virtual則是將虛擬用戶映射爲本地用戶,這樣虛擬 用戶登錄後才能進入本地用戶virtual的目錄/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件爲 vsftp.vu。

    6.重新啓動VSFTP:
    #service vsftpd restart

    7.以虛擬用戶gou(Linux中並無該賬號)進行測試:

# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcom to my FTP server.
Name (127.0.0.1:root): gou
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
 


    在虛擬FTP服務器中,也可以對各個用戶的權限進行設置。方法是在/etc/vsftpd.conf文件中添加如下一行:
    user_config_dir=用戶配置文件目錄

    然後在用戶配置文件目錄下創建相應的用戶配置文件,比如爲上述名爲gou的用戶創建一個配置文件(假設配置文件目錄爲/etc/vsftpd_user_conf):

#vi /etc/vsftpd_user_conf/gou
write_enable=NO
anono_upload_enable=NO
 
   8.虛擬用戶個人目錄設置

  大家可以發現,無論是哪個虛擬用戶,登錄後所在的目錄都是/home/ftpsite,即都是guest用戶的自家目錄。下面,介紹如何爲每個虛擬用戶建立自家目錄。
  一種作法是在虛擬用戶的個人配置文件中使用local_root選項指定虛擬用戶的自家目錄。以gou爲例,在第上步的基礎上,首先/etc/vsftpd_user_conf/gou文件中加入:
  local_root=/home/ftpsite/gou

  /home/ftpsite下新建gou目錄,並將權限設爲virtual_user:


  9.添加FTP用戶的步驟

      1.在account.txt中添加用戶名和密碼

      2.運行如下命令,將用戶名和密碼添加到數據庫中

        db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db

      3.在/home/ftpsite中新建一個文件夾,與用戶明相同

      4.在vsftpd_user_conf文件夾下新建和用戶名相同的文件,並在其中加入
       local_root=/home/ftpsite/用戶名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章