##实验环境
1.vsftpd安装及启用
ftp:file transfer proto
互联网中最老牌的文件传输协议
服务器
dnf install vsftpd -y ##安装vsftpd
systemctl enable --now vsftpd ##开启vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload ##关闭防火墙
id westos
vim /etc/vsftpd/vsftpd.conf ##修改vsftpd配置文件
修改 12行 anonymous_enable=YES
systemctl restart vsftpd ##重启vsftpd服务
客户端
dnf install lftp -y ##安装lftp
lftp 192.168.95.100 ##默认匿名用户登录访问
ls ##可以列出文件---->登录成功
lftp 192.168.95.100 -u westos ##westos用户登录访问
ls ##可以列出文件---->登录成功
3.vsftpd基本信息
服务名称:
vsftpd.service
配置目录: /etc/vsftpd
主配置文件: /etc/vsftpd/vsftpd.conf
默认发布目录: /var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
4.匿名用户访问控制
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问
登陆控制
anonymous_enable=YES|NO
家目录控制
anon_root=/westosdir
上传控制
anon_upload_enable=YES|NO
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
lftp 192.168.0.100
cd pub
put /etc/passwd
目录建立控制
anon_mkdir_write_enable=YES|NO
下载控制
anon_world_readable_only=NO ##匿名用户可以下载不能读的文件
删除重命令控制
anon_other_write_enable=YES|NO
匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022
##当设定chown_username之后上传文权限将不是用此参数设定
匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
登陆数量控制:
max_clients=2
上传速率控制
anon_max_rate=102400
5.本地用户访问
登陆控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp 192.168.0.10 -u westos
local_enable=NO|YES
家目录控制
local_root=/software
写权限控制
write_enable=NO|YES
上传文件权限控制
local_umask=077
用户登陆控制
/etc/vsftpd/ftpusers ##永久黑
/etc/vsftpd/user_list ##默认黑
用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list位白名单
#不在名单中的用户不能登陆ftp
锁定用户到自己的家目录中
chmod u-w /home/*
chroot_local_user=YES
锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
6.虚拟用户访问
服务器
vim /etc/vsftpd/westos ##建立认证模板
user1 -->用户名称
123 -->用户密码
user2
123
user3
123
cd /etc/vsftpd/
db_load -T -t hash -f westos westos.db ##加密认证文件
##-T type -f 指定转换文件
vim /etc/pam.d/westos
accoount required pam_userdb.so db=/etc/vsftpd/westos
auth required pam_userdb.so db=/etc/vsftpd/westos
vim /etc/vsftpd/vsftpd.conf ##修改配置文件
pam_service_name=westos ##指定认证策略
guset_enable=YES ##指定虚拟用户功能开启
guset_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
systemctl restart vsftpd
客户端*
lftp 192.168.95.100 -u user1
lftp 192.168.95.100 -u user2
lftp 192.168.95.100 -u user3 ##三个虚拟用户user1,user2,user3都可以登陆访问
7.虚拟用户家目录独立设定
mkdir -p /ftpuserdir/user{1..3}
touch /ftpuserdir/user1/westosfile1
touch /ftpuserdir/user2/westosfile2
touch /ftpuserdir/user3/westosfile3
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER
systemctl restart vsftpd
8.用户独立配置
user_config_dir=/etc/vsftpd/user_config
##在此目录中与用户名称相同的文件为用户配置
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/user2
chmod 775 /ftpuserdir/user{1..3}/pub
chgrp ftp /ftpuserdir/user{1..3}/pub
设定完成后user2用户可以上传文件
user1和user3用户不行