VSFTPD,FTP服务器的安装和基本配置

关于vsftpd

在下一篇文章中,我们将研究如何在Ubuntu上安装vsftpd。 无论您是要创建家庭服务器,Web服务器,游戏服务器还是适合您项目的任何服务器,FTP都是将数据从一个系统传输到另一个系统的最简单方法。 这就是为什么我们要看看如何执行 Ubuntu中FTP服务器的安装和基本配置.

则fTP文件传输协议,是用于加载(地点)或下载(得到)来自服务器的文件。 在拍摄文件或将图像上传到Web时,您有时可能没有意识到就使用了它。

在Ubuntu中安装FTP服务器

安装vsftpd

对于此示例,我将在Ubuntu 20.04的本地网络上安装FPT服务器。 如果您没有在计算机上安装它, 可以使用以下命令安装(Ctrl + Alt + T):

安装vsftpd

sudo apt install vsftpd

安装完成后,我们将开始 制作原始配置文件的副本。 如果出现问题,可以恢复默认设置。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

现在让我们 开始服务 使用命令:

sudo systemctl start vsftpd

我们确认它正在运行:

启用vsftpd

sudo systemctl enable vsftpd

FTP用户帐号

有了这个 我们可以使用任何FTP客户端通过vsftpd访问服务器上托管的文件。 在终端(Ctrl + Alt + T)中,我们只需要使用以下命令:

sudo useradd –m nombre-usuario

替换为用户名'通过您想要的用户名输入。 现在我们要 设置密码:

创建ftp用户

sudo passwd nombre-usuario

然后 我们将移至新创建的用户文件夹:

cd /home/nombre-usuario

出于安全考虑,理想情况下,FTP应该限制在特定目录中。 Vsftpd使用chroot笼来实现此目的。 启用chroot后,本地用户只能使用其主目录(默认情况下)。 对于此示例,我们将创建一个将充当chroot的ftp目录,以及一个可修改文件的目录。

首先 我们创建FTP文件夹:

sudo mkdir ftp

我们将设置文件夹的属性 使用此其他命令:

ftp文件夹属性

sudo chown nobody:nogroup /home/nombre-usuario/ftp

现在 我们删除了该文件夹的写权限:

sudo chmod a-w /home/nombre-usuario/ftp

我们继续创建文件容器目录,然后分配属性:

创建文件文件夹

sudo mkdir /home/nombre-usuario/ftp/files 

sudo chown nombre-usuario:nombre-usuario /home/nombre-usuario/ftp/files

在这一点上,我们将 创建一个测试文件 在文件文件夹中:

创建样本文件

echo "vsftpd archivo de ejemplo" | sudo tee /home/nombre-usuario/ftp/files/ejemplo.txt

保护FTP服务器

在这一步 让我们打开端口20和21进行FTP通信。 端口40000-50000将保留给最终将在配置文件中设置的被动端口范围,而启用TLS时将使用端口990。 运行以下操作:

sudo ufw allow 20/tcp; sudo ufw allow 21/tcp; sudo ufw allow 990/tcp; sudo ufw allow 40000:50000/tcp

如果使用其他防火墙,请查看其文档以打开端口。

配置vsftpd

由于我们希望用户能够上传文件,因此我们将 编辑vsftpd配置文件:

sudo vim /etc/vsftpd.conf

在文件内,我们将 找到以下条目并取消注释:

匿名将本地写为取消注释

anonymous_enable=NO

write_enable=YES

local_enable=YES

Chroot_local_user也不会被评论, 这样,我们保证连接的用户仅访问允许目录中的文件:

chroot本地用户取消注释

chroot_local_user=YES

我们还将手动在文件末尾添加一些新值。 这个 将允许配置与当前用户和以后添加的任何其他用户一起使用:

usr本地USER

user_sub_token=$USER
local_root=/home/$USER/ftp

重新启动守护程序 加载更改:

sudo systemctl restart vsftpd

加密连接

我们将使用TTL / SSL来确保安全性。 我们必须创建SSL证书并使用它来保护FTP服务器。 我们将使用以下命令执行此操作:

生成SSL证书

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

-天 使证书有效期为一年,并且其中包括 2048位RSA私钥 在同一命令中。 完成创建证书后, 再次打开配置文件:

sudo vim /etc/vsftpd.conf

在文件末尾,我们必须找到以«rsa«开头的两行。 注释两行并写以下内容:

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

rsa线

现在,我们将启用SSL,以便只有启用SSL的客户端才能连接。 将ssl_enable的值更改为YES:

ssl_enable=YES

不允许通过SSL进行匿名连接,添加以下行:

安全设定

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

配置服务器以使用TLS,并添加:

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

我们也将得到 无需重用SSL,因为它可能导致许多FTP客户端无法正常工作。 更重要的是 我们将使用高级加密套件,添加以下行:

require_ssl_reuse=NO
ssl_ciphers=HIGH

我们保存文件并 我们重新启动服务:

sudo systemctl restart vsftpd

从FTP客户端访问

现在我们可以连接到FTP服务器了。 为了这 我们可以使用来自图形环境的应用程序或终端命令ftp。 如果选择图形环境,则将需要FTP客户端(如FileZilla)。 要安装它,您可以 转到文章 一位同事不久前在此博客上写道。

安装并启动Filezilla之后,请执行 单击文件/站点管理器。 接下来是点击“新网站“。

filezilla与vsftpd的连接

在右侧面板中, 选择作为FTP协议。 如果使用FTPS,请选择TLS进行加密。 下列的, 在服务器中写入主机名或IP地址并添加端口(21)。 为了他 存取模式选择正常,然后编写 用户名和密码中的帐户凭据。 单击连接。

我们将不得不接受证书 我们之前创建的。

接受SSL证书

至此,我们将看到在files文件夹内创建的示例文件。 现在我们可以开始使用我们的FTP服务器了。 只需拖放您要移动的文件。

filezilla示例文件

使用FTP,我们可以在需要时捕获数据。 它可以 了解更多关于vsftpd及其配置的信息。 Ubuntu文档页面.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   猎鹰

    完美的教程,它帮助我在几分钟内配置了ftp服务器。

  2.   胡安·卡洛斯·

    很棒的教程,从头到尾都可以理解。 我有一个问题,我有一台装有 Debian 11 Plasma 的 PC,还有一台装有 centos 7 的虚拟机。在 centos 中,我已经安装了 ftpy 服务器并创建了一个用户。 现在从 Debian 和 dolphin 我可以毫无问题地访问,问题是我无法创建文件夹或文件,但是从其他虚拟文件夹或文件(xp、XNUMX、linuxmint),如果我可以毫无问题地创建,为什么会这样?