目录
实验环境
1.srver主机:node1 172.25.254.102
selinux关闭;火墙关闭;dnf安装设定完成
安装vsftp
2.client主机:node2 172.25.254.202
selinux关闭;dnf安装设定完成
安装lftp ftp协议文本浏览器
一.ftp介绍
ftp:file transfer proto
互联网中最老牌的文件传输协议
二.vsftpd安装及启用
dnf install vsftpd -y
关闭selinux
systemctl disable --now firewalld
systemctl enable --now vsftpd
vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 启动匿名用户的访问功能
systemctl restart vsftpd
测试安装发布:
firefox ftp://ip
lftp ip 此访问方式必须能列出资源才算访问成功
在使用完成后请输入exit推出lftp
三.vsftpd基本信息
服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 程序本身拒绝
553 文件系统权限限制
500 权限过大
530 认证失败
![](https://i-blog.csdnimg.cn/blog_migrate/278569e7ca7a89886f5e89c274e450d6.png)
四.匿名用户访问控制
lftp 172.25.254.102 当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.102 -u westos 本地用户访问
(一)登陆控制
anonymous_enable=YES|NO
(二)家目录控制
anon_root=/mnt
(三)上传控制
anon_upload_enable=YES|NO
chmod 777 /var/ftp/pub
lftp 172.25.254.102
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之后上传文权限将不是用此参数设定
未设定权限默认600,设定后文件权限644
(八)匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=westos
chown_upload_mode=0640
(九)登陆数量控制:
max_clients=2
上限时出现排队状况
(十)上传速率控制
anon_max_rate=102400 =100k/s
![](https://i-blog.csdnimg.cn/blog_migrate/a73e5247794a433926bcb178e4b19096.png)
五.本地用户的访问
(一)登陆控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp 172.25.254.102-u westos
local_enable=NO|YES
(二)家目录控制
local_root=/mnt
(三)写权限控制
write_enable=NO|YES
(四)上传文件权限控制
local_umask=022
(五)用户登陆控制
/etc/vsftpd/ftpusers 永久黑
/etc/vsftpd/user_list 默认黑
(六)用户登陆白名单
userlist_deny=NO 设定/etc/vsftpd/user_list 为白名单,不在名单中的用户不能登陆ftp
lee在名单内,westos不在
(七)锁定用户到自己的家目录中
chmod u-w /home/*
chroot_local_user=YES
(八)锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
lee在名单内,westos不在
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
六.虚拟用户访问
(一).建立虚拟用户过程
1.vim /etc/vsftpd/ftp_auth_file 建立认证文件模板
2.db_load -T -t hash -f ftp_auth_file ftp_auth_file.db 加密认证文件 -T 转换 -t type -f 指定转换文件
3.vim /etc/pam.d/ftpauth
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
例子:
根据系统中的例子编写 vim /etc/pam.d/ftpauth
4.vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpauth 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
注释后,本地用户登录不了
(二)虚拟用户家目录的独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER
systemctl restart vsftpd
效果:
(三)用户配置独立
针对某一个或多个用户设定,默认配置相同
vim /etc/vsftpd/vsftpd.cof
user_config_dir=/etc/vsftpd/user_config 在此目录中与用户名称相同的文件为用户配置文件
全局的上传权限禁掉
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/user3
anon_upload_enable=YES
设定完成后user3用户可以上传文件,user1和user2不行