本页内容

  • 第 1 步 - 更新并升级软件包
  • 第 2 步 - 安装 ProFTPD
  • 第 3 步 - 配置 ProFTPD
  • 第 4 步 - 配置 SSL/TLS
  • 第 5 步 - 创建 FTP 用户
  • 第 6 步 - 测试
  • 参考

FTP(文件传输协议)可能是向服务器上传文件最常用的方法。ProFTPD 是一款广受欢迎且易于配置的 FTP 服务器,适用于类 Unix 系统,并支持 SSL/TLS 加密。

本教程将介绍如何在 FreeBSD 12.0 上使用 ProFTPD 服务器程序搭建 FTP 服务器。我们将安装 ProFTPD 服务器,通过 SSL/TLS 安全机制完成部署与加固,并创建 FTP 用户。

先决条件

本指南将使用 FreeBSD 操作系统,服务器配置为 1 GB 内存和 2 个 CPU。

我们将完成以下操作:

  • 更新并升级软件包
  • 安装 ProFTPD
  • 配置 ProFTPD
  • 配置 SSL/TLS
  • 创建 FTP 用户
  • 测试

第 1 步 - 更新并升级软件包

首先,我们将使用 FreeBSD 的 pkg 软件包管理工具更新软件包仓库,并将所有软件包升级到最新版本。

使用以下命令更新所有可用仓库并将所有软件包升级到最新版本。

pkg update
pkg upgrade

所有安装完成后,进入下一步并安装 ProFTPD 软件包。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

第 2 步 - 安装 ProFTPD

在本步骤中,我们将安装 ProFTPD 软件包。FreeBSD 仓库提供了 ProFTPD 软件包以及用于后端数据库的其他模块,例如面向 MySQL、PostgreSQL 和 SQLite 数据库的模块。

使用以下命令查看所有可用的 ProFTPD 软件包。

pkg search proftpd

您将看到如下所示的结果。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

现在仅使用下面的 pkg 命令安装 ProFTPD 软件包。

pkg install proftpd

安装完成后,将 ProFTPD 服务添加到系统开机启动项。

sysrc proftpd_enable=yes

然后启动 ProFTPD 服务并查看其状态。

service proftpd start
service proftpd status

现在你应看到 ProFTPD 服务已在 FreeBSD 12.0 系统上启动并运行。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

默认情况下,该服务使用默认的 FTP 端口 '21'。使用以下 sockstat 命令查看系统上已开放的端口。

sockstat -4 -l -P tcp

你将看到 ProFTPD 服务正在端口 '21' 上运行。

第 3 步 - 配置 ProFTPD

现在我们将通过编辑位于 '/usr/local/etc' 目录中的配置文件来配置 ProFTPD 安装。

进入 '/usr/local/etc' 目录,并使用 vim 编辑器修改配置文件 'proftpd.conf'。

cd /usr/local/etc/
vim proftpd.conf

将 'ServerName' 修改为你的信息,并将端口保持为默认的 '21'。

ServerName    "Hakase-Labs ProFTPd Server"
Port          21

关闭 IPv6 支持,并为每个用户启用 jail 限制。

UseIPv6       off
DefaultRoot   ~

如需额外配置,可添加以下配置以隐藏服务器身份,并取消对用户登录所需有效 shell 的限制。

# Hide Server Identity
ServerIdent   off
RequireValidShell  no

现在为 ProFTPD 系统及系统上的每次传输启用日志。

# Setup Log Files
TransferLog   /var/log/proftpd/xferlog
SystemLog     /var/log/proftpd/proftpd.log

保存并退出。

接下来,创建 ProFTPD 日志目录 '/var/log/proftpd'。

mkdir -p /var/log/proftpd

然后使用以下命令重启 ProFTPD 服务。

service proftpd restart

至此,ProFTPD 服务已重启,并已基于基本配置正常运行。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

第 4 步 - 配置 SSL/TLS

在本步骤中,我们将通过为 ProFTPD 服务器启用 TLS 模块来加固 ProFTPD 部署。我们将启用 mod_tls 模块,然后向 ProFTPD 配置目录添加额外的 TLS 配置。

在继续之前,请确保你已获取 SSL 证书,然后将证书文件复制到 '/usr/local/etc/ssl' 目录。

cp /pat/to/ssl/*.pem /usr/local/etc/ssl/

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

随后,进入 '/usr/local/etc' 目录,并使用 vim 编辑器修改 ProFTPD 配置文件 'proftpd.conf'。

cd /usr/local/etc/
vim proftpd.conf

将以下 'Include' 配置添加到文件末尾。

Include /usr/local/etc/proftpd/tls.conf

保存并退出。

接下来,在 '/usr/local/etc/proftpd/' 目录中创建 'tls.conf' 配置文件。

vim proftpd/tls.conf

将相关内容替换为你自己的信息,并将配置粘贴到该文件中。

# Load the TLS Module
LoadModule mod_tls.c
# Define the SSL/TLS Configuration
<IfModule mod_tls.c>
TLSEngine                   on
TLSRSACertificateFile       /usr/local/etc/ssl/fullchain.pem
TLSRSACertificateKeyFile    /usr/local/etc/ssl/privkey.pem
TLSLog                      /var/log/proftpd/tls.log
TLSProtocol                 TLSv1.2
TLSRequired on
TLSVerifyClient             off
</IfModule>

保存并退出。

现在使用以下命令重启 ProFTPD 服务。

service proftpd restart

至此,ProFTPD 服务已在启用 SSL/TLS 的情况下正常运行,你可以通过 FTP 安全地向服务器传输文件。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

第 5 步 - 创建 FTP 用户

在本步骤中,我们将创建一个新 FTP 用户。我们将创建一个带有主目录和密码的新系统用户,但不允许其通过 shell 登录。

创建一个名为 'hakase' 的新用户,其主目录为 '/home/hakase',默认 shell 为 'nologin'。

运行以下命令。

adduser

现在按如下内容输入各项信息。

Username: hakase
Full name: Hakase Labs
Uid (Leave empty for default): 
Login group [hakase]: 
Login group is hakase. Invite hakase into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh bash rbash nologin) [sh]: nologin
Home directory [/home/hakase]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: no
Use a random password? (yes/no) [no]: no
Enter password: 
Enter password again: 
Lock out the account after creation? [no]: 
Username   : hakase
Password   : *****
Full Name  : Hakase Labs
Uid        : 1001
Class      : 
Groups     : hakase 
Home       : /home/hakase
Home Mode  : 
Shell      : /usr/sbin/nologin
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (hakase) to the user database.
Add another user? (yes/no): no
Goodbye!

至此,新的 FTP 用户 'hakase' 已创建完成。

第 6 步 - 测试

本步骤将使用 'FileZilla' 软件测试我们的 ProFTPD 安装。该软件可安装在 Mac、Windows 和 Linux 操作系统上。

打开 FileZilla 应用程序,输入服务器地址、用户名、密码以及 FTP 端口 '21'。

现在点击 'Quickconnect'(快速连接)按钮,系统将提示你验证 SSL/TLS 证书。

点击 'Ok'(确定)以验证服务器证书。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

至此,你将成功连接到 ProFTPD 服务器,并可在已启用 SSL/TLS 的 ProFTPD 服务器上安全地传输文件。

在 FreeBSD 上安装与配置 ProFTPD 文件传输服务

至此,FreeBSD 上 ProFTPD 服务器的安装与配置已成功完成。

参考

  • https://www.freebsd.org/doc/
  • http://www.proftpd.org/docs/