0
点赞
收藏
分享

微信扫一扫

Vsftp 与SSL协作部署更加安全的FTP服务器

一、说明

        在上一篇​​​VSFTP服务器搭建及安全性配置​​​中介绍了Linux下VSFTP的配置,在本篇文章中,将Vsftpd及ssl两者相结合以便部署更加安全的FTP服务器,主要解决VSFTP部署在互联网时的数据安全传输的问题。FTP与SSL相结合时,有TLS/SSL 显示加密以及TLS/SSL隐式加密两种方式。TLS/SSL显示加密时,服务端使用的21号端口,客户端先与服务端建立FTP控制连接,然后客户端再以AUTH TLS或者AUTH SSL命令显式地告诉服务器端来初始化相应的安全连接,此时我发现客户端主动模式是连接不上的,要将被动模式取消。TLS/SSL隐式加密时,客户端直接与服务端自动完成SSL安全连接,客户端向服务端的990端口发起请求,服务端要手工设置端口。

二、修改vsftpd.conf文件以支持SSL

[root@localhost vsftpd]# egrep -v '^#'
vsftpd.conf

anonymous_enable=YES

anon_umask=022

local_enable=YES

local_root=/var/www/html

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

dual_log_enable=YES

xferlog_file=/var/log/xferlog

vsftpd_log_file=/var/log/vsftpdlogfile

log_ftp_protocol=yes

xferlog_std_format=YES

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

allow_writeable_chroot=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

#下面为支持SSL增加的部分

ssl_enable=yes

ssl_tlsv1=yes

ssl_sslv2=NO

ssl_sslv3=NO

require_ssl_reuse=NO

force_local_logins_ssl=yes

force_local_data_ssl=yes

rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.perm    #证书文件存储位置

三、使用openssl生成证书文件

[root@localhost .sslkey]# openssl req -new
-x509 -nodes -out vsftpd.perm -keyout vsftpd.perm

Vsftp 与SSL协作部署更加安全的FTP服务器_FTP服务器

四、重启vsftpd服务,使用TLS/SSL显示加密连接服务器

1、客户端选择WinSCP工具,选择FTP协议,加密方式为TLS/SSL显示加密,输入账号密码

Vsftp 与SSL协作部署更加安全的FTP服务器_vsftpd.conf_02

2、点击“高级”,在“连接”菜单中去掉“被动模式”勾选

Vsftp 与SSL协作部署更加安全的FTP服务器_vsftpd.conf_03

3、确定后进行连接,看到如下的提示信息,根据提示下一步即可

Vsftp 与SSL协作部署更加安全的FTP服务器_vsftpd.conf_04

4、抓包看一下报文,可以看到内容已经被加密,FTP控制连接建立起来后,客户端使用AUTH TLS命令请求服务端进行TLS加密,如下:

Vsftp 与SSL协作部署更加安全的FTP服务器_vsftpd.conf_05

五、修改配置,使FTP服务器支持TLS/SSL隐式加密 传输

1、修改配置

ssl_enable=yes

ssl_tlsv1=yes

ssl_sslv2=NO

ssl_sslv3=NO

implicit_ssl=yes     #支持隐式SSL

listen_port=990    #客户端使用隐式TLS/SSL加密传输时,默认向服务器的990端口发起访问

require_ssl_reuse=NO

force_local_logins_ssl=yes

force_local_data_ssl=yes

rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.perm

2、重启服务器vsftpd服务,然后检查端口990是否正常监听,注意防火墙是否放行该端口

Vsftp 与SSL协作部署更加安全的FTP服务器_FTP服务器_06

3、使用WinSCP客户端进行连接,不用关闭FTP的被动模式

Vsftp 与SSL协作部署更加安全的FTP服务器_TLS/SS_07

4、抓包看一下交互过程,在整个过程中不能直接抓取到FTP的协议及报文,直接被TLSV1.2取代,客户端直接与服务端完成安全连接的建立,如下图所示:

Vsftp 与SSL协作部署更加安全的FTP服务器_TLS/SS_08

六、总结

       本文与前一篇博客共同构成了完整的VSFTP的安全配置,包括VSFTP自身的安全配置,如用户、权限、chroot、匿名用户等,同时说明了SSL与VSFTP协作时可以解决的安全传输的问题,共同解决了FTP安全的机密性、完整性、日志审计等问题。

举报

相关推荐

0 条评论