VSFTP配置虛擬用戶認證

1、安裝

yum -y install vsftpd   db4-utils  (db_load工具,用戶加密用戶名密碼文件,生成.db文件)

 

2、生成驗證用戶名密碼數據庫

vim /etc/vsftpd/login.txt

aaa (用戶名)

123456 (密碼)

bbb  (用戶名)

asdf(密碼)

ccc (用戶名)

7654(密碼)

保存退出


保存虛擬帳號和密碼的文本文件無法被系統帳號直接調用哈~我們需要使用db_load命令生成db口令數據庫文件
 
db_load -T -t hash -f  /etc/vsftpd/login.txt /etc/vsftpd/login.db
 
 
(3)修改數據庫文件訪問權限

數據庫文件中保存着虛擬帳號的密碼信息,爲了防止非法用戶盜取哈,我們可以修改該文件的訪問權限。生成的認證文件的權限應設置爲只對root用戶可讀可寫,即600

[root@red-hat-5 /]# chmod 600 /etc/vsftpd/vsftpd_login.db
[root@red-hat-5 /]# ll /etc/vsftpd/vsftpd_login.db
-rw------- 1 root root 12288 12-25 23:12 /etc/vsftpd/vsftpd_login.db
 
3.配置PAM文件

爲了使服務器能夠使用數據庫文件,對客戶端進行身份驗證,需要調用系統的PAM模塊.PAM(Plugable Authentication Module)爲可插拔認證模塊,不必重新安裝應用系統,通過修改指定的配置文件,調整對該程序的認證方式。PAM模塊配置文件路徑爲/etc/pam.d/目錄,此目錄下保存着大量與認證有關的配置文件,並以服務名稱命名。
[root@red-hat-5 /]# cat /etc/pam.d/vsftpd      (把原先的內容都注視掉,加入兩行新內容)
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     system-auth
#account    include     system-auth
#session    include     system-auth
#session    required     pam_loginuid.so
auth    required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
account   required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
 
注意:db=/etc/vsftpd/login 格式是這樣的,去掉.db後綴
 
注意如果是64位系統,請填寫路徑爲/lib64/security/pam_userdb.so  
           如果是32位系統,則直接寫/lib/security/pam_userdb.so  
 
4建立虛擬用戶所對應的本地用戶 (如果需要設置較爲複雜的權限,可以創建多個本地用戶,在虛擬用戶配置文件中將虛擬用戶映射爲本地用戶,來進行授權)
 
 # useradd -s /sbin/nologin  -d /ftp   vsftp  
設置vsftp 用戶家目錄即爲FTP主目錄
授權:
chown -R vsftp.vsftp /ftp
 

筆者在生產環境下用的配置:

[root@demo-PG vsftpd]# cat vsftpd.conf| grep -v "^#"
anonymous_enable=NO  禁用匿名用戶登錄
local_enable=YES       啓用本地用戶登錄設置
write_enable=YES     允許使用任何可以修改文件系統的FTP的指令
local_umask=022    
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Please must be use english name for file or directory!

listen=YES

pasv_enable=YES              允許PASV模式進行數據傳輸
pasv_min_port=65520       PASV模式下數據傳輸所使用port範圍下界
pasv_max_port=65530       PASV模式下數據傳輸所使用port範圍上界

user_config_dir=/etc/vsftpd/login     設置虛擬帳號的主目錄爲/etc/vsftpd/login

pam_service_name=vsftpd    配置vsftpd使用的PAM模塊爲vsftpd

userlist_enable=YES

tcp_wrappers=YES

 

 

 

[root@demo-PG vsftpd]# ll login
總計 16
-rw-r--r-- 1 root root 117 09-17 15:53 aaa
-rw-r--r-- 1 root root 115 09-17 16:27 bbb
-rw-r--r-- 1 root root 115 09-17 16:27 ccc
[root@demo-PG vsftpd]# cat login/aaa    (aaa用戶只允許下載ftp中的內容)
guest_enable=YES                          開啓此虛擬用戶的登錄FTP權限
guest_username=vsftp                     映射此虛擬用戶對應的本地系統用戶
anon_world_readable_only=NO
 
[root@demo-PG vsftpd]# cat login/bbb     (bbb用戶只允許上傳ftp中的內容)
guest_enable=YES
guest_username=vsftp
anon_upload_enable=YES
 
[root@demo-PG vsftpd]# cat login/ccc    (ccc用戶可以完全修改ftp中的內容)
guest_enable=YES
guest_username=vsftp
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
 

 

service vsftpd restart

配置完成!

user_config_dir=/etc/vsftpd ,這段配置文件就是告訴vsftpd,當虛擬用戶登錄成功後(也許是在登陸時)就會讀取這個目錄下的與虛擬用戶名一直的配置文件,注意 user_config_dir 的值是目錄的名稱,而且此目錄下一定要有和虛擬用戶名稱一樣的配置文件

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