更新时间:2023-02-13 16:05:22浏览次数:624+次
本文介绍如何在Rocky Linux 8/AlmaLinux 8系统上安装和配置Vsftpd FTP服务器的方法。FTP是文件传输协议的缩写,当需要通过互联网在设备之间进行无缝传输或数据交换时,该应用层协议至关重要,使用TCP(传输控制协议)可以轻松地在FTP应用程序中上传和下载文件。Vsftpd是非常安全的FTP守护程序的首字母缩写,通过创建加密数据流的安全隧道来保护FTP上的数据传输。有了Vsftpd,数据传输安全性得到了保证,因为端到端加密得到了实施。
在Rocky Linux 8/AlmaLinux 8上安装Vsftpd
我们需要做的第一件事是安装非常安全的FTP守护程序,它在默认的Rocky Linux 8/AlmaLinux 8存储库中可用:
sudo yum update
sudo yum install vsftpd
会安装vsftpd x86_64 3.0.3-34.el8等软件包:
Install 1 Package
Total download size: 180 k
Installed size: 347 k
Is this ok [y/N]: y
安装成功后,按如下所示验证已安装的Vsftpd版本:
$ sudo rpm -qi vsftpd
Name: vsftpd
Version: 3.0.3
Release: 34.el8
Architecture: x86_64
Group: System Environment/Daemons
启动并启用非常安全的FTP守护程序,以便在系统启动时自动运行:
sudo systemctl enable vsftpd --now
检查服务状态:
$ systemctl status vsftpd
vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
创建FTP用户和用户目录及在Rocky Linux 8/AlmaLinux 8上配置vsftpd
我们需要创建并授予FTP服务器的专用用户访问权限。我们将创建如下用户:
sudo adduser vsftpduser
sudo passwd vsftpduser
使用如上所述创建的用户和密码,继续并创建具有必要权限的FTP目录:
sudo mkdir -p /home/vsftpduser/ftp_folder
sudo chmod -R 750 /home/vsftpduser/ftp_folder
sudo chown vsftpduser: /home/vsftpduser/ftp_folder
要授予用户对Vsftpd服务器的访问权,请将它们添加到/etc/vsftpd/user_list文件中:
sudo bash -c 'echo vsftpduser >> /etc/vsftpd/user_list'
下面,我们将在Rocky Linux 8/AlmaLinux 8上配置vsftpd。
我们需要对如下访问的Vsftpd配置文件进行一些调整:
sudo vi /etc/vsftpd/vsftpd.conf
打开文件后,进行以下调整。
允许本地用户远程访问,然后阻止匿名用户:
anonymous_enable = NO
local_enable = YES
授予用户运行FTP命令的权限:
write_enable = YES
限制用户只能访问其主目录,并授予写入权限:
chroot_local_user=YES
allow_writeable_chroot=YES
设置自定义端口以启用被动FTP连接:
pasv_min_port=30000
pasv_max_port=31000
允许user_list文件中的专用Vsftpd用户访问FTP服务器:
userlist_file=/etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO
完成上述更改后,重新启动服务器:
sudo systemctl restart vsftpd
在防火墙上打开FTP端口
基于上述配置,我们将无源通信端口范围设置在30000-31000之间。我们现在需要允许这些端口通过防火墙。此外,我们需要允许FTP数据和流量的端口范围为20-21:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
将更改应用于防火墙守护程序:
sudo firewall-cmd --reload
现在使用以下命令测试FTP连接:
ftp serverIP
样本输出:
Rocky Linux 8/AlmaLinux 8上的Vsftpd SSL/TLS配置
出于FTP服务器上的安全和加密原因,我们将在此系统上生成SSL证书。
在本指南中,我们使用使用OpenSSL生成的自签名证书,如下所示。
首先,确保安装了OpenSSL:
sudo yum install openssl
然后生成自签名证书:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
在输出中,提供所需的国家名称、州/省详细信息,比如以下示例截图:
填写后,请返回Vsftpd配置文件并添加生成的证书路径:
$ sudo vi /etc/vsftpd/vsftpd.conf
#添加这些行###
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem
#启用SSL##
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
保存更改并重新启动Vsftpd:
sudo systemctl restart vsftpd
接下来,就可以使用FTP客户端Filezilla测试FTP服务器了,当前该客户端可以安装在Windows和Linux系统上,可以参考https://www.hmxthome.com/linux/5060.html里面的内容,里面有安装及使用SFTP客户端包FileZilla的方法。
至此,我们已经成功地在Rocky Linux 8/AlmaLinux 8上配置了Vsftpd FTP服务器。现在,您可以通过专用隧道安全地共享文件。