本页内容
- 1 预备说明
- 2 安装 OpenSSL
- 3 配置 PureFTPd
- 4 创建用于 TLS 的 SSL 证书
- 5 配置 FileZilla 以支持 TLS
- 6 相关链接
FTP 是一种非常不安全的协议,因为所有密码和所有数据都是以明文方式传输的。通过使用 TLS,整个通信过程都可以被加密,从而使 FTP 变得更加安全。本文介绍如何在 Debian 服务器上配置 PureFTPd 以接受 TLS 会话。本教程兼容至 Debian 12(Bookworm)的所有 Debian 版本。
1 预备说明
你应该在 Debian 服务器上已经搭建好可用的 PureFTPd,例如本教程所示:Virtual Hosting With PureFTPd And MySQL(Incl. Quota And Bandwidth Management)On Debian Lenny(在 Debian Lenny 上使用 PureFTPd 与 MySQL 搭建虚拟主机,含配额与带宽管理)。
2 安装 OpenSSL
TLS 需要 OpenSSL;要安装 OpenSSL,我们只需运行:
apt install openssl
3 配置 PureFTPd
如果你希望同时允许 FTP 和 TLS 会话,运行
echo 1 > /etc/pure-ftpd/conf/TLS
如果你只希望接受 TLS 会话(不接受 FTP),运行
echo 2 > /etc/pure-ftpd/conf/TLS
代替。
如果完全不允许 TLS(仅允许 FTP),可以删除 /etc/pure-ftpd/conf/TLS,或者运行
echo 0 > /etc/pure-ftpd/conf/TLS
4 创建用于 TLS 的 SSL 证书
为了使用 TLS,我们必须创建一个 SSL 证书。我将其创建在 /etc/ssl/private/ 目录下,因此先创建该目录:
mkdir -p /etc/ssl/private/
之后,我们可以按如下方式生成 SSL 证书:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [AU]: <-- 输入你的国家名称(例如 "DE")。State or Province Name (full name) [Some-State]: <-- 输入你的省/州名称。Locality Name (eg, city) []: <-- 输入你的城市。Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- 输入你的组织名称(例如你的公司名称)。Organizational Unit Name (eg, section) []: <-- 输入你的部门名称(例如 "IT Department")。Common Name (eg, YOUR name) []: <-- 输入系统的完全限定域名(例如 "server1.example.com")。Email Address []: <-- 输入你的电子邮件地址。
修改 SSL 证书的权限:
chmod 600 /etc/ssl/private/pure-ftpd.pem
最后重启 PureFTPd:
service pure-ftpd-mysql restart
这样就完成了。你现在可以尝试使用 FTP 客户端进行连接;不过,你应该将 FTP 客户端配置为使用 TLS——下一章将介绍如何在 FileZilla 中完成此操作。
5 配置 FileZilla 以支持 TLS
要使用支持 TLS 的 FTP,你需要一个支持 TLS 的 FTP 客户端,例如 FileZilla。
在 FileZilla 中,打开站点管理器(Server Manager):

选择使用 PureFTPd 并启用 TLS 的服务器;在“服务器类型”下拉菜单中,选择 FTPES 而不是普通 FTP:

现在你可以连接到服务器了。如果你是第一次连接,必须接受服务器的新 SSL 证书:

如果一切顺利,你现在应该已经登录到服务器:

6 相关链接
- PureFTPd:http://www.pureftpd.org/
- FileZilla:http://filezilla-project.org/
- Debian:http://www.debian.org/