网站搜索

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


FTP(代表“文件传输协议”)是一种标准且古老的网络协议,用于在计算机网络上的客户端和服务器之间传输文件。它建立在客户端-服务器模型架构之上,可通过 FTP 客户端访问文件和目录,将文件上传到服务器以及从服务器下载文件。

在上一篇文章中,我们解释了如何在 CentOS/RHEL 7 中安装、配置和保护 FTP 服务器,以便在计算机网络上的客户端和服务器之间传输计算机文件。

在本文中,我们将介绍如何在 RHEL 8 上安装、配置和保护 FTP 服务器,以便在计算机之间共享基本文件。

在 RHEL 8 上安装 FTP 服务器

1. 要安装安全 FTP 软件包,请使用以下 dnf 命令。

dnf install vsftpd

2.安装完成后,您需要暂时启动vsftpd服务,使其在系统启动时自动启动,然后使用以下systemctl命令验证状态。

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3.接下来,您需要在系统防火墙上打开FTP端口21,以允许外部系统访问FTP服务。

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

在 RHEL 8 上配置 FTP 服务器

4.要配置FTP服务器,您需要使用以下复制命令备份主FTP配置文件/etc/vsftpd/vsftpd.conf

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. 然后使用您最喜欢的命令行编辑器打开配置文件。

vi /etc/vsftpd/vsftpd.conf

使用这些相应的值设置以下参数(有关配置参数的含义,请参阅 man vsftpd.conf):

anonymous_enable=NO             
local_enable=YES		
write_enable=YES		
local_umask=022		        
dirmessage_enable=YES	        
xferlog_enable=YES		
connect_from_port_20=YES        
xferlog_std_format=YES          
listen=NO   			
listen_ipv6=YES		        
pam_service_name=vsftpd        

6.接下来,您需要根据用户列表文件/etc/vsftpd.userlist配置FTP以允许/拒绝用户访问FTP服务。

默认情况下,如果 userlist_enable =YES,它启用访问。

但是,设置参数 userlist_deny=NO 会改变设置,这意味着只有 userlist_file=/etc/vsftpd.userlist 中明确列出的用户才被允许登录。

因此,在您的 vsftpd.conf 配置文件中添加以下行(或者如果已经存在,请取消注释并设置其值,如图所示):

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. 现在,在您的 vsftpd.conf 配置文件中添加以下行,以将 FTP 用户限制在其主目录中。

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

保存文件中的更改并关闭它。

8. 设置以下 SELinux 布尔规则,使 FTP 能够读取/写入用户主目录的文件。

semanage boolean -m ftpd_full_access --on

9.最后重新启动vsftpd服务以影响我们迄今为止所做的所有更改:

systemctl restart vsftpd

在 RHEL 8 上测试 FTP 服务器

10. 要测试上述 FTP 设置是否运行正常,请首先使用 useradd 命令创建 FTP 用户并为该用户创建密码。

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. 然后使用 echo 命令将用户 howtoing 添加到文件 /etc/vsftpd.userlist 中,如下所示。

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12.然后为用户创建备用本地根目录(howtoing,您的可能不同)并在此目录上设置适当的权限。

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. 接下来,在本地根位置内创建一个目录,用户将在其中保存他/她的文件。

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. 现在使用任意 FTP 客户端连接到 FTP 服务器,如下所示。

ftp [email 
样本输出
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

就是这样!在本文中,我们描述了如何在 RHEL 8 中安装、配置和保护 FTP 服务器。在下一篇文章中,我们将展示如何使用 SSL/TLS 连接来保护 FTP 服务器的安全。在那之前,请留在我们身边。