以CENTOS爲例。 一、在 root 權限下,經過命令 yum install vsftpd 安裝 vsftp。 二、啓動 vsftpd 服務以前,須要登陸雲服務器修改配置文件,禁用匿名登陸。 使用 vim /etc/vsftpd/vsftpd.conf 打開配置文件,將配置文件中第 11 行的 anonymous_enable=YES 改成anonymous_enable=NO 便可禁用匿名登陸。 三、使用 cat /etc/vsftpd/vsftpd.conf |grep ^[^#] 命令讀取生效配置。 返回結果爲: local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
四、使用 service vsftpd start 命令啓動 vsftpd 服務。
五、設置 FTP 用戶賬號。html
1)、使用命令 useradd 設置FTP用戶帳號 例如,設置帳號爲ftpuser1,目錄爲/home/ftpuser1,且設置不容許經過SSH登陸的命令爲: useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1 2)、使用命令 password 設置帳號對應的密碼 例如,設置上述帳號密碼爲 ftpuser1 的命令爲: passwd ftpuser1 設置成功後。便可經過該帳號及密碼鄧麗FTP服務器。
完成修改後,重啓vsftpd服務,使配置生效。linux
測試:客戶端使用FILEZILLAweb
在vsftpd服務的配置文件下添加如下配置。 pasv_enable=YES #開啓被動模式 pasv_min_port=20000 #設置被動模式傳輸數據的端口範圍 pasv_max_port=20045 #設置被動模式傳輸數據的端口範圍 重啓vsftpd服務後再進行測試。
業務場景:數據庫
公司內部如今有一臺WEB 服務器,其上的FTP的功能主要用於維護公司的web1 和web2網站內容,包括上傳文件、建立目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別使用team1 和team2 虛擬用戶登錄進行管理。現要求僅容許team1 和team2 登陸FTP服務,但不能登陸本地系統,並將這兩個賬號的根目錄限制爲/var/www/html,不能進入該目錄之外的任何目錄。 只容許:team1和team2 虛擬用戶 能夠上傳。 禁止匿名。
一、創建虛擬帳戶列表配置文件:vim /etc/vsftpd/virtusers
team1
123456
team2
123456
二、生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀
三、在/etc/pam.d/vsftpd的文件頭部加入如下信息(在後面加入無效)
修改前先備份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
恢復cp /etc/pam.d/vsftpdbak /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
四、新建一個系統用戶vsftpd,用戶家目錄爲/var/www/
useradd vsftpd -d /var/www/html/ -s /bin/false #禁止登錄本地系統
五、創建虛擬用戶我的Vsftp的配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch team1 team2 #這裏建立二個虛擬用戶配置文件
################
vim team1 #編輯用戶team1配置文件
local_root=/var/www/html/web1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
################
vim team2 #編輯用戶team2配置文件
local_root=/var/www/html/web2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
六、最後重啓vsftpd服務器
systemctl,restart vsftpd #或者 /etc/init.d/vsftpd restart apache
如下這些是關於Vsftpd虛擬用戶支持的重要配置項目。 默認Vsftpd.conf中不包含這些設定項目,須要本身手動添加配置 ######################################################### guest_enable=YES #設定啓用虛擬用戶功能。 guest_username=vsftpd #指定虛擬用戶的宿主用戶(也能夠指定虛擬用戶的宿主用戶爲apache運行帳戶,能夠避免不少權限設置問題) user_config_dir=/etc/vsftpd/vconf #設定虛擬用戶我的Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每一個Vsftp虛擬用戶個性的配置文件,須要注意的地方就是這些配置文件名必須和虛擬用戶名相同。好比說vsftpd.conf的配置文件,你複製到這個目錄下,你要mv一下,配置成虛擬用戶的名稱。 virtual_use_local_privs=YES #當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認狀況下此參數是關閉的(NO)。 pasv_enable=YES #設置開啓被動模式,可註釋 pasv_min_port=20000 #設置被動模式的端口範圍 ,可註釋 pasv_max_port=20045 #設置被動模式的端口範圍,可註釋 accept_timeout=5 #保持5秒 connect_timeout=10 #10秒後從新鏈接