vsftpd 服务器如何工作以及如何配置它?

vsftpd 服务器如何工作以及如何配置它?

我被要求根据该vsftpd软件包配置一个 FTP 服务器。该服务器运行在一台我有超级用户权限访问的远程机器上。

由于不熟悉 FTP 服务器的机制,我试图弄清楚如何配置用户 ftp 帐户。前任维护者使用了一个 shell 脚本来配置 ftp 帐户,该脚本在我们维护的用于跟踪用户帐户和密码的列表上运行。通过阅读脚本,我看到他生成了一个用户名和密码列表,并在 Linux 机器上实际创建了一个用户帐户。这意味着对于我们在列表中配置的每个用户,都会通过以下命令添加一个新用户帐户adduser

adduser --home /home/ftp --no-create-home $user

(但没有私人/home/username目录 - 使用/home/ftp替换)。

每个用户都可以使用该命令登录自己的帐户ssh。这个事实对我来说似乎有点奇怪,因为我认为 ftp 帐户应该与 Ubuntu 用户帐户分离。

另一个副作用是,当用户使用 Web 浏览器连接时,他连接到的是/home/ftp目录。但是,他随后可以使用“ Up to a higher level directory”链接上行并有效地访问我们的整个系统。

因此,问题是:

  1. 就配置 FTP 帐户而言,FTP 服务器确实是这样工作的吗?

  2. 如果没有,我该如何配置服务器vsftpd,使该机器上只有超级用户 Ubuntu 帐户,而所有 ftp 帐户都是......只是 FTP 用户帐户?此外,这些 ftp 帐户应根据允许访问的方式和内容进行配置。

答案1

可以肯定的是,前任管理员并没有做好工作。

因此,首先,如果您在 vsftpd.conf 中添加以下几行,您将在用户的主目录中 chroot 用户。

chroot_list_enable=YES
chroot_local_user=YES

# a list of users which are NOT to be placed in a chroot() jail
chroot_list_file=/etc/vsftpd/chroot_list

为了管理用户,您可以创建虚拟用户(请查看这里),但如果你认为解决方案太复杂,只需使用pam_列表文件模块拒绝 ftp 用户 ssh 访问或使用pam_shells.so。无论哪种方式对您来说都更容易。只需小心不要阻止有效用户使用 ssh 服务器 :)

答案2

我觉得你需要一个 chroot 的 ftp 服务器,里面有非系统用户wiki howto 有您需要的答案。

答案3

您应该使用虚拟用户作为 FTP 用户。

关注此帖子:http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/

相关内容