30.9. 文件传输协议(FTP)

文件传输协议(FTP)为用户提供了一种在 FTP 服务器之间传输文件的简单方法。FreeBSD 在基本系统中包括 FTP 服务器软件 ftpd。

FreeBSD 提供了几个配置文件来控制对 FTP 服务器的访问。本节总结了这些文件。有关内置 FTP 服务器的更多详细信息,请参阅 ftpd(8)

30.9.1. 配置

最重要的配置步骤是确定允许哪些帐户访问 FTP 服务器。FreeBSD 系统有许多系统帐户,这些帐户不应该被允许 FTP 访问。禁止任何 FTP 访问的用户列表可以在 /etc/ftpusers 中找到。默认情况下,它包括系统帐户。可以添加不应允许其访问 FTP 的其他用户。

在某些情况下,可能需要限制某些用户的访问,而不完全阻止他们使用 FTP。这可以通过创建 /etc/ftpchroot 来完成,如 ftpchroot(5) 中所述。此文件列出了受 FTP 访问限制的用户和组。

要实现对服务器的匿名 FTP 访问,在 FreeBSD 系统上创建一个名为 ftp 的用户。然后,用户将能够以 ftp 或 anonymous 的用户名登录 FTP 服务器。当提示输入密码时,任何输入都会被接受,但按照惯例,应该使用电子邮件地址作为密码。当一个匿名用户登录时,FTP 服务器将调 chroot(2) 以限制对用户主目录的访问。

可以创建两个文本文件来指定要向 FTP 客户端显示的欢迎消息。/etc/ftpwelcome 的内容将在用户到达登录提示之前显示给用户。成功登录后,将显示 /etc/ftpmotd 的内容。请注意,此文件的路径是相对于登录环境的,因此将为匿名用户显示 ~ftp/etc/ftpmotd 的内容。

配置 FTP 服务器后,在 /etc/rc.conf 中设置适当的变量以在引导期间启动服务:

  1. ftpd_enable="YES"

要立即启动该服务,请执行以下操作:

  1. # service ftpd start

通过键入以下内容来测试与 FTP 服务器的连接:

  1. % ftp localhost

ftpd 守护程序使用 syslog(3) 来记录消息。默认情况下,系统日志守护程序将在 /var/log/xferlog 中写入与 FTP 相关的消息。FTP 日志的位置可以通过更改 /etc/syslog.conf 中的以下行来修改:

  1. ftp.info /var/log/xferlog
注意
请注意运行匿名 FTP 服务器所涉及的潜在问题。特别是,在允许匿名用户上传文件方面,请三思而后行。事实证明,FTP站点可能会成为未经许可的商业软件交易的论坛,甚至更糟。如果需要匿名 FTP 上载,请验证权限,以便在管理员审阅这些文件之前,其他匿名用户无法读取这些文件。