如何在Ubuntu 20.04上使用SSL / TLS安装和配置FTP服务器(vsftpd)

  • Post author:
  • Post category:其他


FTP或文件传输协议是一种非常古老的众所周知的协议,用于在客户端和服务器之间传输文件。仅在不使用TLS的情况下,它也是不安全的协议。在本教程中,我们将为TLS配置vsftpd,这使我们能够安全地使用FTP。目前,FTP通常已被更安全的协议(例如SFTP或SCP)取代。

但是,如果您需要在服务器上使用FTP,则vsftpd(非常安全的FTP守护程序)是一个理想的选择。

在本教程中,我们将学习如何在基于Ubuntu 20.04的服务器上使用vsftpd安装和配置FTP服务器。我们还将学习如何使用SSL / TLS协议保护连接的安全。

步骤1-安装vsftpd

第一步是安装vsftpd。

$ sudo apt update

$ sudo apt install vsftpd

接下来,我们需要备份原始配置文件,以便我们可以从全新的配置开始。

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

第2步-配置防火墙

在此步骤中,我们将配置UFW防火墙以允许访问FTP端口。

首先,让我们检查防火墙的状态。

$ sudo ufw status

Status: active

To Action From


OpenSSH ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

尽我们所能,到目前为止,仅允许使用SSH端口。让我们在使用TLS时打开端口20(FTP命令端口),21(FTP数据端口),990,并在将来可能需要的被动端口范围内打开端口35000-40000。

$ sudo ufw allow 20:21/tcp

$ sudo ufw allow 990/tcp

$ sudo ufw allow 35000:40000/tcp

$ sudo ufw status

Status: active

To Action From


OpenSSH ALLOW Anywhere

990/tcp ALLOW Anywhere

20:21/tcp ALLOW Anywhere

35000:40000/tcp ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

20:21/tcp (v6) ALLOW Anywhere (v6)

990/tcp (v6) ALLOW Anywhere (v6)

35000:40000/tcp (v6) ALLOW Anywhere (v6)

第3步-配置vsftpd

现在,我们将讨论一些重要设置,以使vsftpd正常工作。

首先打开配置文件

$ sudo nano /etc/vsftpd.conf

  1. FTP访问

    在本教程中,我们将仅允许本地用户进行FTP访问,并禁用任何匿名访问。为此,请确保存在以下几行,如下所示。

    anonymous_enable=NO

    local_enable=YES

2.启用文件上传

FTP在这里最重要的目的是能够写入服务器。取消注释以下行以通过删除文件前面的#来启用文件上传

write_enable=YES

3.Chroot监狱

当用户限制在某个目录中时,FTP效果最好。 vsftpd通过使用chroot jail来实现。为本地用户启用chroot时,默认情况下将它们限制在其主目录中。为此,请取消注释以下行。

chroot_local_user=YES

为了防止出现任何安全漏洞,只要将目录用户限制为可写的,则chroot启用时将不起作用。

为了解决这个限制,启用chroot时,我们有两种方法允许文件上传。

方法1-此方法通过使用其他目录进行FTP上传来起作用。在本教程中,我们将在用户家中创建一个ftp目录以用作chroot,并在其上创建第二个可写目录以上传文件。为此,请在文件底部添加以下几行。

user_sub_token=