1. 程式人生 > >centos6.6_vsftpd 虛擬賬戶FTP服務搭建

centos6.6_vsftpd 虛擬賬戶FTP服務搭建

虛擬賬戶的 vsftpd FTP 服務搭建
環境centos6.6 實現效果 搭建一個基於虛擬使用者的 FTP 站點,
虛擬使用者:uplad 密碼:upload ,可以上傳下載 要求三個虛擬使用者 vuser1、vuser2、vuser3 登入後
許可權分別是:vuser1 能下載不能上傳,vuser2 能上傳不能下載,vuser3 既能上傳也能下載。 yum install -y vsftpd
[[email protected] vsftpd]# cd /etc/vsftpd
[[email protected]erver vsftpd]# vi virtualuser.txt upload upload
vuser1
123456
vuser2
123123
vuser3
123456
//把新建的文字檔案 virtualuser.txt 轉換為 db 檔案,安裝 db4-utils 包
[
[email protected]
 vsftpd]#yum install -y db4-utils
[[email protected] vsftpd]#db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db

//這條命令生成使用者資料庫 #寫個指令碼,每次新增賬號後,執行以下 [[email protected]vsftpd]#cat set_new_user.sh
#!bin/bash datestmp=`date +%Y%m%d%H%M` echo 'add user in virtualuser.txt' db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db chmod 600 /etc/vsftpd/virtualuser_login.db  
ls -l /etc/vsftpd/virtualuser_login.db cp chroot_list backup/chroot_list_$datestmp  ls vuserconfig >chroot_list [[email protected] vsftpd]# chmod 600 virtualuser_login.db 
//設定認證檔案只對使用者可讀可寫
[[email protected] pam.d]# cd /etc/pam.d /*配置 PAM 檔案
//為了使伺服器能夠使用資料庫檔案,對客戶端進行身份驗證,需要呼叫系統的
PAM 模組.PAM(Plugable Authentication Module)為可插拔認證模組,不必重新安
裝應用系統,通過修改指定的配置檔案,調整對該程式的認證方式。 PAM 模組
配置檔案路徑為/etc/pam.d/目錄,此目錄下儲存著大量與認證有關的配置檔案,
並以服務名稱命名。

//修改 vsftpd 對應的 PAM 配置檔案/etc/pam.d/vsftpd,可將原配置註釋,然後作如下配置 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_def

[[email protected] pam.d]# vim /etc/pam.d/vsftpd (64位系統)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login [[email protected] pam.d]# vim /etc/pam.d/vsftpd.vu (32位系統)
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login  
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser_login 

//auth 是指對使用者的使用者名稱口令進行驗證。
accout 是指對使用者的帳戶有哪些許可權哪些限制進行驗證。
/lib/security/pam_userdb.so 表示該條稽核將呼叫 pam_userdb.so 這個庫函式進行。
最後的 db=/etc/vsftpd/virtualser_login 則指定了驗證庫函式將到這個指
定的資料庫中呼叫資料進行驗證。

[[email protected] vsftpd]# useradd virtualuser
//建立虛擬使用者所對應的本地真實使用者(可以建立任意使用者)

//重新修改 vsftpd.conf 配置檔案
[[email protected] vsftpd]# grep -v ^# /etc/vsftpd/vsftpd.conf 
    anonymous_enable=NO    #禁用匿名使用者登入
local_enable=YES                    #啟用本地使用者登入設定
write_enable=YES                    #是否可以讀寫
local_umask=022                    
dirmessage_enable=YES
xferlog_enable=YES                #日誌是否啟用
connect_from_port_20=YES
    #xferlog_std_format=YES           #日誌寫到/var/log/xferlog,日誌不顯示中文,包含的內容更多,但是都是縮寫,不直觀     xferlog_std_format=NO            #日誌寫到/var/log/vsftpd.log,且更加易讀
    chroot_list_enable=YES            #YES的時候,啟用chroot 列表。     chroot_list_file=/etc/vsftpd/chroot_list        #在該目錄中的使用者禁止切換目錄,鎖定在家目錄
listen=YES 
pam_service_name=vsftpd       #安全審計模組名對應/etc/pam.d/vsftpd
userlist_enable=YES
tcp_wrappers=YES #set for  late  8 hour use_localtime=yes #pasv_enable=YES                        ##開啟被動模式 pasv_min_port=30000                    ##被動模式最小埠 pasv_max_port=31000                    ##被動模式最大埠 ############### Virtual user  ############ guest_enable=yes guest_username=virtualuser            #虛擬使用者對映的真實系統使用者是 virtual_use_local_privs=yes                #虛擬使用者是否有對映的系統真實使用者的許可權 user_config_dir=/etc/vsftpd/vuserconfig    #設定虛擬使用者配置檔案的目錄 ############### Virtual user  ############ cd /etc/vsftpd/ mkdir -p /etc/vsftpd/vuserconfig    /etc/vsftpd/backup touch /etc/vsftpd/chroot_list
在沒有建立虛擬賬戶配置檔案測試預設虛擬使用者的許可權:
[[email protected] ~]# lftp  192.168.0.254 lftp 10.12.8.30:~>user vuser1 123456
lftp [email protected]:/> mkdir test
//建立一個目錄作為測試 到此,vsftpd 已經可以使用 ################################################ #下面來建立虛擬使用者的許可權設定 建立一個有讀寫許可權的賬號 cd /etc/vsftpd
cat vuserconfig/upload
local_root=/home/virtualuser/upload/soft write_enable=yes download_enable=yes
建立對應的家目錄,並重啟服務即可。 mkdir -p /home/virtualuser/upload/soft chown -R virtualuser.virtualuser /home/virtualuser #生效賬號密碼 sh set_new_user.sh #重啟vsftpd服務 /etc/init.d/vsftpd  restart 然後即可登入 ################################################
建立虛擬帳號配置檔案
    在 user_config_dir 指定路徑下,建立與虛擬帳號同名的配置檔案並新增相應
的配置欄位,配置檔名稱一定要和虛擬使用者名稱相同。預設情況下虛擬使用者的配
置檔案會繼承全域性配置檔案中的語句,如果衝突,虛擬使用者配置檔案有效。
write_enable=yes      #預設允許在檔案系統寫入許可權
download_enable=yes#預設允許下載
[[email protected] ~]#su - virtualuser
[[email protected] ~]$ mkdir vuser1 vuser2 vuser3
//建立三個虛擬使用者的根目錄,此時在virtualuser的家目錄中,
[virtualuser @server ~]$ exit 
  
//vuser1 只能上傳許可權配置
[[email protected] vuserconfig]# cat vuser1
local_root=/home/virtualuser/vuser1
write_enable=YES
download_enable=NO
//vuser2 只能下載配置
[[email protected] vuserconfig]# cat vuser2
local_root=/home/virtualuser/vuser2
write_enable=NO
download_enable=yes
//vuser3 上傳下載等配置
[[email protected] vuserconfig]# cat vuser3
local_root=/home/virtualuser/vuser3
//然後依次登入vuser1,2,3 進行測試
[[email protected] ~]# lftp -u vuser1 192.168.0.254 ######################## 禁止使用者切換目錄 修改配置檔案如下,然後新增禁止切換目錄 的使用者名稱到這個檔案即可 /etc/vsftpd/chroot_list。     chroot_list_enable=YES            #YES的時候,啟用chroot 列表。     chroot_list_file=/etc/vsftpd/chroot_list        #在該目錄中的使用者禁止切換目錄,鎖定在家目錄