如何在 AlmaLinux 中创建 FTP 服务器和帐户

文件传输协议 (FTP) 和安全文件传输协议 (SFTP) 或 SSH 文件传输协议是流行的协议,用于从远程或本地服务器下载文件或将文件上传到服务器。

不建议将 FTP 用于 Internet 连接,因为它依赖纯文本密码进行身份验证并且不使用加密。 SFTP 可以代替 FTP 使用,因为它通过 SSH 隧道传输 FTP 协议,提供建立安全连接所需的加密。

本文提供在 AlmaLinux 上通过 VSFTP 软件或通过 OpenSSH 创建 SFTP 服务器的分步说明。

要求

  • 操作系统和版本:AlmaLinux OS 8.5
  • 处理器:1.1 GHz
  • RAM:最低:1 GB,但推荐:2 GB
  • 磁盘空间:最小:20 GB,但推荐:40 GB
  • 架构:64位
  • 软件:VSFTPD 和 OpenSSH
  • 对您的 Linux 系统的 Root 特权访问或通过 sudo 命令。
  • 以 root 用户身份直接执行 Linux 命令或使用 sudo 命令

如何在 AlmaLinux 中创建 FTP 服务器和帐户

第一步:安装VSFTPD

VSFTPD 是用于基于 Unix 的操作系统的安全且快速的 FTP 服务器。 要在您的系统上安装 VSFTPD,请在终端中运行以下命令。

sudo dnf install vsftpd

这是输出。

[root@noufserver ~]# sudo dnf install vsftpd
AlmaLinux 8 - BaseOS                                                                                                                     8.0 MB/s | 5.9 MB     00:00    
AlmaLinux 8 - AppStream                                                                                                                   17 MB/s | 9.4 MB     00:00    
AlmaLinux 8 - Extras                                                                                                                      54 kB/s |  12 kB     00:00    
Dependencies resolved.
=========================================================================================================================================================================
Package                               Architecture                          Version                                      Repository                                Size
=========================================================================================================================================================================
Installing:
 vsftpd                                x86_64                                3.0.3-34.el8                                 appstream                                180 k
Transaction Summary
=========================================================================================================================================================================
Install  1 Package
Total download size: 180 k
Installed size: 347 k
Is this ok [y/N]: y
Downloading Packages:
vsftpd-3.0.3-34.el8.x86_64.rpm                                                                                                           2.1 MB/s | 180 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    1.1 MB/s | 180 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                 1/1 
  Installing       : vsftpd-3.0.3-34.el8.x86_64                                                                                                                     1/1
  Running scriptlet: vsftpd-3.0.3-34.el8.x86_64                                                                                                                      1/1 
  Verifying        : vsftpd-3.0.3-34.el8.x86_64                                                                                                                      1/1 
Installed:
  vsftpd-3.0.3-34.el8.x86_64                                                                                                                                             
Complete!
[root@noufserver ~]#

步骤 2:配置 VSFTPD 服务器

创建原始配置文件的备份副本。 要重命名默认配置文件,您可以运行以下命令。

[root@noufserver ~]# sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_original

使用 vi 或您喜欢的文本编辑器创建一个新的 VSFTPD 配置文件。

[root@noufserver ~]# sudo vi /etc/vsftpd/vsftpd.conf

将以下基本配置添加到新的 VSFTPD 配置文件中。 此配置适用于基本的 FTP 服务器。 您可以根据需要调整配置。

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

Save 变化和 close 文件。

使用 cat 命令,确认文件的内容。 这是输出。

