14.VSFTP服务相关配置
2026/7/15 12:34:50 网站建设 项目流程

一、主机用户登录

1.在 RockyLinux101 主机执行 ip addr 查看网卡信息,确认 ens192 网卡 IP 为 192.168.0.101/24

2.在 RockyLinux102 主机执行 ip addr 查看网卡信息,确认 ens192 网卡 IP 为 192.168.0.102/24

3.在 RockyLinux101 主机执行 dnf install -y vsftpd 安装 vsftpd 服务端软件包

4.在 RockyLinux101 主机执行 systemctl start vsftpd.service 启动服务,执行 systemctl status vsftpd.service 查看运行状态,使用 ss -anpt|grep "vsftpd" 确认服务在 21 端口监听

5.在 RockyLinux101 主机执行 vim /etc/vsftpd/vsftpd.conf,打开 vsftpd 主配置文件

6.在 vsftpd.conf 文件中,设置 local_enable=YES、write_enable=YES、local_umask=022,开启本地用户登录、写入权限并设置文件权限掩码

7.在 vsftpd.conf 文件中,添加 chroot_local_user=YES、allow_writeable_chroot=YES,开启用户目录锁定并允许可写目录,保存退出配置文件

8.在 RockyLinux101 主机执行 systemctl restart vsftpd.service,重启 vsftpd 服务使配置生效

9.在 RockyLinux102 主机执行 dnf install -y ftp lftp,安装 FTP 客户端工具

10.在 RockyLinux102 主机执行 ftp 192.168.0.101,尝试以 root 用户登录,返回 530 Permission denied,验证 root 用户默认禁止 FTP 登录

11.在 RockyLinux101 主机执行 cd /etc/vsftpd/ 进入配置目录,执行 vim ./ftpusers,编辑 FTP 用户黑名单文件

12.在 ftpusers 文件中看到有root用户

13.删除 root 用户条目,保存退出文件,解除 root 用户的 FTP 登录黑名单限制

14.在 RockyLinux101 主机执行 vim ./user_list,编辑 FTP 用户列表文件

15.在 user_list 文件中看到有root用户

16.删除 root 用户条目,保存退出文件,解除 root 用户的 FTP 登录列表限制

17.在 RockyLinux101 主机执行 systemctl restart vsftpd.service,重启 vsftpd 服务,使用户列表修改生效

18.在 RockyLinux102 主机执行 ftp 192.168.0.101,以 root 用户登录,输入密码后提示 230 Login successful,验证 root 用户 FTP 登录成功

19.在 RockyLinux101 主机执行 touch rocky101.txt,在 root 家目录创建测试文件

在 RockyLinux102 主机的 FTP 会话中执行 ls,查看远程目录列表,确认 rocky101.txt 文件存在,验证文件列表读取正常

20.在 RockyLinux101 主机执行 ls,查看 root 家目录,确认 rocky101.txt 文件存在,为后续上传测试做准备

21.在 RockyLinux102 主机执行 ls,确认 rocky102.txt 文件已在本地创建,为后续上传测试做准备

22.在 RockyLinux102 主机执行 ftp 192.168.0.101,登录后执行 ls 查看远程文件列表,执行 get rocky101.txt 下载文件,执行 put rocky102.txt 上传文件,验证文件下载与上传功能正常

23.在 RockyLinux102 主机执行 ls,确认 rocky101.txt 已成功下载到本地,验证文件下载操作完成

24.在 RockyLinux101 主机执行 ls,确认 rocky102.txt 已成功上传到服务器,验证文件上传操作完成

25.在 RockyLinux102 主机的 FTP 会话中,执行 mkdir rky2_mkdir_rk1 创建目录,执行 delete rocky101.txt 删除文件,执行 rename rocky102.txt rky_rename_rocky101.txt 重命名文件,验证目录创建、文件删除与重命名功能正常

26.在 RockyLinux101 主机执行 ls,确认远程目录 rky2_mkdir_rk1 和重命名后的文件 rky_rename_rocky101.txt 已存在,验证操作结果

27.在 RockyLinux102 主机执行 lftp root@192.168.0.101,使用 lftp 工具登录 FTP 服务器,执行 ls 查看文件列表,执行 mv rky_rename_rocky101.txt rky2_mv_rename_rky1.txt 重命名文件,验证 lftp 客户端操作正常

28.在 RockyLinux101 主机执行 ls,确认文件已被重命名为 rky2_mv_rename_rky1.txt,验证 lftp 客户端的文件操作生效

