FTP 的用戶一共有三種類型
匿名用戶:ftp,anonymous,對應Linux用戶ftp
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
虛擬用戶:特定服務的專用用戶,獨立的用戶名/密碼文件
VSFTPD服務
vsftpd 服務,由vsftpd包提供,直接使用yum安裝就可以。
用戶認證配置文件:/etc/pam.d/vsftpd
服務腳本: /usr/lib/systemd/system/vsftpd.service,/etc/rc.d/init.d/vsftp
配置文件:/etc/vsftpd/vsftpd.conf
匿名用戶(映射爲系統用戶ftp )共享文件位置:/var/ftp
系統用戶共享文件位置:用戶家目錄
虛擬用戶共享文件位置:爲其映射的系統用戶的家目錄
本文主要介紹三個實驗:配置ftp服務以非獨立服務方運行,基於SSL的FTPS,vsftpd虛擬用戶
一、配置ftp服務以非獨立服務方運行
FTP服務既可以作爲獨立服務運行,也可以作爲非獨立服務進行運行。所謂非獨立服務,指的就是使用xinetd服務代替FTP服務來監聽21端口,當有用戶訪問FTP服務的時候,xinetd服務就會自動啓動FTP服務,並提供給用戶訪問。
1.1、安裝vsftpd、xinetd:yum -y install vsftpd xinetd
1.2、修改配置文件/etc/vsftpd/vsftpd.conf,如下圖。
listen=YES,表示以獨立的服務運行,listen=no表示以非獨立的服務進行運行。
1.3、因爲ftp是獨立的文件,要改爲非獨立文件需要手動編寫一個配置文件(cp rsync vsftpd),修改內容如下。
1.4、重啓xinetd服務:service xinetd restart
1.5、設置成開機自啓:chkconfig xinetd on
1.6、查看ftp的21號端口是否成功被xinetd監聽。
二、基於SSL的FTPS
FTP服務,默認用戶登陸時的口令是明文的。這樣很容易被獲取到,使用SSL來進行加密,該操作是對用戶登陸ftp時對用戶的信息進行加密,使用戶的信息不被泄露。
2.1、查看是否支持SSL ldd `which vsftpd`
查看到libssl.so
2.1、生成證書,創建私鑰
2.3、配置vsftpd服務支持SSL:/etc/vsftpd/vsftpd.conf
2.4、修該配置文件成功後重啓服務
三、vsftpd虛擬用戶
虛擬用戶: 所有虛擬用戶(非本地用戶)會統一映射爲一個指定的系統帳號:訪問共享位置,即爲此係統帳號 的家目錄 各虛擬用戶可被賦予不同的訪問權限,通過匿名用戶的權限控制參數進行指定 。
虛擬用戶帳號的存儲方式: 文件:編輯文本文件,此文件需要被編碼爲hash格式 奇數行爲用戶名,偶數行爲密碼 db_load -T -t hash -f vusers.txt vusers.db 關係型數據庫中的表中: 實時查詢數據庫完成用戶認證 mysql庫:pam要依賴於pam-mysql /lib64/security/pam_mysql.so /usr/share/doc/pam_mysql-0.7/README
3.1、生成用戶文件vim ftpvusers(奇數行爲用戶名,偶數行爲密碼)
進入/etc/vsftpd/目錄下,創建數據庫文件,並修改數據庫文件權限。
3.2、創建系統用戶和訪問FTP目錄
虛擬用戶訪問FTP服務器的時候,要進入到自己的家目錄下,但是系統中沒有虛擬賬戶所對應的賬號家目錄,所以我們要創建一個系統用戶,與虛擬賬戶關聯起來,這樣,當虛擬用戶登陸之後,就會進入到我們創建的系統用戶的家目錄,然後進行數據訪問。
注意:對於CentOS7,家目錄有寫權限,用戶在登陸的時候會出錯的,要去掉寫權限。
3.3、編輯主配置文件:vim /etc/vsftpd/vsftpd.conf
pam指定的vsftpd.vuser默認時不存在的,需要手動配置,位置內容如下。
1).cp vsftpd vsftpd.vuser
2).vim vsftpd.vuser
3).配置成功後重啓服務:systemctl restart vsftpd
在客戶機中測試用ftp文件中的用戶登錄ftp,測試結果如下所示。
另:如果對SELinux有什麼特殊要求的話,可以單獨對SELinux進行設置,如果沒有特殊要求的話,直接禁用SELinux就可以。
編輯 vim /etc/selinux/config 文件,
設置 "SELINUX=disabled", 保存退出,
重啓reboot.
重啓ftp服務。
3.4、虛擬用戶建立獨立的配置文件
在vsftpd的配置文件中指定,用戶配置文件的存儲路徑,然後在/etc/
目錄下,創建相應的目錄,並且在目錄中定義與用戶名一致的配置文件並寫入相應權限就可以了。
在vsftpd的配置文件 /etc/vsftpd/vsftpd.conf 中指定如下路徑.
在etc目錄下,創建如下的文件目錄,這一個目錄與前面在vsftpd配置文件中定義的一致。
這裏舉例設置虛擬用戶daer的下載權限如下。
設置成功後重啓服務:systemctl restart vsftpd
以上就是所有操作,最後結果可在客戶機測試。