在 RHEL 8 中使用 SSL/TLS 设置安全 FTP 文件传输
在上一篇文章中,我们详细介绍了如何在 RHEL 8 Linux 中安装和配置 FTP 服务器。在本文中,我们将解释如何使用 SSL/TLS 来保护 FTP 服务器的安全,以启用数据加密服务以实现系统之间的安全文件传输。
我们希望您已经安装并正常运行FTP服务器。如果没有,请使用以下指南将其安装在您的系统上。
- 如何在 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
以下是上述命令中使用的每个标志的解释。
- req – 是 X.509 证书签名请求 (CSR) 管理的命令。
- x509 – 表示 X.509 证书数据管理。
- 天 – 定义证书的有效天数。
- newkey – 指定证书密钥处理器。
- rsa:2048 – RSA 密钥处理器,将生成 2048 位私钥。
- keyout – 设置密钥存储文件。
- 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_file 和 rsa_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_port 和 pasv_max_port 指定 vsftpd 用于安全连接的被动端口的端口范围(最小和最大端口) 分别参数。此外,您可以选择使用 debug_ssl 选项启用 SSL 调试以进行故障排除。
pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES
8.最后,保存文件并重新启动vsftpd服务以使上述更改生效。
systemctl restart vsftpd
9. 在安全访问 FTP 服务器之前要执行的另一项关键任务是打开系统中的端口 990 和 40000-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 服务器的综合指南的第二部分。要分享任何疑问或想法,请使用下面的反馈表。