29.在 Windows 主机的文件资源管理器地址栏输入 ftp://192.168.0.101,尝试访问 FTP 服务器

30.在弹出的登录身份窗口中,输入用户名 root 和密码,点击登录,验证 Windows 客户端访问 FTP 服务器的能力

31.在 Windows 文件资源管理器中,成功登录 FTP 服务器后,查看服务器目录列表,确认文件和目录与服务器端一致

32.在 Windows 文件资源管理器中,对 rky2_mv_rename_rky1.txt 文件进行重命名操作,将其改为 host_rename_rky1.txt

33.在 RockyLinux101 主机执行 ls,确认文件已被重命名为 host_rename_rky1.txt,验证 Windows 文件资源管理器的文件操作生效

34.在 Windows 主机打开 FileZilla 客户端,输入主机 192.168.0.101、用户名 root 和密码,准备快速连接 FTP 服务器

35.在 FileZilla 客户端弹出的 “记住密码” 窗口中,选择 “保存密码” 并点击确定,配置客户端记住登录信息

36.在 FileZilla 客户端弹出的 “不安全的 FTP 连接” 警告窗口中,点击确定,确认以明文方式连接 FTP 服务器

37.在 FileZilla 客户端中成功连接 FTP 服务器,查看远程站点目录列表,确认文件和目录与服务器端一致

38.在 FileZilla 客户端的远程站点空白区域右键,选择 “创建新文件”,准备在服务器上创建新文件

39.在弹出的 “创建空文件” 窗口中,输入文件名 FileZilla_create.txt,点击确定

40.在 FileZilla 客户端中,确认新文件 FileZilla_create.txt 已成功创建在服务器端,验证 FileZilla 客户端的文件创建功能正常

41.在 RockyLinux101 主机执行 ls,确认 FileZilla_create.txt 文件已成功创建,验证 FileZilla 客户端的文件创建操作生效

二、匿名用户登录

1.在 RockyLinux101 主机执行 cd /var/ftp/ 进入 FTP 根目录,执行 cd ./pub/ 进入匿名用户共享目录,执行 echo "This is a shared dir" >> look.txt 创建测试文件

2.在 RockyLinux101 主机执行 vim /etc/vsftpd/vsftpd.conf,编辑 vsftpd 主配置文件以启用匿名用户登录

3.在 vsftpd.conf 文件中,设置 anonymous_enable=YES、anon_upload_enable=YES、anon_mkdir_write_enable=YES、anon_other_write_enable=YES,开启匿名用户的上传、创建目录和其他写入权限,保存退出配置文件

4.在 RockyLinux101 主机执行 systemctl restart vsftpd.service,重启 vsftpd 服务,使匿名用户配置生效

5.在 RockyLinux102 主机执行 ftp 192.168.0.101,以匿名用户 ftp 登录,执行 cd pub 进入共享目录,执行 get look.txt 下载文件,验证匿名用户下载功能正常;尝试执行 rename look.txt readme.txt,因权限不足操作失败

6.在 RockyLinux102 主机执行 ls,确认 look.txt 文件已成功下载到本地,验证匿名用户的文件下载操作完成

7.在 RockyLinux101 主机执行 setfacl -R -m u:ftp:rwx /var/ftp/pub/,为匿名用户 ftp 授予 /var/ftp/pub/ 目录的读写执行权限

8.在 RockyLinux102 主机再次以匿名用户登录 FTP 服务器,执行 rename look.txt readme.txt 重命名文件,执行 mkdir rky102.d 创建目录,验证匿名用户的写入操作功能正常

9.在 RockyLinux101 主机执行 ls,确认文件已被重命名为 readme.txt 且目录 rky102.d 已创建,验证匿名用户的写入操作生效

三、主动和被动模式

pasv_min_port=50000

pasv_max_port=50100

1.在 RockyLinux101 主机执行 dd if=/dev/zero of=/root/data.txt bs=1G count=2,创建一个 2GB 的测试文件,用于 FTP 大文件传输测试

2.在 RockyLinux102 主机执行 ftp 192.168.0.101,以 root 用户登录 FTP 服务器,执行 get data.txt 下载文件,使用被动模式(Passive Mode)进行传输,验证大文件下载功能正常

3.在 RockyLinux101 主机执行 ss -anpt|grep "vsftpd",查看 FTP 服务连接状态,确认被动模式下的数据连接端口(如 56046)已建立

