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

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

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

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

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

在RHEL 8上安装FTP服务器

1.要安装安全FTP程序包,请使用以下dnf命令

# dnf install vsftpd
在RHEL 8中安装VsFTP

在RHEL 8中安装VsFTP

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

# systemctl start vsftpd
# systemctl enable vsftpd
# systemctl status vsftpd
启动并验证FTP服务

启动并验证FTP服务

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.接下来,您需要配置FTP以允许/拒绝用户基于用户列表文件/etc/vsftpd.userlist访问FTP服务。

默认情况下,/ /etc/vsftpd.userlist文件中列出的用户被拒绝访问, userlist_deny选项设置为YES ,如果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 "Howtoing HowTos" -s /bin/bash howtoing
# passwd howtoing

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

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

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

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

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

# mkdir /home/howtoing/ftp/files
# chown howtoing:howtoing /home/howtoing/ftp/files
# chmod 0700 /home/howtoing/ftp/files/

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

# ftp [email protected]
样本输出
Connected to 192.168.56.100
220 Welcome to HowToing.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服务器。 在那之前,请留在我们身边。