如何配置PureFTPd在CentOS 7上使用TLS会话
本文介绍如何配置PureFTPd以在CentOS 7服务器上接受TLS会话。 普通FTP是一种不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP更加安全。
1初步说明
您应该在CentOS 7服务器上安装一个工作的PureFTPd,例如本教程所示: 使用PureFTPd和MySQL进行虚拟托管(包括配额和带宽管理)在CentOS 7上 。
2安装OpenSSL
TLS需要OpenSSL; 要安装OpenSSL,我们只需运行:
yum 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中,打开站点管理器:
选择使用带有TLS的PureFTPd的服务器; 在“ 服务器类型”
下拉菜单中,选择“ 需要通过TLS显式FTP”,而不是普通的FTP
:
现在可以连接到服务器。 如果您是第一次这样做,则必须接受服务器的新SSL证书:
如果一切顺利,您现在应该在服务器上登录:
6链接
- PureFTPd: http : //www.pureftpd.org/
- FileZilla: http : //filezilla-project.org/
- CentOS: http : //www.centos.org/