• 如何在阿里云 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/

    道虽迩,不行不至;事虽小,不为不成。
  • 相关阅读:
    《MIT 6.828 Lab 1 Exercise 8》实验报告
    《MIT 6.828 Lab 1 Exercise 7》实验报告
    《MIT 6.828 Lab 1 Exercise 4》实验报告
    《MIT 6.828 Lab 1 Exercise 3》实验报告
    《MIT 6.828 Lab 1 Exercise 2》实验报告
    《Brennan's Guide to Inline Assembly》学习笔记
    《PC Assembly Language》读书笔记
    《MIT 6.828 Lab1: Booting a PC》实验报告
    MIT 6.828 课程介绍
    《Data Structures and Algorithm Analysis in C》学习与刷题笔记
  • 原文地址:https://www.cnblogs.com/LeeMacrofeng/p/15532226.html
Copyright © 2020-2023  润新知