VSFTP
软件信息
服务端软件名: vsftpd
客户端软件名:ftp
服务名:vsftpd
端口:20、21、指定范围随机
配置文件:/etc/vsftpd/vsftpd.conf
登录验证方式
匿名用户验证
用户账号名称: ftp或anonymous
用户账号密码: 无密码
工作目录: /var/ftp
默认权限: 默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)
本地用户验证
用户账号名称:本地用户(/etc/passwd)
用户账号密码: 用户密码(/etc/shadow)
工作目录:登录用户的宿主目录
权限:最大权限(drwx------)
安装
yum install -y vsftpd
匿名用户
注意: 在客户端登录后,默认情况下是可以下载的,但不能上传
-
实现可以上传
a. anon_upload_enable=YES
b. 在/var/ftp/下创建上传目录
c. 修改上传目录的权限或所有者,让匿名用户有写入权限vim /etc/vsftpd/vsftpd.conf 取消 anon_upload_enable=YES 注释 mkdir /var/ftp/upload chomd o+w /var/ftp/upload systemctl restart vsftpd
-
实现创建目录和文件其他操作
non_mkdir_write_enable=YES 允许创建目录
anon_other_write_enable=YES 开放其他写入权(删除、覆盖、重命名)
vim /etc/vsftpd/vsftpd.conf 取消 non_mkdir_write_enable=YESS 注释 添加 anon_other_write_enable=YES
-
用户进入某个文件夹时,弹出相应的说明
a. 在对应目录下创建 .message 文件,并写入相应内容
b. 确认dirmessage_enable=YES是否启用
c. 尝试却换目录查看效果(同一次登录仅提示一次)vim /etc/vsftpd/vsftpd.conf 确认 dirmessage_enable=YES 是否启用 vim /var/ftp/upload/.message wecome ftp server!!!
-
实现上传的文件可下载
默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限
设置anon_umask=022,可以让上传的文件其他人位置拥有r权限, 然后才能被其他人下载vim /etc/vsftpd/vsftpd.conf 添加 anon_umask=022
本地用户
实验需求与流程:
-
服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
useradd -s /sbin/nologin username
-
将所有用户禁锢在自己的家目录下
注: 默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名
开启用户家目录限制, 限制所有用户不能随便切换目录
vim /etc/vsftpd/vsftpd.conf 取消 chroot_local_user=YES 注释 systemctl restart vsftpd
-
将部分用户禁锢在自己的家目录下
vim /etc/vsftpd/vsftpd.conf 取消 chroot_list_enable=YES 注释 取消 chroot_list_file=/etc/vsftpd/chroot_list 注释 将用户写进白名单 systemctl restart vsftpd
开启白名单功能,允许白名单中的用户随意切换目录
白名单文件所在位置(需自己创建)
- 配置文件: /etc/vsftpd/ftpusers
所敌人
- 修改被动模式数据传输使用端口
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=35000