VSFTP-本地用户验证

实验操作的流程与实现的需求

  • 服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
  • 将所有用户禁锢在自己的家目录下
  • 将部分用户禁锢在自己的家目录下
  • 限制指定用户不允许登陆FTP
  • 修改被动模式数据传输使用的端口

要配置的文件内容说明

  • local_enable=YES # 是否启用本地系统用户
  • local_umask=022 # 本地用户所上传文件的权限掩码
  • local_root = /var/ftp # 设置本地用户的FTP根目录
  • chroot_local_user=YES # 是否将用户禁锢在主目录
  • local_max_rate=0 # 限制最大传输速率
  • ftpd_banner=Welcome # 用户登陆时显示的欢迎信息
  • # 禁止/etc/vsftpd/user_list 文件中出现的用户名登录FTP
  • userlist_enable=YES & userlist_deny=YES
  • # 仅允许/etc/vsftpd/user_list 文件中出现的用户名登录FTP
  • userlist_enable=YES & userlist_deny=NO
  • # 禁止/etc/vsftpd/ftpusers 文件中出现的用户登陆FT
  • 配置文件:ftpusers

准备工作

实验环境:二台机器、一台做客户机、一台做VSFTP服务器(这里都是用虚拟机虚拟出来的两台主机)
(注意:全部先关闭的防火墙和SELinux)安装好服务软件和客户端软件

1、实现需求一:服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
1.1、服务端创建用户

# 创建一个不需要登陆操作系统用户,仅用来登陆FTP
useradd -s /sbin/nologin test	#(这里创建一个test用户)
# 设置用户密码
passwd 用户名 回车设置密码

1.2、客户端使用服务端的本地用户进行登陆验证

ftp 服务端IP地址

1.3、输入用户密码 进行登陆
1.4、如下图所示就成功登陆
VSFTP-本地用户验证_第1张图片
2、实现需求二:将所有用户禁锢在自己的家目录下
2.1、修改配置文件/etc/vsftpd/vsftpd.conf 去除注释如下图所示
在这里插入图片描述

# 因为默认没有禁锢用户时,客户端登陆之后可以随意切换目录,查看文件所在位置和文件名
chroot_local_user=YES # 开启这个之后,限制所有用户不能随意切换目录

2.2、保存退出

#重启服务
service vsftpd restart

2.3、客户端使用服务端的本地用户登陆进行验证~用户禁锢在自己的家目录下

ftp 服务端IP地址

开启chroot_local_user=YES 之后只能在用户自己的家目录下不可切到其它目录!如下图所示~配置完成
在这里插入图片描述
没开启chroot_local_user=YES 之前是可以随意切换目录的~如下图所示
VSFTP-本地用户验证_第2张图片

3、实现需求三:将部分用户禁锢在自己的家目录下
3.1、修改配置文件/etc/vsftpd/vsftpd.conf 去除注释如下图所示
VSFTP-本地用户验证_第3张图片

# 开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_enable=YES
# 白名单文件需要自己创建
chroot_list_file=/etc/vsftpd/chroot_list
# 创建chroot_list文件并写入要允许随意切换目录的用户
vim /etc/vsftpd/chroot_list
# 这里以用户TEST为例

VSFTP-本地用户验证_第4张图片
保存退出~重启服务

#重启服务
service vsftpd restart

重新登陆客户端使用服务端的本地用户登陆进行验证

ftp 服务端IP地址

# 切换到根目录
cd /
# 列出目录 
ls

如下图所示~成功

VSFTP-本地用户验证_第5张图片

4、实现需求四:限制指定用户不允许登陆FTP

# 限制指定用户不允许登陆的配置文件
/etc/vsftpd/ftpusers
# 所有写入些文件内的用户名都不允许登陆ftp, 立刻生效

4.1、写入不允许登陆FTP的用户

# 编辑限制登陆用户文件
vim /etc/vsftpd/ftpusers
# 添加用户test 保存退出

如下图所示
VSFTP-本地用户验证_第6张图片
重新登陆客户端使用服务端的本地用户登陆进行验证

ftp 服务端IP地址
# 会发现登陆不成功

会出现如下图所示、登陆不成功了
VSFTP-本地用户验证_第7张图片

5、实现需求五:修改被动模式数据传输使用的端口

pasv_enable=YES
pasv_min_prot=40000
pasv_max_prot=50000

5.1、编辑配置文件/etc/vsftpd/vsftpd.conf 写入以下相关的配置内容

# 开启模式
pasv_enable=YES
# 开始的随机端口
pasv_min_prot=40000
# 结束的随机端口
pasv_max_prot=50000

如下图所示~保存退出VSFTP-本地用户验证_第8张图片
5.1.1、重新服务

#重启服务
service vsftpd restart

在这里插入图片描述
5.1、新建一个用户用于测试 test2

# 创建一个不需要登陆操作系统用户,仅用来登陆FTP
useradd -s /sbin/nologin test2 #(这里创建一个test2用户)
# 设置用户密码
passwd 用户名 回车设置密码

5.1.2、切换test2的家目录写入一个1G的文件用于测试被动模式下的端口

# 切换到test2家目录下
cd /home/test2/
# 写入一个1G文件的端口
dd if=/dev/zero of=./newsTxt.txt  bs=1M count=1000

5.2、重新登陆客户端使用服务端的本地用户 test2 登陆进行验证

ftp 服务端IP地址
# 使用test2登陆

下载文件

get newsTxt.txt

5.3、 服务端查看是否成功

# 查看服务器端是否有开启相关端口
netstat -antp

如下图所示~成功
VSFTP-本地用户验证_第9张图片
完成验证。

你可能感兴趣的:(linux)