#1.ftp介绍 #
ftp:file transfer proto
互联中最老牌的文件传输协议
#2.vsftpd安装及启用 #
dnf install vsftpd.x86_64 lftp.x86_64 -y
systemctl disable --now firewalld
vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 启动匿名用户的访问功能
systemctl restart vsftpd
测试安装发布:
lftp ip此访问方式必须能列出资源才算访问成功
3.vsftpd基本信息 #
服务名称:
vsftpd.service
配置目录: /etc/vsftpd
主配置文件: /etc/vsftpd/vsftpd.conf
默认发布目录: /var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
4.匿名用户访问控制 #
lftp ip 当访问ftp服务时没有加入用户认证为匿名访问
lftp ip -u westos ##本地用户访问
登陆控制
anonymous_enable=YES|NO
anon_root=/westosdir
上传控制
anon_upload_enable=YES
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
anon_mkdir_write_enable=YES 允许匿名用户新建目录
anon_other_write_enable=YES #匿名用户可删除,可重命名
anon_world_readable_only=NO #匿名用户可以下载不能读的文件
匿名用户上传文件权限设定
#当设定chown_username之后上传文件权限将不再是用此参数设定
anon_umask=022
chown_uploads=YES
chown_username=lee
chown_upload_mode=0644
匿名用户上传文件的用户身份设定
登陆数量控制
#ftp服务能接受的最大数量
max_clients=2
anon_max_rate=102400 #上传速率每秒钟100M左右
#5.本地用户的访问 #
登陆控制
useradd westos
echo lee | passwd --stdin westos
lftp 172.25.254.150 -u westos
local_enable=YES #允许本地用户登陆
write_enable=YES #允许写
local_umask=077
上传文件权限控制,指定本地用户上传的默认权限
#用户登陆控制
/etc/vsftpd/ftpusers #永久黑名单,只要在此名单内永久不能登陆
/etc/vsftpd/user_list #临时黑名单,如果只写这个里面为黑名单
但如果配置文件中,当userlist_deny=NO参数生效,默认用户不能使用ftp登陆只有在user_list中的用户可以登陆(此时user_list变成白名单,所以处user_list里面的用户除外,其余用户皆不可以登陆)
用户家目录控制
local_root=/westosdir #设定本地用户家目录为/westosdir
锁定本地用户到自己的家目录中,使用户不能浏览根目录
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
#6.虚拟用户访问 #
#1.建立虚拟用户过程
1.vim /etc/vsftpd/ftp_auth_file #建立认证文件模板
westos1
123
westos2
123
westos3
123
2.db_load -T -t hash -f ftp_auth_file ftp_auth_file.db 加密认证文件 -T 转换 -t type -f 指定转换文件
3.vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
4.vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
虚拟用户家目录的独立设定
mkdir -p /ftpuserdir/westos{1…3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/
U
S
E
R
u
s
e
r
s
u
b
t
o
k
e
n
=
USER user_sub_token=
USERusersubtoken=USER
用户配置独立
user_config_dir=/etc/vsftpd/user_config 在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos2
anon_upload_enable=YES
设定完成后westos2用户可以上传文件westos1和westos3不行