在下一篇文章中,我们将研究如何在Ubuntu上安装vsftpd。 无论您是要创建家庭服务器,Web服务器,游戏服务器还是适合您项目的任何服务器,FTP都是将数据从一个系统传输到另一个系统的最简单方法。 这就是为什么我们要看看如何执行 Ubuntu中FTP服务器的安装和基本配置.
则fTP或 文件传输协议,是用于加载(地点)或下载(得到)来自服务器的文件。 在拍摄文件或将图像上传到Web时,您有时可能没有意识到就使用了它。
在Ubuntu中安装FTP服务器
安装vsftpd
对于此示例,我将在Ubuntu 20.04的本地网络上安装FPT服务器。 如果您没有在计算机上安装它, 可以使用以下命令安装(Ctrl + Alt + T):
sudo apt install vsftpd
安装完成后,我们将开始 制作原始配置文件的副本。 如果出现问题,可以恢复默认设置。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
现在让我们 开始服务 使用命令:
sudo systemctl start vsftpd
我们确认它正在运行:
sudo systemctl enable vsftpd
FTP用户帐号
有了这个 我们可以使用任何FTP客户端通过vsftpd访问服务器上托管的文件。 在终端(Ctrl + Alt + T)中,我们只需要使用以下命令:
sudo useradd –m nombre-usuario
替换为用户名'通过您想要的用户名输入。 现在我们要 设置密码:
sudo passwd nombre-usuario
然后 我们将移至新创建的用户文件夹:
cd /home/nombre-usuario
出于安全考虑,理想情况下,FTP应该限制在特定目录中。 Vsftpd使用chroot笼来实现此目的。 启用chroot后,本地用户只能使用其主目录(默认情况下)。 对于此示例,我们将创建一个将充当chroot的ftp目录,以及一个可修改文件的目录。
首先 我们创建FTP文件夹:
sudo mkdir 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_local_user=YES
我们还将手动在文件末尾添加一些新值。 这个 将允许配置与当前用户和以后添加的任何其他用户一起使用:
user_sub_token=$USER local_root=/home/$USER/ftp
重新启动守护程序 加载更改:
sudo systemctl restart vsftpd
加密连接
我们将使用TTL / SSL来确保安全性。 我们必须创建SSL证书并使用它来保护FTP服务器。 我们将使用以下命令执行此操作:
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
现在,我们将启用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之后,请执行 单击文件/站点管理器。 接下来是点击“新网站“。
在右侧面板中, 选择作为FTP协议。 如果使用FTPS,请选择TLS进行加密。 下列的, 在服务器中写入主机名或IP地址并添加端口(21)。 为了他 存取模式选择正常,然后编写 用户名和密码中的帐户凭据。 单击连接。
我们将不得不接受证书 我们之前创建的。
至此,我们将看到在files文件夹内创建的示例文件。 现在我们可以开始使用我们的FTP服务器了。 只需拖放您要移动的文件。
使用FTP,我们可以在需要时捕获数据。 它可以 了解更多关于vsftpd及其配置的信息。 Ubuntu文档页面.
完美的教程,它帮助我在几分钟内配置了ftp服务器。
很棒的教程,从头到尾都可以理解。 我有一个问题,我有一台装有 Debian 11 Plasma 的 PC,还有一台装有 centos 7 的虚拟机。在 centos 中,我已经安装了 ftpy 服务器并创建了一个用户。 现在从 Debian 和 dolphin 我可以毫无问题地访问,问题是我无法创建文件夹或文件,但是从其他虚拟文件夹或文件(xp、XNUMX、linuxmint),如果我可以毫无问题地创建,为什么会这样?