vsFTPd 於多人開發環境的虛擬使用者設定

2015-08-04 CentOS

引用前篇 vsFTPd Server 安裝 及 使用設定 對 vsftpd 安裝後,在這篇要針對 Web 多人開發的環境來加入虛擬使用者、特殊權限。安全設置。

 

由於多人開發的環境,我需要開發人員可以用 nginx 的權限來登入,鎖定家目錄並且 rwx 權限為 nginx 以便可以直接上傳下載 Web 檔案

在此篇將不再採用 /etc/passwd 為預設帳號,將設定虛擬使用者帳號,並且用 db file 的方式存放帳號密碼讓 ftp 更安全

 

設定檔都沿用前篇的設定,在進行以下修改或添加

 

Step.1 建立虛擬使用者帳號密碼檔

$ vim /etc/vsftpd/virtualuser

#檔案格式為一行帳號、一行密碼
nick
nick-pwd
eric
pwd-eric

此檔僅用於產生 db file 使用,為安全考量使用後請刪除。

 

Step.2 產生 db.file 帳號密碼檔

$ db_load -T -t hash -f /etc/vsftpd/virtualuser /etc/vsftpd/virtualuser.db
$ chmod 600 /etc/vsftpd/virtualuser.db

 

Step.3 修改 vsftpd.conf 公用設定檔

$ vim /etc/vsftpd.conf

one_process_model=no   \\不允許每個使用者都擁有一支process,當使用者量大的時候會造成Server很大的負擔
pasv_min_port=64500
pasv_max_port=65000
guest_enable=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_conf    \\虛擬使用者設定檔目錄位置

 

Step.4 建立虛擬使用者設定檔

$ mkdir /etc/vsftpd/user_conf

建立屬於nick的設定檔
$ vim /etc/vsftpd/user_conf/nick

local_root=/usr/share/nginx/html
guest_username=nginx
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000


eric的設定檔,以此類推
$ vim /etc/vsftpd/user_conf/eric

local_root=/Voluem
guest_username=nginx
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
  •  local_root 指定 user 家目錄
  • guest_username 登入時的權限,對應於 /etc/passwd 內的使用者帳號

 

Step.5  修改 vsftpd 的pam驗證方式

$ vim /etc/pam.d/vsftpd

#x64環境
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtualuser


#如果你是x86環境請用以下
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser

 

Step.6 重啟 vsftpd 後測試登入權限確定為 guest_username 所指定的就搞定了!

$ service vsftpd restart

$ cat /var/log/secure | grep vsftpd
Aug  4 10:34:54 Master vsftpd[24119]: pam_userdb(vsftpd:auth): user 'nick' granted access

 

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