Linux Study Lab !

当前位置:   网站首页 >> Linux 应用实践

vsftpd SSL加密连接设置

前一篇讲到vsftpd的配置文章提到使用虚拟用户提高安全性,本篇文章将继续提升服务端安全性,使用服务器自建证书对ftp原本的明文数据传输进行加密。需要使用vsftpd的朋友可以参考本篇内容,但我个人还是建议大家使用SFTP,系统自带的ssh以包含此功能。

接上篇文章,首先检查系统内是否安装有openssl,如没有请yum install 一下,默认系统即使最小化安装都包含该组件。输入命令:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

以创建一个私有证书,需要注意的是创建证书时系统需要你提供必要信息:

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:shanghai
Locality Name (eg, city) [Default City]:shanghai
Organization Name (eg, company) [Default Company Ltd]:microhard
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:192.168.1.1
Email Address []:[email protected]

注意Common Name要输入本机机器名或本机IP地址,其他按各自实际情况填写。

接下来修改vsftp.conf文件,在之前的配置后主要新增ssl段,下方的示例配置文件为完整配置文件,可直接拿去进行测试。(在进行生产环境应用前,请按需调整配置文件内容)

anonymous_enable=NO
local_enable=YES
#write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=600
#data_connection_timeout=120

chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=NO
listen_ipv6=YES

#pam_service_name=vsftpd
pam_service_name=vsftpd.virtual
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
hide_ids=YES
allow_writeable_chroot=YES
#以下为新增配置
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES

allow_anon_ssl=NO
force_anon_logins_ssl=YES
force_anon_data_ssl=YES

ssl_tlsv1=YES
ssl_ciphers=HIGH 
rsa_cert_file=/etc/vsftpd/vsftpd.pem 
#以上为新增配置
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100

guest_enable=YES
guest_username=vftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/vftp/$USER
user_config_dir=/etc/vsftpd/vftpuser_conf

本例中使用的测试客户端为FlashFXP 5,在连接类型处,请更改原来的FTP类型为FTP using explicit SSL (auth TLS) ;自动,即可。其他包括端口与登录类型保持原先的内容。如测试连接不成功,强烈建议使用示例文件测试一次,以判断是防火墙端口问题还是vsftpd配置问题或是selinux问题。


特别注意!如服务器位于硬件防火墙后,防火墙NAT端口不为默认的21端口时,部分厂商的防火墙在伪装转发入站SSL请求后,出站时可能会因为默认NAT策略导致返回加密错误信息给客户端并终止连接。当客户端报错加密类的错误时,应首先检查防火墙NAT条目的配置是否存在问题,以及NAT类型、级别是否存在问题。


发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项