1.4. 保护 FTP
里面有选项 /etc/vsftpd.conf 帮助使 vsftpd 更安全。 例如,可以通过取消注释将用户限制在他们的主目录中:
chroot_local_user = 是
您还可以将特定的用户列表限制在他们的主目录中:
chroot_list_enable=是 chroot_list_file=/etc/vsftpd.chroot_list
取消对以上选项的注释后,创建一个 /etc/vsftpd.chroot_list 每行包含一个用户列表。 然后重启vsftpd:
须藤 systemctl 重启 vsftpd.service
此外, /etc/ftpusers 文件是一个用户列表 不允许的 FTP 访问。 默认列表包括 root、daemon、nobody 等。要禁用其他用户的 FTP 访问,只需将它们添加到列表中即可。
FTP 也可以使用加密 FTPS. 不同于 SFTP, FTPS 是基于安全套接字层 (SSL) 的 FTP。 SFTP 是通过加密的 FTP 类会话 SSH的 联系。 一个主要的区别是 SFTP 的用户需要有一个 壳 系统上的帐户,而不是 没有登录 贝壳。 为所有用户提供 shell 对于某些环境可能并不理想,例如共享 Web 主机。 但是,可以将此类帐户限制为仅使用 SFTP 并禁用 shell 交互。 有关更多信息,请参阅 OpenSSH-Server 部分。
配置 FTPS, 编辑 /etc/vsftpd.conf 并在底部添加:
ssl_enable=是
另外,请注意与证书和密钥相关的选项:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
默认情况下,这些选项设置为 ssl-cert 包提供的证书和密钥。 在生产环境中,这些应替换为为特定主机生成的证书和密钥。 有关证书的更多信息,请参阅第 5 节“证书”[p. 198]。
现在重启vsftpd,非匿名用户会被强制使用 FTPS:
须藤 systemctl 重启 vsftpd.service
允许具有 shell 的用户 /usr/sbin/nologin 访问 FTP,但没有 shell 访问,编辑 / etc /壳
添加 没有登录 外壳:
# /etc/shells:有效的登录shell
/bin/csh
/ bin / sh的
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/斌/ tcsh的
/usr/bin/esh
/斌/破折号
/ bin / bash
/bin/rbash
/usr/bin/屏幕
/usr/sbin/nologin
这是必要的,因为默认情况下 vsftpd 使用 PAM 进行身份验证,并且 /etc/pam.d/vsftpd
配置文件包含:
需要身份验证 pam_shells.so
这个 炮弹 PAM 模块限制对列表中列出的 shell 的访问 / etc /壳 文件中。
大多数流行的 FTP 客户端都可以配置为使用 FTPS 进行连接。 lftp 命令行 FTP 客户端也可以使用 FTPS。