什么是 FTP?
FTP(文件传输协议)是一种客户端-服务器网络协议,允许用户在远程计算机中交换文件。
FTP 使用纯文本传输数据和访问数据。Linux 操作系统平台可以使用几种不同的开源 FTP 服务器。最常用的 FTP 服务器是 VSFTPD、ProFTPD 和 PureFTPD。FTP 协议使用端口号 21 进行连接,端口 20 用于数据传输。在被动模式下,使用其他端口。
在本教程中,我们将学习如何设置和配置 VSFTPD。它非常安全、稳定,可在 CentOS 8 软件包存储库中使用。
安装 VSFTP FTP 服务器
要在 CentOS 8 上安装 VSFTPD 包,请打开终端或 SSH 作为根用户连接到服务器,并键入以下命令:
# dnf install –y vsftpd
安装包后,使用以下命令启动并启用 VSFTPD 服务:
# systemctl enable vsftpd# systemctl start vsftpd
通过键入以下命令,获取原始配置文件/etc/vsftpd/vsftpd.conf 的副本:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
现在,使用以下命令编辑配置文件:
# vim /etc/vsftpd/vsftpd.conf
在其中查找并设置以下指令:
anonymous_enable=NO # disable anonymous users(Unknown users)local_enable=YES # allow local userswrite_enable=YES # allow ftp write commandslocal_umask=022 # set default umaskdirmessage_enable=YES # enable messages on change directoryxferlog_enable=YES # enable logging of uploads and downloadsconnect_from_port_20=YES # ensure PORT transfer connections from port 20 xferlog_std_format=YES # keep standard log formatlisten=NO # prevent vsftpd run in stand-alone modelisten_ipv6=YES # allow vsftpd to listen on IPv6 socketpam_service_name=vsftpd # set PAM Service name to vsftpd
在 FTP 服务器中配置用户列表
默认情况下,位于/etc/vsftpd/user_list 的user_list文件中的所有用户都可以使用FTP 服务。
要限制用户在chroot 环境中,请使用以下指令:
chroot_local_user=YES # Create chrooted environment for usersallow_writeable_chroot=YES # Allow write permission to a user on chroot jail directory
要保持用户对其主目录的限制,请使用以下指令:
userlist_enable=YES # enable vsftpd to load usernamesuserlist_deny=NO # allow access to users in the user list
如果您想提供对我们系统的全面访问权限,请将此指令添加到您的配置文件中:
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list #users in this file list have an overall access
保存并关闭配置文件。
现在,使用以下命令在/etc/vsftpd/目录下创建chroot_list:
# touch /etc/vsftpd/chroot_list
仅添加该列表中要向其提供系统上整体访问权限的用户。
创建用户以访问 FTP 服务
要创建用于 FTP 服务的用户,请使用以下命令:
# useradd user1# passwd user1
在user_list文件中添加该用户以将用户限制为其主目录,请使用以下命令:
# vim /etc/vsftpd/user_list
键入"i"以插入并键入该用户名,如图所示:
按 ESC 并键入:wq!以保存文件。
如果要向特定用户提供对系统的总体访问权限,请将该用户添加到/etc/vsftpd/chroot_list。
重新启动VSFTPD服务:
# systemctl restart vsftpd
使用以下命令验证 FTP 服务的状态:
# systemctl status vsftpd
为 FTP 配置防火墙
要允许 FTP 服务通过防火墙,请使用以下命令:
# firewall-cmd - - add-service = ftp - - permanent# firewall-cmd - - reload
从 Windows 计算机测试 FTP 服务器
要连接到 FTP 服务器需要客户端软件。FTP最常用的软件是FileZilla、WINSCP等。 我使用 FileZilla 进行连接。
打开 FTP 客户端软件,输入以下详细信息进行连接:
主机= > IP 地址或主机名。
用户名: FTP 用户名(在我的情况下,它是用户1)
密码
端口: 21
成功连接后,您可以根据需要上传/下载文件。
结论
在本教程中,我们学习了如何在 Centos 8 上设置 FTP 服务器、如何将用户限制到其主目录以及如何授予他们读/写访问权限。我们还了解如何为特定用户提供对系统的一般访问权限。