网站搜索

在 RHEL 8 中使用 SSL/TLS 设置安全 FTP 文件传输


在上一篇文章中,我们详细介绍了如何在 RHEL 8 Linux 中安装和配置 FTP 服务器。在本文中,我们将解释如何使用 SSL/TLS 来保护 FTP 服务器的安全,以启用数据加密服务以实现系统之间的安全文件传输。

我们希望您已经安装并正常运行FTP服务器。如果没有,请使用以下指南将其安装在您的系统上。

  1. 如何在 RHEL 8 中安装、配置和保护 FTP 服务器

步骤1.生成SSL/TLS证书和私钥

1.创建以下目录来存储SSL/TLS证书和密钥文件。

mkdir -p /etc/ssl/vsftpd

2. 接下来,使用以下命令生成自签名 SSL/TLS 证书和私钥。

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

以下是上述命令中使用的每个标志的解释。

  1. req – 是 X.509 证书签名请求 (CSR) 管理的命令。
  2. x509 – 表示 X.509 证书数据管理。
  3. – 定义证书的有效天数。
  4. newkey – 指定证书密钥处理器。
  5. rsa:2048 – RSA 密钥处理器,将生成 2048 位私钥。
  6. keyout – 设置密钥存储文件。
  7. out – 设置证书存储文件,注意证书和密钥都存储在同一个文件中:/etc/ssl/vsftpd/vsftpd.pem

上述命令将提示您回答以下问题,请记住使用适用于您的场景的值。

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

步骤 2. 配置 VSFTPD 以使用 SSL/TLS

3. 打开 VSFTPD 配置文件,使用您喜欢的命令行编辑器进行编辑。

vi /etc/vsftpd/vsftpd.conf

添加以下配置参数以启用 SSL,然后在文件末尾选择要使用的 SSL 和 TLS 版本。

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

4. 接下来,添加 rsa_cert_filersa_private_key_file 选项以分别指定 SSL 证书和密钥文件的位置。

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

5. 现在添加这些参数以禁用使用 SSL 的匿名连接,并强制所有非匿名连接都通过 SSL。

allow_anon_ssl=NO			# disable anonymous users from using SSL
force_local_data_ssl=YES		# force all non-anonymous logins to use a secure SSL connection for data transfer
force_local_logins_ssl=YES		# force all non-anonymous logins  to send the password over SSL

6. 接下来,添加这些选项以禁用 SSL 数据连接的所有重用,并将 SSL 密码设置为以允许加密 SSL 连接。

require_ssl_reuse=NO
ssl_ciphers=HIGH

7. 您还必须使用 pasv_min_portpasv_max_port 指定 vsftpd 用于安全连接的被动端口的端口范围(最小和最大端口) 分别参数。此外,您可以选择使用 debug_ssl 选项启用 SSL 调试以进行故障排除。

pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES

8.最后,保存文件并重新启动vsftpd服务以使上述更改生效。

systemctl restart vsftpd

9. 在安全访问 FTP 服务器之前要执行的另一项关键任务是打开系统中的端口 99040000-50000防火墙。这将允许与 vsftpd 服务的 TLS 连接,并分别打开 VSFTPD 配置文件中定义的被动端口的端口范围,如下所示。

firewall-cmd --zone=public --permanent –add-port=990/tcp
firewall-cmd --zone=public --permanent –add-port=40000-50000/tcp
firewall-cmd --reload

步骤 3:安装 FileZilla 以安全连接到 FTP 服务器

10.要安全地连接到FTP服务器,您需要一个支持SSL/TLS连接的FTP客户端,例如FileZilla - 是一个开源软件,广泛使用的跨平台 FTP、SFTP 和 FTPS 客户端,默认支持 SSL/TLS 连接。

使用默认包管理器在 Linux 中安装 FileZilla,如下所示:

sudo apt-get install filezilla   		#Debian/Ubuntu
yum install epel-release filezilla		#On CentOS/RHEL
dnf install filezilla			        #Fedora 22+
sudo zypper install filezilla			#openSUSE

11.Filezilla软件包安装后,在系统菜单中搜索并打开它。要快速连接远程 FTP 服务器,请从主界面提供主机 IP 地址、用户名和用户密码。然后点击快速连接

12.然后应用程序将要求您允许使用未知的自签名证书进行安全连接。单击确定继续。

如果服务器上的配置正确,连接应该成功,如下图所示。

13.最后,通过尝试将文件从您的计算机上传到服务器来测试 FTP 安全连接状态,如下图所示。

就这样!在本文中,我们展示了如何使用 SSL/TLS 保护 FTP 服务器的安全,以便在 RHEL 8 中实现安全文件传输。这是我们在 RHEL 8 中安装、配置和保护 FTP 服务器的综合指南的第二部分。要分享任何疑问或想法,请使用下面的反馈表。