如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何配置 vsftpd 在 CentOS VPS 上使用 SSL/TLS

介绍

警告:FTP 不安全!考虑使用 SFTP 而不是 FTP。

FTP,或文件传输协议,是一种在本地和远程服务器之间传输文件的方式。尽管非常流行且无处不在,但由于其设计中固有的安全性不足,这种文件传输方法的使用已经失宠。

如上所述,一个非常强大的替代方案是 SFTP。该协议通过 SSH 实现文件共享。如果您必须使用 FTP,您至少应该使用 SSL/TLS 证书保护连接。

在本指南中,我们将配置 vsftpd 以在 CentOS 6.4 VPS 上使用 TLS/SSL 证书。

安装vsftpd

vsftpd 服务器在 CentOS 的默认存储库中可用。我们可以通过键入以下内容来安装它:

sudo yum install vsftpd

vsftpd 服务器现已安装在我们的 VPS 上。我们可以在下一节中配置一些连接选项。

配置 vsftpd 的基本设置

CentOS 上 vsftpd 的主要配置文件保存在 /etc/vsftpd/ 目录中。它被称为 vsftpd.conf。

使用 root 权限在编辑器中打开此文件:

sudo nano /etc/vsftpd/vsftpd.conf

我们需要调整此文件中的一些基本参数以提高安全性并建立我们的连接选项。

我们要做的第一件事是禁用匿名用户。虽然此选项对于大型的、面向公众的文件转储(如公共软件存储库)可能有意义,但对于个人 FTP 服务器,这几乎不是一个好主意。

anonymous_enable=NO

由于我们要禁用匿名用户,因此我们需要为我们的系统提供一种方法来验证我们的用户。我们将允许本地用户,这意味着 vsftpd 将使用我们的 Linux 系统用户和身份验证来确定谁可以登录。

要启用此功能,请确保设置了此选项:

local_enable=YES

我们还将允许他们写入权限,以便他们可以上传材料和修改内容:

write_enable=YES

我们还想将我们的用户限制在他们各自的主目录中。选项是:

chroot_local_user=YES

这对于基本(非 SSL)FTP 配置来说已经足够了。我们稍后会添加 SSL 功能。

保存并关闭文件。

创建 FTP 用户

我们选择使用本地用户并将他们限制在具有 chroot 环境的主目录中。

使用此命令创建一个新用户:

sudo adduser ftpuser

通过键入以下内容为新用户分配密码:

sudo passwd ftpuser

CentOS 6.4 中的 vsftpd 版本较旧,因此这部分设置比某些较新版本更容易。

使用 vsftpd 配置 SSL

让 vsftpd 使用 SSL 操作的第一步是创建我们的 SSL 证书。我们实际上将使用 TLS,它是 SSL 的后继协议并且更安全。

我们将在 SSL 目录中创建一个子目录来存储我们的文件:

sudo mkdir /etc/ssl/private

要在单个文件中创建证书和密钥,我们可以使用以下命令:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

填写它提出的问题。最重要的是您服务器的“通用名称”,这将是您将用于连接的 IP 地址或域名。

将 SSL 详细信息添加到 vsftpd 配置文件

现在,我们需要更改配置以指向新密钥并配置安全连接。

再次以 root 身份打开 vsftpd 配置文件:

sudo nano /etc/vsftpd/vsftpd.conf

滚动到文件底部。我们将在此处添加我们的 SSL/TLS 信息。

我们需要指定证书和密钥文件的位置。我们实际上将两条信息合并到一个文件中,因此我们将两个选项指向同一个文件:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

接下来,我们需要启用这些文件并禁用匿名用户。我们还应该强制使用 SSL 进行数据传输和登录例程。这将使安全性成为强制性的:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

接下来,我们将连接类型限制为 TLS,它比 SSL 更安全。我们将通过明确允许 TLS 并拒绝使用 SSL 来做到这一点:

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

在完成之前,我们添加了更多的配置选项:

require_ssl_reuse=NO
ssl_ciphers=HIGH

保存并关闭文件。

我们需要重新启动 vsftpd 以启用我们的更改:

sudo /etc/init.d/vsftpd restart

我们还将配置它在每次重启时自动启动:

sudo chkconfig vsftpd on

如何使用 FileZilla 连接到 vsftpd 服务器

大多数现代 FTP 客户端都可以使用 SSL 和 TLS 连接。由于其跨平台兼容性,我们将向您展示如何设置 FileZilla 以使用安全连接。我们假设您已经使用适用于您计算机的任何适当安装程序安装了客户端。

打开 FileZilla 程序。在界面中,您可以点击一个图标打开“站点管理器”。它应该如下图最左侧的图标所示:

在弹出的新界面中,点击左下角的“新建站点”按钮,为服务器连接命名,方便以后识别

在“主机”字段中填写 IP 地址,然后从协议下拉菜单中选择“FTP - 文件传输协议”。对于加密下拉菜单,选择“需要显式 FTP over TLS”。

从“登录类型”菜单中选择“询问密码”。在“用户”字段中填写我们创建的 FTP 用户:

现在,您可以单击面板底部的“连接”。系统将提示您输入 FTP 用户的密码:

下一步是我们使用 TLS 连接到远程服务器的第一个标志。我们将被要求接受正在使用的证书。

您应该能够看到您在创建证书时填写的信息,以验证您确实连接到正确的地方。

接受证书以建立连接。

结论

虽然此配置是朝着正确方向迈出的一步,但它在建立连接之前仍然存在安全问题。由于这些问题,在大多数对互联网开放的设置中应该避免使用它。如果您希望能够使用一些您熟悉的相同工具,但安全性值得信赖,SFTP 是一个很好的选择。

贾斯汀·埃林伍德

©2015-2025 艾丽卡 support@alaica.com