要求
在我们进一步转移,确保本文中的所有命令将被作为root运行或 sudo的特权帐户 。第1步:在Ubuntu上为FTP生成SSL / TLS证书
1.我们将开始下创建一个子目录: 在/ etc / SSL /存储 SSL / TLS证书和密钥文件,如果它不存在:$ sudo mkdir /etc/ssl/private2.现在让我们生成一个文件证书和密钥,通过运行下面的命令。
$ sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048上述命令将提示您回答以下问题,不要忘记输入适用于您的方案的值。
Country Name (2 letter code) [XX]:IN State or Province Name (full name) []:Lower Parel Locality Name (eg, city) [Default City]:Mumbai Organization Name (eg, company) [Default Company Ltd]:youcl.com Organizational Unit Name (eg, section) []:Linux and Open Source Common Name (eg, your name or your server's hostname) []:youcl Email Address []:admin@youcl.com
第2步:配置VSFTPD在Ubuntu上使用SSL / TLS
3.在我们进行任何配置 VSFTPD,为那些谁拥有 启用UFW防火墙 ,你需要打开 990和 40000-50000允许TLS连接和被动端口vsftpd的配置文件中分别设置的端口范围的端口:$ sudo ufw allow 990/tcp $ sudo ufw allow 40000:50000/tcp $ sudo ufw status4.现在,打开vsftpd的配置文件,定义它的SSL的详细信息:
$ sudo vi /etc/vsftpd/vsftpd.conf OR $ sudo nano /etc/vsftpd/vsftpd.conf然后,添加或找到选项
ssl_enable
并将其值设置为
YES来激活使用SSL,同样,因为TLS比SSL更加安全,我们将限制VSFTPD使用TLS来代替,通过启用
ssl_tlsv1
选项:
ssl_enable=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO5.接下来,注释掉下面使用的线
#
字符如下:
#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem #rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key然后,添加以下行以定义SSL证书和密钥文件的位置:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem6.现在,我们还必须防止匿名用户使用SSL,那么强制所有的非匿名登录使用进行数据传输安全的SSL连接和登录过程中发送的密码:
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES7.此外,我们可以使用下面的选项在FTP服务器添加更多的安全功能。 使用选项
require_ssl_reuse=YES
,要求所有的SSL数据连接呈现SSL会话重用;证明他们知道与控制信道相同的主秘密。所以,我们应该禁用它。
require_ssl_reuse=NO此外,我们可以设置VSFTPD将允许用于加密的SSL连接的SSL加密算法
ssl_ciphers
选项。这将有助于挫败攻击者的任何努力,试图强制一个特定的密码,他们可能发现的漏洞:
ssl_ciphers=HIGH8.然后,让我们定义的被动端口的端口范围(最小和最大端口)。
pasv_min_port=40000 pasv_max_port=500009.要启用SSL调试,这意味着OpenSSL的连接诊断记录到VSFTPD日志文件中,我们可以使用
debug_ssl
选项:
debug_ssl=YES最后保存文件并关闭它。然后重新启动VSFTPD服务:
$ systemctl restart vsftpd
第3步:在Ubuntu上使用SSL / TLS连接验证FTP
10.如果VSFTPD现在使用的SSL / TLS连接,试图执行所有上述配置,测试后 使用FTP命令行下面。 从下面的输出,有一个错误消息告诉我们VSFTPD只能允许用户(非匿名)从支持加密服务的安全客户端登录。$ ftp 192.168.56.10 Connected to 192.168.56.10 (192.168.56.10). 220 Welcome to youcl.com FTP service. Name (192.168.56.10:root) : ravi 530 Non-anonymous sessions must use encryption. Login failed. 421 Service not available, remote server has closed connection ftp>命令行不支持加密服务,因此导致上面的错误。因此,要安全地连接到启用了加密服务FTP服务器,我们需要一个默认支持SSL / TLS连接,如 FileZilla中一个FTP客户端。
第4步:在客户端上安装FileZilla以安全地连接FTP
FileZilla是一个功能强大,应用广泛的跨平台的FTP客户端,支持FTP通过SSL / TLS等。要在Linux客户端计算机上安装FileZilla,请使用以下命令。--------- On Debian/Ubuntu --------- $ sudo apt-get install filezilla --------- On CentOS/RHEL/Fedora --------- # yum install epel-release filezilla --------- On Fedora 22+ --------- $ sudo dnf install filezilla12.一旦安装完成后,打开它,并转到 文件=>站点管理器或(按 Ctrl + S)来获得下面的 站点管理器界面。
Filezilla站点管理器
Host: 192.168.56.10 Protocol: FTP – File Transfer Protocol Encryption: Require explicit FTP over #recommended Logon Type: Ask for password #recommended User: username
在Filezilla上配置新的FTP站点
验证FTP SSL证书
连接到Ubuntu FTP服务器
使用Filezilla进行安全FTP文件传输