如何在 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 服务器的安全。在那之前,请留在我们身边。