文章目录
- ftp介绍
- vsftpd安装
- vsftpd基本信息
- 匿名用户访问控制
- 本地用户的访问
- 虚拟用户访问
- 建立虚拟用户过程
- 虚拟用户家目录的独立设定
- 用户配置独立
ftp介绍
- ftp:file transfer proto
- 互联阿中最老牌的文件传输协议
vsftpd安装
- 安装前期准备
- 挂载镜像
yum install vsftpd -y
- 关闭selinux
- 关闭firewalld
systemctl start vsftpd
systemctl enable vsftpd
- 测试安装发布:
firefox ftp://ip
lftp ip
此访问方式必须能列出资源才算访问成功
vsftpd基本信息
- 服务名称:vsftpd.service
- 配置目录:
/etc/vsftpd
- 主配置文件:
/etc/vsftpd/vsftpd.conf
- 默认发布目录:
/var/ftp
- 报错信息:
- 550 :程序本身拒绝
- 553 :文件系统权限限制
- 500 :权限过大
- 530 :认证失败
匿名用户访问控制
lftp 192.168.1.10
##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.1.10 -u westos
##本地用户访问
- 进入主配置文件
vim /etc/vsftpd/vsftpd.conf
- 登陆控制
anonymous_enable=YES|NO
- 家目录控制
anon_root=/software
- 上传控制
anon_upload_enable=YES|NO
- 实验环境:两台主机
- hostname=gagaga ip=192.168.1.15
- hostname=hahaha ip=192.168.1.20
- 在gagaga中主配置文件,将上传控制设定为YES,然后再打开权限
chmod 777 /var/ftp/pub
- 在hahah中
lftp 192.168.1.15
cd pub
put /etc/passwd
- 下载控制
-
anon_world_readable_only=NO
匿名用户可以下载不能读的文件 - 目录建立控制
anon_mkdir_write_enable=YES|NO
- 删除重命令控制
anon_other_write_enable=YES|NO
- 登陆数量控制:
max_clients=2
- 上传速率控制
anon_max_rate=102400
- 其他设置也是在主配置文件中进行设置(与上面举例类似)
本地用户的访问
- 登陆控制
local_enable=NO|YES
useradd westos
useradd lee
echo westos | passwd --stdin westos
echo westos | passwd --stdin myr
## 将这两个用户的密码都改成westos
lftp 192.168.1.15 -u westos
- 家目录控制
local_root=/software
- 写权限控制
write_enable=NO|YES
- 上传文件权限控制
local_umask=077
- 用户登陆控制
vim /etc/vsftpd/ftpusers
vim /etc/vsftpd/user_list
- /etc/vsftpd/ftpusers 永久黑名单
- /etc/vsftpd/user_list 默认黑名单
- 用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list位白名单
-userlist_deny=NO代表 不在名单中的用户不能登陆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
注意:在设置完主配置文件之后,都需要重启vsftpd
systemctl restart vsftpd
虚拟用户访问
建立虚拟用户过程
-
vim /etc/vsftpd/ftp_auth_file
建立认证文件模板
- westos1
- 123
- westos2
- 123
- westos3
- 123
-
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db
加密认证文件
- -T 转换 -t type -f 指定转换文件
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
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/$USER
user_sub_token=$USER
systemctl restart vsftpd
用户配置独立
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不行