就其本质而言FTP协议被设计成一个不安全的协议,所有的数据和密码以明文形式传输,使得第三方很容易就可以截获所有的FTP客户端-服务器的事务,尤其是在验证过程中使用的用户名和密码的工作。
在RHEL / CentOS中在Proftpd上启用SSL
要求
本教程将指导你如何可以保护和加密在CentOS的 / RHEL 7 ProFTPd的服务器上的FTP通信,使用TLS(传输层安全)与明确FTPS扩展名(在思考作为FTPS HTTPS什么是HTTP协议)。
第1步:创建Proftpd TLS模块配置文件
1.在以前的教程proftpd的关于匿名帐户的讨论,该指南也将使用在管理proftpd的未来配置文件作为模块,与enabled_mod和disabled_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>
创建TLS配置
2.如果使用不支持TLS连接,为了让TLS和非TLS连接的同时,避免了错误信息,如下面的截图注释行TLSRequired上的浏览器或FTP客户端。
允许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
创建SSL证书
4.您已经创建了上述文件后,具有执行权限分配给它,确保在/ etc / SSL /私有目录中并运行脚本来创建SSL证书和密钥对。
# chmod +x /usr/local/bin/proftpd_gen_ssl # mkdir -p /etc/ssl/private # proftpd_gen_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
6.要禁用TLS模块只是删除从enabled_mod目录tls.conf符号链接,然后重新启动服务器的ProFTPD以应用更改。
# rm /etc/proftpd/enabled_mod/tls.conf # systemctl restart proftpd
第4步:打开防火墙以允许FTP over TLS通信
7.为了让客户端访问ProFTPD的,安全的传输文件在被动模式下 ,你必须打开1024和65534在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安全连接
而已。 现在您的系统已准备好从客户端通过TLS接受FTP通信。
第5步:通过TLS从客户端访问ProFTPD
8. Web浏览器通常有FTP通过TLS协议没有内置的支持,因此,所有的交易都在非加密的FTP交付。 其中最优秀的FTP客户端的FileZilla的是,这是完全开源的,可以运行在几乎所有主流操作系统。
从FileZilla中打开站点管理器访问FTP通过TLS,选择FTP 协议上并要求 加密下拉菜单中通过TLS明确的FTP,请选择登录类型为正常 ,输入你的FTP凭据,并击中连接与服务器进行通信。
通过TLS访问ProFTPD
9.如果这是你第一次连接到服务器的ProFTPD弹出新证书应出现, 检查 ,说为将来的会话中始终信任证书,并打OK接受证书和认证的服务器ProFTPD服务器的框 。
接受ProFTPD证书
Proftpd安全目录列表
如果您计划使用FileZilla以外的其他客户端安全地访问FTP资源,请确保它们支持FTP over TLS协议。 对于能说FTPS FTP客户端的一些很好的例子是WinSCP赋予的Windows平台的gftp或LFTP(命令行)为NIX。