由於業務的問題,有位客戶的帳戶老是出現各類問題,本人對於acl的使用又不是很會,因此和同事一塊兒研究了一下這個虛擬ftp用戶。linux
Centos6.5數據庫
1 需求vim
爲了保證系統的安全性,現對系統中vsftpd服務進行調整,主要爲禁止OS本地帳戶直接登陸,採用虛擬帳戶;設置兩個虛擬帳戶,一個用於上傳更新(可讀可寫),一個用於下載(僅讀);ftp根目錄/var/ftp/pub保持不變(可擴展)安全
一:基本知識服務器
1:虛擬用戶:與系統無關聯,不能登入系統,只能訪問FTP服務器測試
2:vsftp的服務進程是vsftpdui
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .rest
4:vsftpd的用戶文件是/etc/vsftpd/ftpusers進程
5:vsftpd的用戶文件是/etc/vsftpd/user_listip
6:推薦使用虛擬用戶登入vs-FTP服務器
2、安裝vsftp
1,查看是否安裝vsftpd服務
rpm –qa| grep vsftpd
2,安裝vsftpd服務
yum -y install vsftpd
3,檢查服務器selinux是否開啓,若是開啓,關閉selinux
/usr/sbin/sestatus –v
3、配置虛擬用戶
1, 建立虛擬用戶文本文件,添加虛擬用戶和密碼
cd /etc/vsftpd/
touch vuser.txt
vim vuser.txt(奇數行是用戶名,偶數是密碼)
2, 生成虛擬數據庫文件(*若是db_load沒有安裝,yum install db4-utils db4-devel db4-4.3安裝才能使用。)
db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3, 配置PAM文件,目的是對客戶端進行驗證, 編輯/etc/pam.d/vsftpd文件,批註全部內容,後添加:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
*不能寫成db=/etc/vsftpd/vuser.db
4, 修改虛擬數據庫文件vuser.db的權限爲 700
chmod 700 vuser.db
5, 增長一個系統用戶vuser ,使用它來對應全部虛擬用戶,虛擬用戶使用系統用戶來訪問ftp服務器
mkdir /ftpdir
useradd -d /ftpdir -s /sbin/nologin vuser
chown vuser.vuser /ftpdir
6, 修改vsftpd.conf配置文件,使虛擬用戶能夠訪問vsftpd服務器,增長如下參數, 注意:「=」兩邊不能有空格
guest_enable=YES ####激活虛擬帳戶
guest_username=vuser ####把虛擬帳戶綁定爲系統帳戶vuser
pam_service_name=vsftpd ####使用PAM驗證
user_config_dir=/etc/vsftpd/vsftpd_user_conf ##設置虛擬用戶的主配置文件
7, 創建vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
8, 設置虛擬用戶配置文件,與虛擬帳戶同名
touch /etc/vsftpd/vsftpd_user_conf/admins_user
9, 編輯虛擬帳戶lowkeyman的配置文件lowkeyman,是虛擬帳戶lowkeyman得到相應的權限
anon_world_readable_only=NO ###瀏覽FTP目錄和下載
anon_upload_enable=YES ###容許上傳
anon_mkdir_write_enable=YES ###創建和刪除目錄
anon_other_write_enable=YES ####更名和刪除文件
local_root=/ftpdir/ #### 指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登陸後的主目錄
10,service vsftpd restart (測試各個虛擬用戶的權限是否生效)
很差用的狀況下,請注意本機的selinux,iptables,端口占用,以及雲平臺的安全組等方面是否都設置好了。