FTP(代表“文件传输协议”)是一种标准且古老的网络协议,用于在计算机网络上的客户端和服务器之间传输文件。它建立在客户端-服务器模型架构之上,可通过 FTP 客户端访问文件和目录,将文件上传到服务器以及从服务器下载文件。
在上一篇文章中,我们解释了如何在 CentOS/RHEL 7 中安装、配置和保护 FTP 服务器,以便在计算机网络上的客户端和服务器之间传输计算机文件。
在本文中,我们将介绍如何在RHEL 8上安装、配置和保护 FTP 服务器,以便在计算机之间共享基本文件。
在 RHEL 8 上安装 FTP 服务器
1.要安装安全 FTP 软件包,请使用以下dnf 命令。
#dnf安装vsftpd
![](https://www.alaica.com/wp-content/uploads/linux-561.png)
2.安装完成后,您需要同时启动 vsftpd 服务,使其在系统启动时自动启动,然后使用以下systemctl 命令验证状态。
# systemctl 启动 vsftpd # systemctl 启用 vsftpd # systemctl 状态 vsftpd
![](https://www.alaica.com/wp-content/uploads/linux-562.png)
3.接下来,您需要在系统防火墙上打开FTP端口21,以允许外部系统访问FTP服务。
# 防火墙-cmd --zone=public --permanent --add-port=21/tcp # 防火墙-cmd --zone=public --permanent --add-port=45073/tcp # 防火墙-cmd --reload
在 RHEL 8 上配置 FTP 服务器
4.要配置 FTP 服务器,您需要/etc/vsftpd/vsftpd.conf
使用以下复制命令备份主 FTP 配置文件。
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
5.然后使用您喜欢的命令行编辑器打开配置文件。
# vi /etc/vsftpd/vsftpd.conf
使用这些相应的值设置以下参数(有关配置参数的含义,请参阅man vsftpd.conf ):
匿名_启用=否 本地启用=是 写启用=是 本地掩码=022 dirmessage_enable=是 xferlog_enable=YES connect_from_port_20=是 xferlog_std_format=YES 听=否 Listen_ipv6=是 pam_service_name=vsftpd
6.接下来,您需要根据用户列表文件/etc/vsftpd.userlist配置 FTP 以允许/拒绝用户访问 FTP 服务。
默认情况下,/etc/vsftpd.userlist
文件中列出的用户将被拒绝访问,并将userlist_deny
选项设置为YES
,如果userlist_enable=YES
,则启用访问。
但是,设置该参数userlist_deny=NO
会改变设置,这意味着只有明确列出的用户userlist_file=/etc/vsftpd.userlist
才被允许登录。
因此,请在配置文件中添加以下行vsftpd.conf
(或者如果已经存在,请取消注释并设置其值,如下所示):
userlist_enable=YES # 允许访问userlist_file中的用户名列表 userlist_file=/etc/vsftpd.userlist # 存储用户名。 用户列表拒绝=否
7.vsftpd.conf
现在,在配置文件中添加以下行,以将 FTP 用户限制在其主目录中。
chroot_local_user=YES #表示本地用户将被放置在chroot监狱中,默认设置是登录后的主目录。 user_sub_token=$USER local_root=/home/$USER/ftp
保存文件中的更改并关闭它。
8.设置以下 SELinux 布尔规则,使 FTP 能够读取/写入用户主目录的文件。
# semanage 布尔值 -m ftpd_full_access --on
9.最后重新启动vsftpd服务以影响我们上面所做的所有更改:
# systemctl 重新启动 vsftpd
在 RHEL 8 上测试 FTP 服务器
10.要测试上述 FTP 设置是否运行正常,请首先使用useradd 命令创建 FTP 用户并为该用户创建密码。
# useradd -m -c "示例 HowTos" -s /bin/bash 示例 # 密码示例
11.然后使用echo 命令将用户示例添加到文件/etc/vsftpd.userlist,如下所示。
# 回显“示例”| tee -a /etc/vsftpd.userlist # cat /etc/vsftpd.userlist
12.然后为用户创建备用本地根目录(例如,您的可能不同)并为此目录设置适当的权限。
# mkdir -p /home/example/ftp # chown无人:无人/home/example/ftp # chmod aw /home/example/ftp
13.接下来,在本地根位置内创建一个目录,用户将在其中保存他/她的文件。
# mkdir /home/example/ftp/files # chown 示例:示例 /home/example/ftp/files # chmod 0700 /home/example/ftp/files/
14.现在使用任意 FTP 客户端连接到 FTP 服务器,如下所示。
# ftp 示例@192.168.56.100
样本输出
连接到 192.168.56.100 220 欢迎使用Example.com FTP 服务。 331 请指定密码。 密码: 230 登录成功。 远程系统类型是 UNIX。 使用二进制方式传输文件。 ftp > ls
就是这样!在本文中,我们描述了如何在RHEL 8中安装、配置以及保护 FTP 服务器。在下一篇文章中,我们将展示如何使用 SSL/TLS 连接保护 FTP 服务器。在那之前,请留在我们身边。