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

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

介绍


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用户


我们选择使用本地用户并将它们限制在其主目录中,创建一个新用户:

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 程序。在界面中,您可以点击一个图标打开“站点管理器”。它应该看起来像图片最左边的图标:

!FileZilla 打开站点管理器

在弹出的新界面中,您应该点击左下角的“新站点”按钮。命名服务器连接,以便以后可以轻松识别它

!FileZilla 新站点

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

从登录类型菜单中选择“要求密码”。在“用户”字段中填入我们为 FTP 用户创建的用户名:

!FileZilla 服务器配置

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

!FileZilla 用户密码

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

!FileZilla 服务器证书

您应该能够看到您创建证书时填写的信息,以验证您实际上是连接到正确的位置。

接受证书以建立连接。

结论


虽然这种配置是朝着正确方向迈出的一步,但在建立连接之前仍存在安全问题。由于这些问题,大多数向互联网开放的设置都应该避免使用。如果您希望能够使用一些您熟悉的工具,但又能信任其安全性,SFTP 是一个很好的替代方案。


目录
相关文章
|
7月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
766 87
|
3月前
|
安全 算法 网络安全
SSL/TLS协议如何确保HTTP通信的安全
通过这些机制和过程,SSL/TLS对HTTP通信提供了强大的保护,确保数据不被未授权的第三方访问或篡改,这对维护数据隐私和网络安全至关重要。随着互联网技术的不断进步,SSL/TLS协议本身也在不断更新和升级,以对抗新出现的威胁和满足现代网络的要求。
273 10
|
8月前
|
网络安全 数据库
YashanDB HA节点间SSL连接配置
本指南介绍HA内部节点链路的SSL连接配置,包括客户端监听与HA节点自身监听两种方式。需使用OpenSSL工具生成证书,具体步骤参考数据库服务端SSL连接配置文档。此外,还需在数据库中开启HA的SSL连接开关并设置证书路径(仅支持绝对路径,长度≤254字节),最后重启数据库以完成配置。确保服务器已安装所需工具,详细操作请查阅相关文档。
YashanDB HA节点间SSL连接配置
|
8月前
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
|
8月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
5月前
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
5月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
366 10
|
5月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
193 16
|
5月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
500 9
|
6月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
429 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