Vsftpd服務搭建

Vsftpd服務搭建
本實驗採用yum安裝vsfptd指令如下
yum install vsftpd* -y
匿名用戶創建、上傳、下載、刪除、重命名,在匿名用戶下添加如下三句配置,然後重啓vsftpd服務,再給予pub目錄757權限,屬主改成ftp即可
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
Vsftpd服務搭建
Vsftpd服務搭建

系統用戶登錄ftp實現創建、上傳、下載、刪除、重命名等操作
創建jfedu01密碼123456,登錄界面如下
Vsftpd服務搭建

虛擬用戶登錄ftp實現創建、上傳、下載、刪除、重命名等操作
1、 安裝Vsftpd虛擬用戶需用到的軟件及認證模塊yum install pam libdb -y
2、創建虛擬用戶列表ftpusers.txt,奇數行爲用戶名,偶數行爲密碼
Vsftpd服務搭建

3、 生成虛擬用戶數據庫認證文件,設置權限700
db_load -T -t hash -f ftpusers.txt vsftpd_login.db
chmod 700 vsftpd_login.db
4、 配置PAM認證文件,/etc/pam.d/vsftpd行首加入如下兩行
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
5、 創建系統用戶,該用戶不需要登錄和密碼,用於映射虛擬用戶
useradd -s /sbin/nologin ftpuser
6、 修改vsftpd.conf主配文件末尾增加以下幾行
#config virtual user FTP
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
7、 創建虛擬用戶目錄及用戶及配置文件
mkdir vsftpd_user_conf目錄及虛擬用戶jf01、jf02、jf03
Vsftpd服務搭建

8、 創建虛擬用戶各自虛擬目錄,並修改屬主
mkdir -p /home/ftpuser/jf{01,02} ; chown -R ftpuser.ftpuser /home/ftpuser/

9、 重啓vsftpd服務然後用虛擬用戶登錄
Vsftpd服務搭建

把虛擬用戶限制在各自家目錄下
修改vsftpd.conf配置文件鎖定家目錄,並增加allow_writeable_chroot=YES否則連接會500錯誤
Vsftpd服務搭建

一部分用戶限制家目錄一部分用戶可以自由穿梭

修改vsftpd.conf配置文件並創建chroot_list把jfedu01添加進去然後ftp登陸會發現jfedu02被限制在家目錄下jfedu01可以自由穿梭
Vsftpd服務搭建
Vsftpd服務搭建

註釋
很多情況下,我們希望限制ftp用戶只能在其主目錄下(root dir)下活動,不允許他們跳出主目錄之外瀏覽服務器上的其他目錄,這時候我就需要使用到chroot_local_user,chroot_list_enable,chroot_list_file這三個選項了。以下是對三個配置項的解釋: 本文原文出處: http://blog.csdn.net/bluishglc/article/details/42398811 嚴禁任何形式的轉載,否則將委託CSDN官方維護權益!
chroot_local_user #是否將所有用戶限制在主目錄,YES爲啓用 NO禁用.(該項默認值是NO,即在安裝vsftpd後不做配置的話,ftp用戶是可以向上切換到要目錄之外的)
chroot_list_enable #是否啓動限制用戶的名單 YES爲啓用 NO禁用(包括註釋掉也爲禁用)
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目錄下的用戶名單,至於是限制名單還是排除名單,這取決於chroot_local_user的值,我們可以這樣記憶: chroot_local_user總是一個全局性的設定,其爲YES時,全部用戶被鎖定於主目錄,其爲NO時,全部用戶不被鎖定於主目錄。那麼我們勢必需要在全局設定下能做出一些“微調”,即,我們總是需要一種“例外機制",所以當chroot_list_enable=YES時,表示我們“需要例外”。而”例外“的含義總是有一個上下文的,即,當”全部用戶被鎖定於主目錄“時(即chroot_local_user=YES),"例外"就是:不被鎖定的用戶是哪些;當"全部用戶不被鎖定於主目錄"時(即chroot_local_user=NO),"例外"“就是:要被鎖定的用戶是哪些。這樣解釋和記憶兩者之間的關係就很清晰了!
對於chroot_local_user與chroot_list_enable的組合效果,可以參考下表:
chroot_local_user=YES chroot_local_user=NO
chroot_list_enable=YES 1.所有用戶都被限制在其主目錄下 2.使用chroot_list_file指定的用戶列表,這些用戶作爲“例外”,不受限制 1.所有用戶都不被限制其主目錄下 2.使用chroot_list_file指定的用戶列表,這些用戶作爲“例外”,受到限制
chroot_list_enable=NO 1.所有用戶都被限制在其主目錄下 2.不使用chroot_list_file指定的用戶列表,沒有任何“例外”用戶 1.所有用戶都不被限制其主目錄下 2.不使用chroot_list_file指定的用戶列表,沒有任何“例外”用戶
讓我們舉個例子:
假設有ftp1, ftp2兩個ftp用戶, 計劃讓ftp1用戶鎖定在主目錄下,不允許切換到其他目錄, 但是允許ftp2用戶自由切換目錄,則可以分如下兩種方式實現:
方式一:
令:
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list名單列表爲:
ftp2
解釋:chroot_local_user=YES將所有用戶限定在主目錄內,chroot_list_enable=YES表示要啓用chroot_list_file, 因爲chroot_local_user=YES,即全體用戶都被“限定在主目錄內”,所以總是作爲“例外列表”的chroot_list_file這時列出的是那些“不會被限制在主目錄下”的用戶。
方式二:
令:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名單列表爲:
ftp1
解釋:chroot_local_user=NO則所有用戶不被限定在主目錄內,chroot_list_enable=YES表示要啓用chroot_list_file, 因爲chroot_local_user=NO,即全體用戶都“不被限定在主目錄內”,所以總是作爲“例外列表”的chroot_list_file這時列出的是那些“會被限制在主目錄下”的用戶。
其他情況:
對於chroot_local_user和chroot_list_enable的組合還有這樣兩種情況:
chroot_local_user=YES
chroot_list_enable=NO

chroot_local_user=NO
chroot_list_enable=NO
當chroot_list_enable=NO時,就不再啓用chroot_list_file,此時就是單純的把全部用戶限定或不限定在主目錄下了!
補充:
關於chroot_local_user的設置,通常我們傾向於:全局禁止跳出主目錄,使用chroot_list添加例外!即:使用Case 1的設置!
匿名用戶默認的root是/var/ftp

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