1. ftp服务定义:FTP是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。ftp协议提供的软件 在rhel7中是vsftpd
- ftp服务的基本信息
(1)软件安装包:vsfgtpd
(2)默认发布目录:/var/ftp
(3)协议接口:主动21被动 >1024 ss antlpe |g rep vsftpd 查看端口
(4)服务配置文件:/etc/vsftpd/vsftpd.conf,通过修改相对应的参数,实现相关功能,配置完systemctl restart vsftpd重启服务,即可。
(5)基本报错解析:
500文件系统权限过大
530用户认证失败
550服务本身未开放
553本地文件系统权限过小
2. 部署ftp服务
- 先通过yum安装vsftpd
- 安装lftp
- 开启vsftpd
- 在防火墙中开启ftp服务
- 这时查看 getenforce 要把它设置成Enforcing,然后重启虚拟机
- 这时ftp部署完成,在客户端就可以测试
3.实验测试
- 在服务端新建两个用户limin和lm,并在各自的用户下新建文件,来做实验。
- 在默认情况下,测试段可以匿名访问,也可以以本地用户的方式访问,并有一定的执行权限。
- 设置访问用户的权限可以在/etc/vsftpd/vsftpd.conf中更改,切记更改服务后一定要重启该服务。
4.登录用户设定
- 匿名用户:anonymous_enable=YES|NO --匿名用户是否可以登陆
- 本地用户:local_enable=YES|NO --本地用户是否可以登陆
- write_enable=YES|NO —是否对登陆用户可写
5. 匿名用户
- 匿名用户上传:anon_upload_enable=YES —允许匿名用户上传
允许匿名用户登陆,并上传文件与进行写操作,在修改好配置文件后执行以下操作即可进行测试。
- 匿名用户家目录修改:anon_root=/directory
- 匿名用户上传文件默认权限修改:anon_umask=xxx
- 匿名用户建立目录:anon_mkdir_write_enable=YES|NO
- 匿名用户下载:anon_world_readable_only=YES|NO —NO表示匿名用户可以下载
- 匿名用户删除:anon_other_write_enable=YES|NO 其只能删除自己上传的文件
- 最大上传速度:anon_max_rate=10240
- 最大链接数:max_clients=2
6.本地用户
- 本地用户上传文件权限:local_umask=xxx
- 本地用户家目录修改:local_root=/directory
7.用户黑名单
- chroot_local_user=NO
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
- 限制本地用户登陆(默认情况下ftpusers和user_list都是黑名单)
vim/etc/vsftpd/ftpusers ##用户黑名单
vim/etc/vsftpd/user_list ##用户临时黑名单
8.用户白名单
- chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
- 用户白名单设定
userlist_deny=NO ##名单功能反转
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单
9.虚拟用户的设置
- 创建一个loginusers 的文件,用来存放用户名和密码,一行用户一行密码的格式
- 给用户进行hash加密,这时就生成了loginusers.db文件,查看文件类型问hash型
- 创建一个验证文件
required 验证账号认证通过 pam_userdb.so验证程序 db=/etc/……代表的是验证用户密码存放的位置
- 配置vsftpd文件
(1)pam_service_name=westos:指向验证文件
(2)guest_enable=YES : 开启虚拟用户,默认lftp登陆,进入pub目录。
- 配置完成后重启vsftpd,这时在测试端,就可以登陆匿名用户了。
- 配置vsftpd文件:guest_username=student。这时虚拟用户登陆lftp进入student家目录。给student一个555的权限,就可以查看了。
- 虚拟用户的家目录
(1)给每个虚拟用户创建一个家目录,并给他们一个777的权限
(2) 配置vsftpd文件,并重启vsftpd
(3)这时在测试端就可以访问其家目录了
- 给虚拟用户设置权限
如果只想让用户westos1有上传文件的权限而其他用户没有
(1)创建一个user_conf目录,再创建一个westos1的文件
(2)在westos1文件中写上上传文件功能
(3)配置vsftpd文件,将匿名用户上传功能屏蔽掉,然后加上指向到所创建的目录
(4)这时测试端就可以上传了