[root@noufserver ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
connect_from_port_20=YES
dirmessage_enable=YES
local_enable=YES
local_umask=022
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES

默认情况下,Firewalld(AlmaLinux 的默认防火墙)将阻止 FTP 流量。 但是您可以使用以下命令创建例外以允许流量。

sudo firewall-cmd --zone=public --add-service=ftp --permanent

sudo firewall-cmd --reload

这是输出。

[root@noufserver ~]# sudo firewall-cmd --zone=public --add-service=ftp --permanent
success
[root@noufserver ~]# sudo firewall-cmd --reload
success
[root@noufserver ~]#

使用以下命令重新启动 VSFTPD 以应用新更改。

[root@noufserver ~]# sudo systemctl restart vsftpd

第 3 步:创建 FTP 用户

FTP 服务器现在已准备好接收传入连接。 要连接到 FTP 服务,您需要在 AlmaLinux 服务器上创建一个新的 FTP 用户帐户。

要创建一个名为 testftpuser 的新帐户,请使用以下命令。

sudo useradd -m testftpuser

要为帐户设置密码,请使用以下命令,然后在提示符处输入所需的密码。

sudo passwd testftpuser

这是输出。

[root@noufserver ~]# sudo useradd -m testftpuser
[root@noufserver ~]# sudo passwd testftpuser
Changing password for user testftpuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

要验证 FTP 服务是否正常工作,您需要在创建的用户的主目录中存储一个文件。 当您登录 FTP 时,该文件应该是可见的。

使用以下命令创建文件。

[root@noufserver ~]# sudo bash -c "echo TO CHECK WORKING OF FTP > /home/testftpuser/FTP_CHECK"

第 4 步:通过命令行连接到 FTP 服务器

使用以下命令安装 FTP 命令行实用程序。

sudo dnf install ftp

这是输出。

[root@noufserver ~]# sudo dnf install ftp
Last metadata expiration check: 0:36:08 ago on Sun 20 Feb 2022 04:57:08 AM UTC.
Dependencies resolved.
=========================================================================================================================================================================
 Package                             Architecture                           Version                                      Repository                                 Size
=========================================================================================================================================================================
Installing:
 ftp                                 x86_64                                 0.17-78.el8                                  appstream                                  70 k
Transaction Summary
=========================================================================================================================================================================
Install  1 Package
Total download size: 70 k
Installed size: 112 k
Is this ok [y/N]: y
Downloading Packages:
ftp-0.17-78.el8.x86_64.rpm                                                                                                               617 kB/s |  70 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    419 kB/s |  70 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                 1/1 
  Installing       : ftp-0.17-78.el8.x86_64                                                                                                                          1/1 
  Running scriptlet: ftp-0.17-78.el8.x86_64                                                                                                                          1/1 
  Verifying        : ftp-0.17-78.el8.x86_64                                                                                                                          1/1 
Installed:
  ftp-0.17-78.el8.x86_64                                                                                                                                                 
Complete!
[root@noufserver ~]#

您现在可以使用您的 IP 地址或主机名连接到 FTP 服务器。

要从命令行连接 FTP 并验证一切正常,您需要打开一个终端并使用 ftp 命令连接到环回 IP 地址 (127.0.0.1)。

这是命令语法和输出。

[root@noufserver ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): testftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls 
227 Entering Passive Mode (127,0,0,1,231,235).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              24 Feb 20 05:31 FTP_CHECK
226 Directory send OK.
ftp> quit
221 Goodbye.
[root@noufserver ~]#

第 5 步:通过 GNOME GUI 连接到 FTP 服务器

如果您想通过图形用户界面 (GUI) 连接 FTP 服务器,您可以使用任何 FTP 客户端,例如 FileZilla 或 AlmaLinux 上的 GNOME 桌面。 GNOME 桌面能够从文件管理器连接到 FTP 服务器。

您可以按照以下步骤在 AlmaLinux 上通过 GNOME GUI 连接 FTP:

1. 打开 文件管理器 从活动菜单。

2. 点击 其他地点 并输入 ftp://127.0.0.1 在窗口底部的连接到服务器框中。 点击 连接 按钮。

3. Enter 之前创建的 FTP 帐户的凭据,然后单击 连接 按钮。

4. 连接后,您可以找到并使用之前创建的测试文件以确保正常运行。

第 6 步:通过 OpenSSH 设置 SFTP 服务器

OpenSSH 是一套基于 Secure Shell 协议的安全网络实用程序,可通过不安全的网络提供安全连接。 如果在 AlmaLinux 上已经安装并启用了 OpenSSH,您不需要任何额外的软件来运行 SFTP 服务器。

如果服务器上尚未安装 OpenSSH,请使用以下命令安装它。

sudo dnf install openssh-server openssh-clients

这是输出。

[root@noufserver ~]# sudo dnf install openssh-server openssh-clients
Last metadata expiration check: 0:00:49 ago on Sun 20 Feb 2022 09:59:23 AM UTC.
Dependencies resolved.
=========================================================================================================================================================================
 Package                                      Architecture                        Version                                      Repository                           Size
=========================================================================================================================================================================
Installing:
 openssh-clients                              x86_64                              8.0p1-10.el8                                 baseos                              667 k
 openssh-server                               x86_64                              8.0p1-10.el8                                 baseos                              484 k
Transaction Summary
=========================================================================================================================================================================
Install  2 Packages
Total download size: 1.1 M
Installed size: 3.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): openssh-server-8.0p1-10.el8.x86_64.rpm                                                                                            2.8 MB/s | 484 kB     00:00    
(2/2): openssh-clients-8.0p1-10.el8.x86_64.rpm                                                                                           3.5 MB/s | 667 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    5.1 MB/s | 1.1 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                 1/1 
  Running scriptlet: openssh-server-8.0p1-10.el8.x86_64                                                                                                              1/2 
  Installing       : openssh-server-8.0p1-10.el8.x86_64                                                                                                              1/2 
  Running scriptlet: openssh-server-8.0p1-10.el8.x86_64                                                                                                              1/2 
  Installing       : openssh-clients-8.0p1-10.el8.x86_64                                                                                                             2/2 
  Running scriptlet: openssh-clients-8.0p1-10.el8.x86_64                                                                                                             2/2 
  Verifying        : openssh-clients-8.0p1-10.el8.x86_64                                                                                                             1/2 
  Verifying        : openssh-server-8.0p1-10.el8.x86_64                                                                                                              2/2 
