有时您可能不需要设置完整的 FTP 具有上传和下载权限的经过身份验证的用户的服务器。 如果您只是在寻找一种允许用户获取一些文件的快速方法,那么匿名 FTP 服务器可以满足您的需求。 本文向您展示如何设置它。
这 example 使用 vsftp 服务器。
安装和配置匿名 FTP 服务器
使用安装 vsftp 服务器 sudo:
$ sudo dnf install vsftpd
启用 vsftp 服务器。
$ sudo systemctl enable vsftpd
接下来,编辑您的 /etc/vsftpd/vsftpd.conf 文件以允许匿名下载。 确保您有以下条目。
anonymous_enable=YES
此选项控制是否允许匿名登录。 如果启用,用户名 ftp 和 anonymous 都被识别为匿名登录。
local_enable=NO
此选项控制是否允许本地登录。
write_enable=NO
此选项控制是否允许更改文件系统的任何 FTP 命令。
no_anon_password=YES
启用后,此选项可防止 vsftpd 询问匿名密码。 使用此设置,匿名用户将无需任何人直接登录。
hide_ids=YES
启用此选项可将目录列表中的所有用户和组信息显示为 ftp。
pasv_min_port=40000 pasv_max_port=40001
最后,这些选项设置为 PASV 样式数据连接分配的最小和最大端口。 使用它们来指定一个狭窄的端口范围以协助防火墙。 您应该为当前未使用的端口选择一个范围。 这 example 使用端口 40000-40001 将端口限制在 1 的范围内。
最后的步骤
现在您已经设置了选项,添加适当的防火墙规则以允许 vsftp 连接以及您指定的被动端口范围。
$ firewall-cmd --add-service=ftp --perm $ firewall-cmd --add-port=40000-40001/tcp --perm $ firewall-cmd --reload
接下来,配置 SELinux 以允许被动 FTP:
$ setsebool -P ftpd_use_passive_mode on
最后,启动 vsftp 服务器:
$ systemctl start vsftpd
至此,您就有了一个正常工作的 FTP 服务器。 将您要提供的内容放在 /var/ftp 中。 (通常,系统管理员将可公开下载的内容放在 /var/ftp/pub 下。)现在您可以使用另一个系统上的 FTP 客户端连接到您的服务器。