搭建vsftp pam認證

1、yum安裝vsftpd程序:

[root@NcBank01 other]# yum install vsftpd -y


2、修改配置文件

[root@NcBank01 other]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO 

 //是否允許anonymous登錄FTP服務器,默認是允許的。
local_enable=YES  

//是否允許本地用戶登錄FTP服務器,默認是允許
write_enable=YES  

//是否允許用戶具有在FTP服務器文件中執行寫的權限,默認是允許
anon_umask=022  

//設置虛擬用戶的文件生成掩碼爲022,默認是077
dirmessage_enable=YES  

//激活目錄信息,當遠程用戶更改目錄時,將出現提示信息
xferlog_enable=YES  

//啓用上傳和下載日誌功能
connect_from_port_20=YES  

//啓用FTP數據端口的連接請求
xferlog_file=/var/log/vsftpd.log  

//設置日誌文件的文件名和存儲路徑,這是默認的
xferlog_std_format=YES  

//是否使用標準的ftpd xferlog日誌文件格式
listen=YES  

//使vsftpd 處於獨立啓動模式
user_config_dir=/etc/vsftpd/vuser_dir  

//使用虛擬用戶配置文件的目錄
pam_service_name=/etc/pam.d/vsftpd  

//設置PAM認證服務的配置文件名稱,該文件存放在/etc/pam.d/目錄下.
userlist_enable=NO  

//用戶列表中的用戶是否允許登錄FTP服務器,默認是不允許
chroot_list_enable=YES  

//如果希望用戶登錄後不能切換到自己目錄以外的其它目錄,需要設置該項
tcp_wrappers=YES  

//使用tcp_wrqppers作爲主機訪問控制方式
guest_enable=YES  

//是否啓用來賓用戶(也就是啓用虛擬用戶)
guest_username=root  

//如果啓用了虛擬用戶後上傳文件修改文件的用戶名
chown_uploads=YES  

//是否啓用上傳文件後修改爲指定的屬主
chown_username=root  

//是否啓用上傳文件後修改爲指定的屬主用戶


3、在/etc/vsftpd/下創建兩個目錄

vuser_db  #後續存放虛擬用戶的配置文件
vuser_dir  #存放虛擬用戶的認證文件

//以下是login_vuser虛擬用戶的帳號密碼格式,奇數行爲用戶名,雙數行爲密碼
user003
20150105
user004
20150106
user005
20150107

//生成數據庫文件
//選項-T允許應用程序能夠將文本文件轉譯載入進數據庫。由於我們之後是將虛擬用戶的信息以文件方式存儲在文件裏的,爲了讓Vsftpd這個應用程序能夠通過文本來載入用戶數據,必須要使用這個選項。
如果指定了選項-T,那麼一定要追跟子選項-t
子選項-t,追加在在-T選項後,用來指定轉譯載入的數據庫類型。擴展介紹下,-t可以指定的數據類型有Btree、Hash、Queue和Recon數據庫。
-f:參數後面接包含用戶名和密碼的文本文件,文件的內容是:奇數行用戶名、偶數行密碼
[root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db


4、更改pam認證模塊

[root@master vuser_db]# cd /etc/pam.d/
[root@master vuser_db]# vim vsftpd  //這個文件名要與主配置文件中的pam_service_name指定的一致
//最後面的vuser就是vuser.db,但是這裏的後綴不是需要寫的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser


5、爲虛擬用戶創建對應的文件vi

[root@master vsftpd]# cd /etc/vsftpd/vuser_dir/
[root@master vuser_dir]# ll  //login_vuser中有多少個帳號就創建多少個虛擬用戶文件
total 6
-rw-r--r--. 1 root root 177 Jan  5 17:03 user003
-rw-r--r--. 1 root root 177 Jan  5 17:09 user004
-rw-r--r--. 1 root root 177 Jan  5 17:19 user005
[root@master vuser_dir]# vim user003
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/test  //指定虛擬用戶有權限登錄到哪個目錄
chown_upload_mode=0777  //虛擬用戶上傳文件的權限設置

到這裏基本上算是配置完成了,可以啓動vsftpd服務了:

root@master vsftpd]# service vsftpd start



6添加新的虛擬用戶

[root@NcBank01 vsftpd]# vi adduser.txt

賬號

密碼

db_load -T -t hash -f adduser.txt  addftpuser.bdb


db_dump addftpuser.bdb > addftpuser.txt

db_dump vuser.db > vuser.db.txt


然後打開Mobileusers.txt 和 addftpuser.txt

 

格式類似:

VERSION=3                          #版本
format=bytevalue                  #本文格式
type=hash                            #加密方式
h_nelem=2                            #文件內含用戶的數量
db_pagesize=4096
HEADER=END                          #頭屬性結束
 6674707573657231                #第一個用戶的用戶名
 313233343536                       #第一個用戶的密碼
 6674707573657232                 #第二個用戶的用戶名
 313233343536                        #第二個用戶的密碼
DATA=END                              #數據屬性結束

將addftpuser.txt中的內容相應的加入到Mobileusers.txt 中並且修改文件內用戶的數量

之後在使用db_load回覆pam的配置文件。

(執行操作之前一定要做備份)

 

db_load -f vuser.db.txt vuser.db 

 

[root@NcBank01 vsftpd]# ll /etc/vsftpd/vuser_dir/

total 8

-rw-r--r-- 1 root root 173 May  6 11:26 user003

-rw-r--r-- 1 root root 173 May  23 11:19 user004

創建虛擬文件給與權限

重啓vsftp即可


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