12.1 FTP介绍
- FTP:File Transfer Proto 文件传输协议,是 TCP/IP 协议组中的协议之一。
- FTP协议包括两部分,1.FTP服务器,2.FTP客户端。
- FTP服务器用来存储文件,FTP客户端通过FTP协议访问位于FTP服务器上的资源
12.2 vsftpd安装
yum install vsftpd -y
关闭selinux
vim /etc/sysconfig/selinux
关闭firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl start vsftpd
systemctl enable vsftpd
测试安装发布:
firefox ftp://ip lftp ip
12.3 vsftpd基本信息
- 服务名称: vsftpd.service
- 配置目录: /etc/vsftpd
- 主配置文件: /etc/vsftpd/vsftpd.conf
- 默认发布目录: /var/ftp
- 报错信息:
- 550 ##程序本身拒绝
- 553 ##文件系统权限限制
- 500 ##权限过大
- 530 ##认证失败
12.4 匿名用户访问控制
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
登陆控制 anonymous_enable=YES|NO
家目录控制 anon_root=/test
上传控制 anon_upload_enable=YES|NO
下载控制 anon_world_readable_only=NO
目录建立控制 anon_mkdir_write_enable=YES|NO
删除重命令控制 anon_other_write_enable=YES|NO
登陆数量控制: max_clients=2
上传速率控制 anon_max_rate=102400
12.5 本地用户的访问
登陆控制:
1. 环境准备:
useradd huayu
echo redhat | passwd --stdin huayu
2. 本地用户登录
lftp 192.168.0.10 -u huayu
是否允许本地用户登录 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_list中的用户不锁定,默认用户锁定到家目录)
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己的家目录(黑名单:chroot_list中的用户锁定,默认用户不锁定)
- chroot_local_user=NO
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
12.6 虚拟用户访问
12.6.1 建立虚拟用户过程
1. 建立认证文件模板
vim /etc/vsftpd/ftp_auth_file
2. 加密认证文件
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db
ps:-T 转换 -t type -f 指定转换文件
3. 添加认证策略文件
vim /etc/pam.d/test
4.
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
12.6.2 虚拟用户家目录的独立设定
mkdir -p /ftpuserdir/test{1..3}
touch /ftpuserdir/test1/file1
touch /ftpuserdir/test2/file2
touch /ftpuserdir/test3/file3
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
12.6.3 用户配置独立
vim /etc/vsftpd/vsftpd.conf
在/etc/vsftpd/user_config目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/test1
设定完成后test1用户可以上传文件test2和test3不行