如何在阿里云 CentOS 8 / RHEL 8 上安装 vsftpd(ftp 服务器)

FTP文件传输协议的缩写,是一种提供对驻留在服务器上的文件的访问的协议。它是使用户能够通过 Internet 下载文件的最早协议之一。通过 FTP 协议,用户可以轻松地在服务器上下载和上传文件。

VsftpdVery Secure FTP daemon 的缩写,是一个安全的 FTP 守护进程,是 FTP 协议的升级版。它通过加密发送到服务器和从服务器发送的流量来强制安全连接到 FTP 服务器,并且通过这样做,文件传输是安全的,不会受到黑客的攻击。

在本主题中,我们将重点介绍在 CentOS 8 / RHEL 8 上安装 vsftpd。

 

步骤 1) 使用 dnf 命令安装 vsftpd

马上,我们将安装 vsftpd。为此,我们将运行以下命令:

sudo dnf install vsftpd

 按“ y ”并按 ENTER 开始安装。安装需要几秒钟,很快就会完成。下面的输出确认 vsftpd 已成功安装。

 输出表明我们已经安装了vsftpd版本3.0.3-31.el8.x86_64要确认这一点,请执行以下命令

[ linuxtechi@centos8-vsftpd ~]$ rpm -q vsftpd 
vsftpd-3.0.3-31.el8.x86_64 
[ linuxtechi@centos8-vsftpd ~]$

成功安装后,输出应与终端上打印的版本相符。要检索有关 Vsftpd 的更多详细信息,请在末尾附加 -i 标志,如下所示:

rpm -qi vsftpd

这将在屏幕上打印附加信息,例如架构、安装日期、许可证和签名等。

安装 vsftpd 后,我们需要运行它以方便访问文件共享。

要启动 vsftpd 服务,请运行以下命令:

sudo systemctl start vsftpd

您可能还希望使其在重新启动时自动启动。为此,请运行命令

sudo systemctl start vsftpd

要验证系统上 vsftpd 的状态,请运行:

sudo systemctl status vsftpd

如果您在终端上看到绿色的“ active: (running) ”指令,则 vsftpd 服务已启动并正在运行。

步骤 2) 创建 ftp 用户及其目录

接下来,我们将创建一个用于访问 FTP 服务器的用户。在这种情况下,用户将是 ftpuser 但您可以随意为您的用户指定一个您选择的名称。

$ sudo adduser ftpuser 
$ sudo passwd ftpuser

FTP 用户就位后,我们将继续创建 FTP 目录并分配以下权限和目录所有权。

$ sudo mkdir -p /home/ftpuser/ftp_dir 
$ sudo chmod -R 750 /home/ftpuser/ftp_dir 
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir

我们还需要将FTP用户添加到/etc/vsftpd/user_list文件中,以允许该用户访问vsftp服务器。

sudo bash -c 'echo ftpuser >> /etc/vsftpd/user_list'

步骤3)通过其配置文件配置vsftpd

到目前为止,我们已成功安装并确认 vsftpd 已启动并正在运行。Vsftpd 需要进一步调整以允许用户访问服务器。

vsftpd 的默认配置文件是/etc/vsftpd/vsftpd.conf文件。该文件充满了有助于加强 FTP 服务器安全性的指令。

在本节中,我们将对配置文件进行一些调整,并允许用户访问服务器。

要允许本地用户远程访问 FTP 服务器并阻止匿名用户,请确保您具有如下所示的指令:

anonymous_enable=NO
local_enable=YES

要授予用户运行任何 FTP 命令和进行更改(例如上传、下载和删除文件)的权限,请准备好以下行。

write_enable=YES

出于安全目的,您可以选择限制用户访问其主目录之外的任何文件和目录。因此,请准备好以下指令。

chroot_local_user=YES

要授予用户对其各自主目录的写访问权限,请确保您拥有此指令。

allow_writeable_chroot=YES

接下来,我们将定义自定义端口以启用被动 FTP 连接。在这种情况下,我们将指定端口 30000 和 31000。稍后我们将在防火墙上打开它们。

pasv_min_port=30000 
pasv_max_port=31000

接下来,我们将只允许/etc/vsftpd/user_list 中定义的用户访问服务器并阻止其余用户。要实现这一点,请使用以下几行。

userlist_file=/etc/vsftpd/user_list 
userlist_deny=NO

最后,保存并关闭文件。要使更改保持不变,请重新启动 Vsftpd 服务。

$ sudo systemctl restart vsftpd

此时,您可以通过运行来测试 FTP 连接性

$ ftp ip

指定 ftp 用户的用户名,然后提供密码。您应该得到如图所示的输出。

如果连接时报错,有可能是阿里云的21端口没打开

 虽然我们已经建立了到 vsftpd 服务器的连接。连接不安全,发送的信息是纯文本的,没有加密。因此,我们需要采取额外的步骤来加密发送到服务器的通信。

步骤 4)为 vsftpd 配置 SSL/TLS

为了加密服务器和客户端系统之间的通信,我们需要生成一个 TLS 证书,然后配置服务器以使用它。

要生成证书,请运行以下命令:

$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

随后将出现一系列提示,您需要提供一些详细信息,例如国家/地区名称、州或省以及组织名称等。相应地填写所有详细信息,如图所示。

 我们还需要告诉服务器证书文件的存储位置。因此,返回配置文件/etc/vsftpd/vsftpd.conf并指定证书文件的路径。

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

然后,指示服务器打开 SSL。

ssl_enable=YES

保存并退出配置文件。使以上修改生效,重启vsftpd服务,

$ sudo systemctl restart vsftpd

步骤 5) 在防火墙中允许 ftp 服务器 (vsftpd) 端口

如果您正在运行防火墙,则需要允许这些显着端口”

  • 20 – 允许 FTP 流量
  • 21 – FTP 数据端口
  • 30000-31000 – 允许与 FTP 服务器进行被动通信。

因此,运行以下命令:

$ sudo firewall-cmd --permanent --add-port=20-21/tcp 
$ sudo firewall-cmd --permanent --add-port=30000-31000/tcp

然后重新加载防火墙以使更改生效。

$ sudo firewall-cmd --reload

步骤 6) 测试您的 vsftpd 或 FTP 服务器

完成所有设置后,是时候测试我们的连接性了。在这个例子中,我们使用了一个名为FileZilla的 FTP 客户端,它是一个免费的 FTP 客户端,用于客户端和服务器系统。它支持普通 FTP 和 FTP over TLS,这是我们将要测试的。

启动后,界面如图所示。提供主机的 IP 地址 (vsftpd)、ftp 用户的用户名和密码,然后单击“快速连接”按钮。

 不久之后,将出现一个弹出窗口,显示 FTP 服务器的证书和会话详细信息。要继续连接,请单击“在以后的会话中始终信任此证书”,然后按 Enter。

 如果您的所有配置都正确,您应该可以正常进入,如图所示。在右下窗格中,远程服务器的主目录如图所示。您现在可以上传、下载和编辑您认为合适的文件。

 我们关于在 CentOS 8 上安装 vsftpd 的主题到此结束。我们希望您现在可以轻松地设置您自己的 vsftpd(安全 ftp)服务器。请务必在您的技术朋友之间分享,并分享您宝贵的反馈和意见。

参考:https://www.linuxtechi.com/install-vsftpd-server-centos-8-rhel-8/

道虽迩,不行不至;事虽小,不为不成。
原文地址:https://www.cnblogs.com/LeeMacrofeng/p/15532226.html