使用TLS安全配置VSFTP

时间:2020-03-21 11:43:07  来源:igfitidea点击:

在用tls加密配置ftp之前,让我们先了解一下ftp是如何工作的。

FTP文件传输协议。

它是一种通过TCP将文件从一台机器传输到另一台机器的协议。此协议通常在客户机-服务器模型上工作,其中客户机使用用户名和密码连接到ftp服务器,并获取所需的数据。

用户也可以配置匿名登录服务器获取数据。

注意:FTP只在TCP上运行,而不在UDP上运行。

ftp使用两个端口:21号端口和20号端口。

端口21:此端口用于ftp使用的命令。

端口20:此端口用于数据传输。

现在ftp有两种工作模式。它们是主动模式和被动模式。

主动模式FTP:在主动FTP中,客户端从通常大于1023的任意选择端口连接到服务器命令端口21. 通常情况下,通过N+1命令,客户机将打开一个端口,然后通过N+1命令将多个端口连接到服务器。

现在服务器从端口20(服务器的数据端口)连接到客户端指定的端口。

被动模式FTP:在被动通信中,客户端连接到远程FTP服务器到21端口,每当需要数据传输时,数据传输的源端口总是客户端随机选择的一个高端口,服务器上有一个类似的高端口。

在被动模式下,数据传输尝试由客户端发起。这对防火墙后面的客户机更好。

目前大多数ftp连接默认为被动模式。

ftp的一个关键问题是它本身没有任何加密机制。因此,通过连接传递的所有数据和命令都是明文。这是ftp。那里对于这个问题有两种解决方法一种是使用SFTP(FTP over ssh)另一种是http中使用的非常著名的TLS加密。(FTPS)带tls的ftp协议。

现在,让我们逐步了解如何使用tls encrytpion配置VSFTPD(ftp服务器的linux包)。

步骤1:检查机器上是否安装了ftp,如果没有,则按照以下方法安装vsftpd包。

让我解释一下上述方法中使用的选项。

Openssl:Openssl是在linux中实现ssl/tls加密的一种开源方式。此工具可用于生成、私钥、公钥、证书、签名证书等。

X509是用于签名证书的标准。

Nodes选项不会加密生成的私钥。

天数选项将指定此证书有效的天数

newkey,要求用rsa算法生成一个新的密钥,长度必须是1024位。

key out将指定私钥的文件名

最后我们需要/etc/vsftpd中的输出证书/vsftpd.pem

注意:在这篇文章中我不会详细介绍加密、证书、ssl、tls等,因为它们本身是一个很大的主题,将在另一篇专门的文章中介绍这些内容。

现在让我们了解vsftpd使用tls所需的一些选项。

第三步:配置vsftpd.conf文件用于tls启用。

转到文件/etc/vsftpd/vsftpd.conf文件并在该文件中添加以下选项。

选择ftp with tls explicit encryption,以便在winscp中工作。