如何配置PureFTPd和FileZilla在CentOS 7.2上使用TLS会话

本文介绍如何配置PureFTPd在CentOS 7.2服务器上使用TLS会话。普通FTP是一个不安全的协议,因为所有密码...

本文介绍如何配置PureFTPd在CentOS 7.2服务器上接受TLS会话。 普通FTP是一种不安全的协议,因为所有密码和数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP更加安全。

1初步说明

您应该在您的CentOS 7.2服务器上安装一个工作的PureFTPd,例如本教程所示:CentOS 7.2上使用PureFTPd,MariaDB和虚拟用户(包括配额和带宽管理)的FTP服务器

2安装OpenSSL

TLS需要OpenSSL; 要安装OpenSSL,我们只需运行:

yum -y install openssl

3配置PureFTPd

打开/etc/pure-ftpd/pure-ftpd.conf ...

nano /etc/pure-ftpd/pure-ftpd.conf

如果要允许FTP TLS会话,请将TLS设置为1

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]

如果您只想接受TLS会话(无FTP),请将TLS设置为2

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      2
[...]

要不允许TLS(仅FTP),请将TLS设置为0

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      0
[...]

然后删除以下2行前面的#:

TLSCipherSuite           HIGH
CertFile                 /etc/ssl/private/pure-ftpd.pem

并保存更改后的配置文件。

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

国家名称(2个字母代码)[XX]: < - 输入您的国家名称(例如,“DE”)。
州或省名(全名)[]: < - 输入您的州或省名称。
地点名称(例如,城市)[默认城市]: < - 输入您的城市。
组织名称(如公司)[默认公司有限公司]: < - 输入您的组织名称(例如您公司的名称)。
组织单位名称(如部分)[]: < - 输入您的组织单位名称(例如“IT部门”)。
通用名称(例如,您的姓名或服务器的主机名)[]: < - 输入系统的完全限定域名(例如“server1.example.com”)。
电子邮件地址[]: < - 输入您的电子邮件地址。

更改SSL证书的权限:

chmod 600 /etc/ssl/private/pure-ftpd.pem

最后,重启PureFTPd:

systemctl restart pure-ftpd.service

而已。 您现在可以尝试使用FTP客户端连接; 但是,您应该将FTP客户端配置为使用TLS - 请参阅下一章如何使用FileZilla执行此操作。

5配置FileZilla for TLS

为了使用FTP与TLS,您需要一个支持TLS的FTP客户端,如FileZilla或Firefox FireFTP插件。

在FileZilla中,打开站点管理器:

FileZille  - 打开网站管理员。

选择使用带有TLS的PureFTPd的服务器; 在“ 服务器类型”下拉菜单中,选择“ 需要通过TLS显式FTP”,而不是普通的FTP

输入用户详细信息。

现在可以连接到服务器。 如果您是第一次执行此操作,则必须接受服务器的新SSL证书,因为我们在此使用自签名SSL证书:

接受SSL错误

如果一切顺利,您现在应该在服务器上登录:

使用TLS登录成功。