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

虛擬賬戶的 vsftpd FTP 服務搭建
環境centos6.6

實現效果
搭建一個基於虛擬用戶的 FTP 站點,
虛擬用戶:uplad 密碼:upload ,可以上傳下載
要求三個虛擬用戶 vuser1、vuser2、vuser3 登錄後
權限分別是:vuser1 能下載不能上傳,vuser2 能上傳不能下載,vuser3 既能上傳也能下載。
yum install -y vsftpd
[root@server vsftpd]# cd /etc/vsftpd
[root@server vsftpd]# vi virtualuser.txt
upload
upload
vuser1
123456
vuser2
123123
vuser3
123456
//把新建的文本文件 virtualuser.txt 轉換爲 db 文件,安裝 db4-utils 包
[root@server vsftpd]#yum install -y db4-utils
[root@server vsftpd]#db_load -T -t hash -f virtualuser.txt /etc/vsftpd/virtualuser_login.db

//這條命令生成用戶數據庫
#寫個腳本,每次添加賬號後,執行以下
[root@LFTp-Svn01 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
[root@server vsftpd]# chmod 600 virtualuser_login.db 
//設置認證文件只對用戶可讀可寫
[root@server 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
[root@server 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

[root@server 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 則指定了驗證庫函數將到這個指
定的數據庫中調用數據進行驗證。

[root@server vsftpd]# useradd virtualuser
//建立虛擬用戶所對應的本地真實用戶(可以創建任意用戶)

//重新修改 vsftpd.conf 配置文件
[root@newsales3 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 
在沒有建立虛擬賬戶配置文件測試默認虛擬用戶的權限:
[root@server ~]# 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 #默認允許下載
[root@server ~]#su - virtualuser
[virtualuser@server ~]$ mkdir vuser1 vuser2 vuser3
//創建三個虛擬用戶的根目錄,此時在virtualuser的家目錄中,
[virtualuser @server ~]$ exit 
  
//vuser1 只能上傳權限配置
[root@server vuserconfig]# cat vuser1
local_root=/home/virtualuser/vuser1
write_enable=YES
download_enable=NO
//vuser2 只能下載配置
[root@server vuserconfig]# cat vuser2
local_root=/home/virtualuser/vuser2
write_enable=NO
download_enable=yes
//vuser3 上傳下載等配置
[root@server vuserconfig]# cat vuser3
local_root=/home/virtualuser/vuser3
//然後依次登錄vuser1,2,3 進行測試
[root@server ~]# lftp -u vuser1 192.168.0.254

########################
禁止用戶切換目錄
修改配置文件如下,然後添加禁止切換目錄 的用戶名到這個文件即可 /etc/vsftpd/chroot_list。
    chroot_list_enable=YES            #YES的時候,啓用chroot 列表。
    chroot_list_file=/etc/vsftpd/chroot_list        #在該目錄中的用戶禁止切換目錄,鎖定在家目錄

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