乐趣区

关于ftp:如何在-CentOS-8-RHEL-8上安装-FTP-服务器VSFTPD

FTP(File Transfer Protocol)是一种提供对服务器上的文件的拜访协定。它是最早容许用户通过互联网下载文件的协定之一。通过 FTP 协定,用户能够轻松地在服务器上下载和上传文件。

Vsftpd(Very Secure FTP daemon)是一种平安的 FTP 守护过程,是 FTP 协定的降级。它通过加密传递数据,保障文件平安传输,不受黑客的攻打。

在本篇文章中,咱们将焦点放在 CentOS 8 / RHEL 8 上的 vsftpd 上。

1) 装置 vsftpd

运行 dnf 命令,装置 vsftpd

$ sudo dnf install vsftpd

y 并按 ENTER 开始装置,上面的输入确认 vsftpd 曾经胜利装置。

查看 vsftpd 版本

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

输入后果应与终端上打印的版本统一。要获取 vsftpd 的更详细信息,能够在开端增加 -i 标记,如下所示

$ rpm -qi vsftpd

启动 vsftpd 服务

$ sudo systemctl start vsftpd

设置开机自启动 vsftpd 服务

$ sudo systemctl enable vsftpd --now

查看 vsftpd 服务状态

$ sudo systemctl status vsftpd

2) 创立 FTP 用户及其目录

接下来,咱们将创立一个用于拜访 FTP 服务器的用户,名称能够酌情批改。

$ 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 的默认配置文件是 /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 连通性

$ ftp ip-address

输出 ftp 用户名,而后提供明码,您应该失去如下所示的输入。

4) 配置 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 端口

如果您正在运行防火墙,则须要容许以下端口

  • 20 – to allow FTP traffic
  • 21 – FTP data port
  • 30000-31000 – To allow passive communication with the FTP server.

运行如下命令,放行端口

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

从新加载防火墙

$ sudo firewall-cmd --relo­ad

6) 测试 FTP

所有设置实现后,是时候测试咱们的连贯了。在本例中,咱们应用一个名为 FileZilla 的 FTP 客户端,它是客户端和服务器零碎的收费 FTP 客户端,它反对一般 FTP 和 TLS 之上的 FTP。

启动后,界面如下所示。提供主机的 IP 地址,FTP 用户名和明码,而后点击 Quickconnect 按钮。

不久之后,弹出窗口将显示 FTP 服务器的证书和会话详细信息。要持续连贯,请单击“Always trust this certificate in future session”,而后按 enter 键。

在右下窗格中,近程服务器的主目录如所示。当初你能够上传、下载和编辑文件了。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
退出移动版