在RHEL / CentOS 7上使用TLS / SSL协议保护ProFTPD连接

本教程将指导您如何在CentOS / RHEL 7中的ProFTPd服务器上安全和加密FTP通信,使用TLS(传输层安全)与

就其本质而言FTP协议被设计成一个不安全的协议,所有的数据和密码以明文形式传输,使得第三方很容易就可以截获所有的FTP客户端-服务器的事务,尤其是在验证过程中使用的用户名和密码的工作。

在CentOS中在Proftpd上启用SSL

在RHEL / CentOS中在Proftpd上启用SSL

要求

  1. 在RHEL / CentOS 7上安装ProFTPD服务器
  2. 在RHEL / CentOS 7中为Proftpd服务器启用匿名帐户

本教程将指导你如何可以保护和加密在CentOS的 / RHEL 7 ProFTPd的服务器上的FTP通信,使用TLS(传输层安全)与明确FTPS扩展名(在思考作为FTPS HTTPS什么是HTTP协议)。

第1步:创建Proftpd TLS模块配置文件

1.在以前的教程proftpd的关于匿名帐户的讨论,该指南也将使用在管理proftpd的未来配置文件作为模块,与enabled_moddisabled_mod目录的帮助下,这将承载所有服务器的扩展能力相同的方法。

因此,创建一个具有disabled_mod proftpd的道路命名为tls.conf你最喜欢的文本编辑器的新文件,并添加以下指令。

# nano /etc/proftpd/disabled_mod/tls.conf

添加以下TLS文件配置摘录。

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key
#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>
创建Proftpd TLS配置

创建TLS配置

2.如果使用不支持TLS连接,为了让TLS和非TLS连接的同时,避免了错误信息,如下面的截图注释行TLSRequired上的浏览器或FTP客户端。

允许安全Proftpd连接

允许TLS连接

第2步:为TLS创建SSL证书文件

3.您所创建的TLS模块的配置文件后。 这将使通过TLS FTP上proftpd的,你需要生成SSL证书和密钥,以便在服务器ProFTPD服务器使用与OpenSSL软件包的帮助下安全通信。

# yum install openssl

您可以使用单个长命令来生成SSL证书和密钥对,但是为了简化操作,您可以创建一个简单的bash脚本,以生成具有所需名称的SSL对,并为Key文件分配正确的权限。

创建的/ usr / local / bin目录名为proftpd_gen_ssl bash的文件/或任何其他可执行的系统路径(由$ PATH变量定义)上。

# nano /usr/local/bin/proftpd_gen_ssl

向其中添加以下内容。

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
openssl req -x509 -newkey rsa:1024 \
-keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
-nodes -days 365\
chmod 0600 /etc/ssl/private/$name.key
创建Proftpd SSL证书

创建SSL证书

4.您已经创建了上述文件后,具有执行权限分配给它,确保在/ etc / SSL /私有目录中并运行脚本来创建SSL证书和密钥对。

# chmod +x /usr/local/bin/proftpd_gen_ssl
# mkdir -p /etc/ssl/private
# proftpd_gen_ssl
创建Proftpd SSL证书和密钥

创建Proftpd SSL证书和密钥

供应SSL证书所需的提示这是不言自明的信息,但要注意通用名 ,以配合您的主机完全合格域名 - FQDN。

第3步:在ProFTPD服务器上启用TLS

5.创建较早已经TLS的配置文件指向剩余权SSL证书和密钥文件的唯一事情就是通过创建tls.conf文件的符号链接 启用-MOD目录激活TLS模块重新启动 ProFTPD的守护进程,应用更改。

# ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
# systemctl restart proftpd
在Proftpd上启用TLS

在Proftpd上启用TLS

6.要禁用TLS模块只是删除从enabled_mod目录tls.conf符号链接,然后重新启动服务器的ProFTPD以应用更改。

# rm /etc/proftpd/enabled_mod/tls.conf
# systemctl restart proftpd

第4步:打开防火墙以允许FTP over TLS通信

7.为了让客户端访问ProFTPD的,安全的传输文件在被动模式下 ,你必须打开102465534在RHEL / CentOS的防火墙之间的整个端口范围,使用下面的命令。

# firewall-cmd --add-port=1024-65534/tcp  
# firewall-cmd --add-port=1024-65534/tcp --permanent
# firewall-cmd --list-ports
# firewall-cmd --list-services
# firewall-cmd --reload
允许Proftpd安全连接

允许Proftpd安全连接

而已。 现在您的系统已准备好从客户端通过TLS接受FTP通信。

第5步:通过TLS从客户端访问ProFTPD

8. Web浏览器通常有FTP通过TLS协议没有内置的支持,因此,所有的交易都在非加密的FTP交付。 其中最优秀的FTP客户端的FileZilla的是,这是完全开源的,可以运行在几乎所有主流操作系统。

从FileZilla中打开站点管理器访问FTP通过TLS,选择FTP 协议上并要求 加密下拉菜单中通过TLS明确的FTP,请选择登录类型正常 ,输入你的FTP凭据,并击中连接与服务器进行通信。

通过TLS访问ProFTPD

通过TLS访问ProFTPD

9.如果这是你第一次连接到服务器的ProFTPD弹出新证书应出现, 检查 ,说为将来的会话中始终信任证书,并打OK接受证书和认证的服务器ProFTPD服务器的框

接受ProFTPD证书

接受ProFTPD证书

Proftpd安全目录列表

Proftpd安全目录列表

如果您计划使用FileZilla以外的其他客户端安全地访问FTP资源,请确保它们支持FTP over TLS协议。 对于能说FTPS FTP客户端的一些很好的例子是WinSCP赋予的Windows平台的gftpLFTP(命令行)为NIX。