###unit.9 vsftpd服務###
1.什麼是ftp
2.安裝ftp
yum install vsftpd -y
systemctl start vsftpd
firewall-cmd --permanent --add-server=ftp
firewall-cmd --reload
firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ftp ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
setenforce 0
lftp ip##能登陸並且顯示,表示安裝成功
3.vsftpd文件信息
/var/ftp##默認發佈目錄
/etc/vsftpd##配置目錄
4.vsftpd服務的配置參數
1)匿名用戶設定
anonymous_enable=YES|NO##匿名用戶登陸的限制
匿名用戶上傳
vim /etc/vaftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
setenforce 0
匿名用戶家目錄修改
anon_root=/direcotry
匿名用戶上傳文件默認權限修改
anon_umask=XXX
匿名用戶建立目錄
anon_mkdir_write_enable=YES|NO
匿名用戶下載
anon_world_readable_only=YES|NO
匿名用戶刪除
anon_other_write_enable=YES|NO
匿名用戶使用的用戶身份修改
chown_uploads=YES
chown_username=student
最大上傳速率
anon_max_rate=102400
最大連接數
max_clients=2
2)本地用戶設定
local_enable=YES|NO##本地用戶登陸限制
write_enable=YES|NO##本地用戶寫權限限制
本地用戶家目錄修改
local_root=/directory
本地用戶上傳文件權限
local_umask=XXX
限制本地用戶瀏覽/目錄
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES
chmod u-w /home/*
用戶黑名單建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用戶白名單建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用戶登陸
vim /etc/vsftpd/ftpusers##用戶黑名單
vim /etc/vsftpd/user_list##用戶臨時黑名單
用戶白名單設定
userlist_deny=NO##參數設定,此文件變成用戶白名單,在名單中出現的用戶可以登陸ftp
ftp虛擬用戶的設定
創建虛擬帳號身份
vim /etc/vsftpd/userfile##文件名稱任意
westos1
123
westos2
123
westos3
123
db_load -T -t hash -f /etc/vsftpd/userfile userfile.db##(-T表示轉換,-t表示加密格式,-f表示指定文件)
vim /etc/pam.d/westos##文件名稱任意
accountrequiredpam_userdb.sodb=/etc/vsftpd/userfile
authrequiredpam_userdb.sodb=/etc/vsftpd/userfile
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES
虛擬帳號身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser
虛擬帳號家目錄獨立設定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
常見錯誤代碼:
lftp [email protected]:~> ls
ls: Login failed: 500 OOPS: cannot change directory:/ftpuserhome/westos1
lftp [email protected]:~> ls
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()