一、概念
vsftpd虛擬用戶:不是系統(tǒng)用戶,即虛擬用戶在系統(tǒng)中是不存在的,不能用來(lái)登錄系統(tǒng)锨用。他們的總體權(quán)限其實(shí)是集中寄托在一個(gè)真實(shí)存在的用戶(即虛擬宿主用戶)身上。
vsftpd的虛擬宿主用戶:真實(shí)存在的用戶隘谣,是所有虛擬用戶的宿主用戶增拥。由于他支撐了FTP的所有虛擬的用戶,所以虛擬宿主用戶的權(quán)限將會(huì)影響著這些虛擬的用戶寻歧。出于安全性考慮掌栅,要非常注意對(duì)該用戶的權(quán)限的控制,該用戶絕對(duì)沒(méi)有登陸系統(tǒng)的必要码泛,這里也設(shè)定為不能登陸系統(tǒng)的用戶猾封。
ftp目錄:/test/pub
指定訪問(wèn)的用戶名:aa
密碼:Aa123456
二、安裝
(1)安裝vsftpd噪珊、pam晌缘、db4、db4-utils
pam:是認(rèn)證模塊
db4/db4-utils:用來(lái)生成Berkeley DB格式的數(shù)據(jù)庫(kù)
(2)#yum -y install vsftpd pam* db4*
(3)添加真實(shí)用戶(宿主用戶):useradd -s /sbin/nologin vsftpd
(4)建立虛擬用戶帳號(hào)密碼文件:奇數(shù)行為賬號(hào)痢站,偶數(shù)行為密碼
vim /etc/vsftpd/virtual_user.txt ? ? ? ? ? ? ? ? ? ? ? ? ?//virtual_user.txt自己起的文件名磷箕,可以添加多個(gè)帳號(hào)密碼
aa
Aa123456
(5)生成vsftpd虛擬用戶數(shù)據(jù)庫(kù)文件
#cd /etc/vsftpd
#db_load -T -t hash -f virtual_user.txt virtual_user.db
#chmod 600 virtual_user.db
(6)PAM設(shè)置
注釋掉原來(lái)的所有行,并添加如下三行
vim /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? ???password-auth
#account? ? include? ???password-auth
#session? ? required? ? pam_loginuid.so
#session? ? include? ???password-auth
auth? ?? ? required ? ? ? ??pam_userdb.so db=/etc/vsftpd/virtual_user
account? ? required? ???pam_userdb.so?db=/etc/vsftpd/virtual_user
session? ? required? ???pam_loginuid.so
(7)配置vsftpd.conf
###原文件中沒(méi)有的參數(shù)阵难,就要添加###
vim /etc/vsftpd/vsftpd.cof
anonymous_enable=NO? ?? ? #修改此行禁用匿名用戶訪問(wèn)岳枷,YES改為NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES? ?? ? #開(kāi)啟日志記錄
connect_from_port_20=YES
xferlog_std_format=YES? ?#日志記錄格式
listen=YES
pam_service_name=vsftpd ? ? ? ? ? ? ? ? ? ? ? ?#設(shè)置PAM使用的名稱,該名稱就是/etc/pam.d/目錄下vsfptd文件的文件名
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES ? ? ? ? ? ? ? ? ?#開(kāi)啟虛擬用戶功能,即映射虛擬用戶與真實(shí)用戶
guest_username=vsftpd ? ? ? ? #指定真實(shí)用戶呜叫,vsftpd就是上面添加的用戶
user_config_dir=/etc/vsftpd/user_conf? ? #指定虛擬用戶配置目錄空繁,此目錄要自己創(chuàng)建
chroot_local_user=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#鎖定虛擬用戶只能操作指定目錄
(8)單獨(dú)給虛擬用戶分配權(quán)限
mkdir /etc/vsftpd/user_conf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#創(chuàng)建虛擬用戶配置目錄
vim /etc/vsftpd/user_conf/aa ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#文件名和賬戶名一致
local_root=/test/pub
write_enable=YES
anon_upload_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #允許上傳
anon_mkdir_write_enable=YES ? ? ? ? ? ? ? ? ? ? ? #允許虛擬用戶創(chuàng)建目錄
anon_other_write_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? #允許擁有除了上傳和新建目錄之外的其他權(quán)限,如刪除朱庆、更名等
anon_world_readable_only=NO ? ? ? ? ? ? ? ? ? ? ? #允許虛擬用戶瀏覽整個(gè)服務(wù)器的文件系統(tǒng)
virtual_use_local_privs=YES ? ? ? ? ? ? ? ? ? ? ? ? ? ??#虛擬用戶和本地用戶有相同的權(quán)限
(9)重啟vsftpd并測(cè)試
#service vsftpd restart
用用戶名密碼測(cè)試:aa/Aa123456
Linux:??ftp 192.168.10.233
Window:ftp://192.168.10.233
備注:
禁錮根目錄相關(guān):
默認(rèn)情況下盛泡,用戶登陸ftp后的根目錄就是用戶自己的家目錄。若不將用戶禁錮在根目錄娱颊,則登陸的用戶可以通過(guò)cd命令至切換至根目錄以外的目錄傲诵,產(chǎn)生安全隱患。配置文件中相關(guān)選項(xiàng)如下:
chroot_list_enable=YES ? ? ? ? 是否啟用用戶禁錮在家目錄文件
chroot_list_file=/etc/vsftpd/chroot_list ? ? ? ? ? ? ?指定禁錮文件维蒙,文件中的用戶將被禁錮
chroot_local_user=YES ? ? ? ? ? ? ? ? ? ? 是否允許所有系統(tǒng)用戶禁錮在家目錄掰吕。
例如:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
或者
chroot_local_user=YES