现在的位置: 首页运维|APPServer, 运维|安全>正文
FTP配置SSL加密连接
发表于340 天前 运维|APPServer, 运维|安全 暂无评论 ⁄ 被围观 +

FTP的密码和传输内容都是以明文形式发送的,非常不安全,所以在传输机密内容时使用tls连接是非常必要的。
一、在vsftpd中的配置
1.将ftp的证书复制到系统相应的位置

# cp ftp.crt /etc/pki/tls/certs/ftp.crt
# cp ftp.key /etc/pki/tls/private/ftp.key

2.修改vsftpd的配置文件中加入以下三行:

# vi /etc/vsftpd/vsftpd.conf

ssl_enable=YES
rsa_cert_file=/etc/pki/tls/certs/ftp.crt
rsa_private_key_file=/etc/pki/tls/private/ftp.key

#如果想开启了匿名用户,而且也要强制其使用tls/ssl通信的话,可以加上以下三行

allow_anon_ssl=YES
force_anon_data_ssl=YES
force_anon_logins_ssl=YES

3.如果启用防火墙(iptables),还需要加载”ip_nat_ftp”,否则内网用户在使用tls通讯时会被防火墙拦截。

# vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp"

#发现一个新问题,有的机器加载了ip_nat_ftp之后还是无法和数据端口通信,于是我指定了ftp被动端口的范围,并在防火墙上打开了;

# vi /etc/vsftpd/vsftpd.conf

#指定被动端口的范围:

pasv_min_port=60001
pasv_max_port=60010

#插入一条命令

# iptables -I RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --sport 1024: --dport 60001:60010 -j ACCEPT

#保存

# service iptables save

重启iptables或者直接加载模块

# service iptables restart
# modprobe ip_nat_ftp

二、在Pure-ftpd中的配置
编译的时候记得加上tls的选项

# cat ftp.key >> /etc/pki/tls/certs/pure-ftpd.pem
# cat ftp.crt >> /etc/pki/tls/certs/pure-ftpd.pem

# ./configure --with-tls --with-certfile=/etc/pki/tls/certs/pure-ftpd.pem
# cp ../configration-file/pure-ftpd.conf /usr/local/etc/
# cp ../configration-file/pure-config.pl /usr/local/sbin/
# chmod 755 /usr/local/sbin/pure-config.pl
# echo -e "TLS\t2" >> /usr/local/etc/pure-ftpd.conf
# pure-config.pl /usr/local/etc/pure-ftpd.conf

注:pure-ftpd.pem包含了私钥与公钥。

三、客户端的配置
以上两种配置都是强制使用tls连接的,在FTP客户端中必须选择以tls方式连接,连接后客户端会提示安装公钥,接受后就可以连接上ftp服务器了。

给我留言


/ 快捷键:Ctrl+Enter
不想听你唠叨×