4.在 RockyLinux102 主机的 FTP 会话中,执行 passive off 关闭被动模式,切换为主动模式(PORT 模式),再次执行 get data.txt 下载文件,验证主动模式下的文件传输功能正常

5.在 RockyLinux101 主机执行 ss -anpt|grep "vsftpd",查看 FTP 服务连接状态,确认主动模式下的数据连接端口(如 20)已建立

四、FTPS

1.在 RockyLinux101 主机执行 tcpdump -i ens192 -nn tcp port ftp or tcp port ftp-data >> ./plaintext,捕获 FTP 明文传输的数据包,以验证明文传输的安全性问题

2.在 RockyLinux102 主机再次登录 FTP 服务器,执行 get host_rename_rky1.txt 下载文件,触发明文传输的数据包捕获

3.在 RockyLinux101 主机执行 vim ./plaintext,查看捕获的数据包

4.发现 FTP 的用户名和密码(如 USER root、PASS 1002)以明文形式传输,暴露了明文 FTP 的安全风险

5.在 RockyLinux101 主机执行 cd /etc/ssl/certs/,进入 SSL 证书目录,确认系统自带的 CA 证书文件(如 ca-bundle.crt)存在,后续将使用这些证书配置 FTPS 加密传输

6.在 RockyLinux101 主机执行 dnf install -y openssl openssl-devel,安装 OpenSSL 工具包,为生成 FTPS 证书做准备

7.在 RockyLinux101 主机执行 cd /etc/vsftpd/ 进入 vsftpd 配置目录,执行 openssl genrsa -out vsftpd.key 2048 生成 2048 位的 RSA 私钥文件 vsftpd.key

8.执行 openssl req -new -key vsftpd.key -out vsftpd.csr,使用私钥生成证书请求文件(CSR),并填写证书信息(如国家、地区、组织、通用名等)

9.执行 openssl x509 -req -days 3650 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt,使用私钥自签名生成有效期为 10 年的证书文件 vsftpd.crt

10.执行 vim ./vsftpd.conf,编辑 vsftpd 主配置文件,启用 SSL/TLS 支持

11.在 vsftpd.conf 文件中添加以下配置,启用 FTPS 并指定证书和私钥路径

12.执行 systemctl restart vsftpd.service,重启 vsftpd 服务,使 FTPS 配置生效

13.执行 tcpdump -i ens192 -nn tcp port ftp or tcp port ftp-data >> ./Ciphertext,捕获 FTPS 加密传输的数据包,以验证加密效果

14.在 RockyLinux102 主机执行 lftp root@192.168.0.101 连接 FTPS 服务器,因证书未被信任出现验证错误,需执行 lftp root@192.168.0.101 -e "set ssl:verify-certificate no" 禁用证书验证,成功登录并执行 ls、get plaintext 等操作,验证 FTPS 传输正常

15.在 RockyLinux101 主机执行 vim ./Ciphertext,查看捕获的数据包,发现传输内容已被加密,无法直接读取用户名、密码和文件内容,验证了 FTPS 的安全性

16.在 Ciphertext 中,FTP 交互过程已被加密,能看到 AUTH TLS 命令,但后续的用户名、密码和文件内容均为密文,无法直接读取

17.执行 rm -f Ciphertext 清空之前的抓包文件,准备进行新一轮 FTPS 传输抓包

18.打开 FileZilla,主机输入 192.168.0.101,用户名 / 密码填写 root 和对应密码

19.点击「快速连接」,FileZilla 开始初始化 TLS 连接,并向服务器发送证书请求

20.服务器返回自签名证书,FileZilla 弹出「未知证书」窗口,显示证书的有效期、指纹、签发者信息,确认证书与之前生成的 vsftpd.crt 一致,点击「确定」信任证书

21.成功登录后,右键选择 plaintext 文件,点击「下载」

22.FileZilla 显示传输进度,最终提示「传输完成」

23.tcpdump 捕获到 132 个数据包,说明整个 FTPS 会话(包括 TLS 握手、数据传输)均被完整记录,执行 vim ./Ciphertext

24.文件中仅能看到 AUTH TLS、Proceed with negotiation 等控制命令,后续的用户名、密码和文件内容均为乱码 / 密文,无法直接解析,抓包文件中清晰可见 FTP: AUTH TLS 命令,说明客户端已向服务器请求建立加密会话,后续所有数据均通过 TLS 加密传输

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询