Installed:
openssh-clients-8.0p1-10.el8.x86_64                                                 openssh-server-8.0p1-10.el8.x86_64                                                
Complete!
[root@noufserver ~]#

安装 OpenSSH 后,您需要对 SSHD 配置文件进行一些更改。 使用 vi 或您喜欢的文本编辑器打开文件。

[root@noufserver ~]# sudo vi /etc/ssh/sshd_config

在配置文件的底部添加以下 5 行。

Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

这些行允许 sftp 组中的用户通过 SFTP 访问他们的主目录,并拒绝用户进行正常的 SSH 访问,因此他们永远无法访问 shell。

Save 和 close 配置文件。

重新启动 SSH 服务,使新的更改生效。

[root@noufserver ~]# sudo systemctl restart sshd

默认情况下,Firewalld(AlmaLinux 的默认防火墙)将阻止 SFTP/SSH 流量。 但是,您可以使用以下命令创建例外以允许流量。

sudo firewall-cmd --zone=public --add-service=ssh --permanent

sudo firewall-cmd --reload

这是输出。

[root@noufserver ~]# sudo firewall-cmd --zone=public --add-service=ssh --permanent
success
[root@noufserver ~]# sudo firewall-cmd --reload
success

第 7 步:创建 SFTP 用户帐户

如果您希望向任何人授予 SFTP 访问权限,您可以为他们创建 SSH 用户帐户。

创建一个新的用户组。 对于本教程,该组称为 sftpgroup。 所有 SFTP 用户都需要属于该组。

[root@noufserver ~]# sudo groupadd sftpgroup

接下来,创建一个新用户。 本教程的用户是 sftpuser,将被添加到 sftpgroup 组中。

[root@noufserver ~]# sudo useradd -m sftpuser -g sftpgroup

为新创建的用户设置密码。

sudo passwd sftpuser

这是输出。

[root@noufserver ~]# sudo passwd sftpuser
Changing password for user sftpuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

要授予用户对其主目录的完全访问权限并拒绝系统上所有其他用户对该目录的访问权限,请运行以下命令。

sudo chmod 700 /home/sftpuser/

这是输出。

[root@noufserver ~]# sudo chmod 700 /home/sftpuser/
[root@noufserver ~]# ls -ld /home/sftpuser/
drwx------. 3 sftpuser sftpgroup 78 Feb 20 09:45 /home/sftpuser/
[root@noufserver ~]#

第 8 步:通过命令行连接到 SFTP 服务器

您可以使用系统的主机名或 IP 地址通过命令行连接到 SFTP 服务器。

要从同一系统测试 SFTP,您需要打开终端会话并使用 sftp 命令连接到环回 IP 地址 127.0.0.1。

sftp [email protected]

这是输出。

[root@noufserver ~]# sftp [email protected]
[email protected]'s password: 
Connected to [email protected].
sftp>

在用户的主目录 /home/sftpuser 中,创建一个新目录以确认一切正常。

这是输出。

sftp> pwd
Remote working directory: /home/sftpuser
sftp> 
sftp> mkdir sftp-check
sftp> ls 
sftp-check  
sftp>

第 9 步:通过 GNOME GUI 连接到 SFTP 服务器

如果您想通过 GUI 连接 SFTP 服务器,您可以使用任何 FTP 客户端,如 FileZilla 或 AlmaLinux 上的默认 GNOME 桌面。 GNOME 桌面能够从文件管理器连接到 SFTP 服务器。 您可以按照以下步骤通过 AlmaLinux 上的 GNOME 桌面连接 SFTP:

1. 打开 文件管理器 从活动菜单。

2. 点击 其他地点 并输入 ftp://127.0.0.1 在窗口底部的连接到服务器框中。 点击 连接 按钮。

3. Enter 我们之前创建的 FTP 帐户的凭据,然后单击 连接 按钮。

4. 连接后,您可以打开您的主目录,您可以在其中上传和下载文件。

总结

AlmaLinux 是 CloudLinux 自己的开源操作系统。 它是 CentOS 的替代品,提供社区运营和管理的操作系统。 AlmaLinux 还为 Linux 用户提供了与 CentOS Stream 稳定版本兼容的免许可升级路径。

如果您正在寻找在 Almalinux 上创建 FTP 服务器和帐户的服务器,Liquid Web 可以满足您的需求。 我们提供专用服务器和托管 VPS 托管选项。 此外,我们技术娴熟的团队提供 24/7/365 全天候支持和监控服务,让您可以专注于您的网站。 立即联系我们的团队以了解更多信息。