如何设置匿名 FTP 下载服务器

有时您可能不需要设置完整的 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 客户端连接到您的服务器。

图片由 汤姆伍德沃德弗里克,CC-BY-SA 2.0。