通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

注:
通过笔者”FTP服务器工作原理及如何通过PAM认证实现虚拟用户登录“博文,我们了解到FTP是一种文件共享协议,而且使用的是明文传输机制,所以在互联网上传输用户和密码是不安全的,所以要采用SSL/TLS加密算法提供密文传输机制,来保证用户和密码在传输过程的安全性。
相关理论知识在这就不再阐述,想了解的博友可以到“
FTP理论”了解FTP相关知识及简单配置。

下面博文主要介绍基于SSL/TLS通过openssl工具实现FTP+SSL/TLS实现安全传输机制 要实现 SSL/TLS功能,必须安装mod_ssl模块,所以需要事先安装mod_ssl及利用openssl工具创建私有CA,笔者在"如何通过Openssl实现私有CA,并实现TLS/SSL功能"的博文中详细介绍了如何通过openssl工具创建私有CA证书颁发机构,所以在这也不再阐述。

实现过程:
Seq1:安装FTP所需要的软件包(可以使用源码编译安装,也可以选择rpm安装,这里采用的是rpm安装的方式)

# rpm -q vsftpd ##查看当前Linux系统是否安装vsftpd软件包

# yum install vsftpd -y ##如果没有安装,可以使用yum来安装

# rpm -ql vsftpd ##查看vsftpd软件包在安装时,所生成的文件路径

Seq2:启动FTP服务器,并利用Linux自带的开源软件tcpdump来截获FTP登录时产生的相关报文,并分析用户名和密码。

# service vsftpd restart

附加:tcpdump

tcpdump的语法:

tcpdump [options] [Protocol] [Direction] [Host(s)] [Value] [Logical Operations] [Other expression]

# tcpdump -i eth0 -nn -X tcp port 21 and ip host 172.16.88.10

测试:用Windows客户机使用Hadoop用户登录FTP服务器,验证是否FTP使用明文传输机制

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

查看服务器产生的报文记录:(测试结果:不难发现用户和密码)

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

Seq3:通过Openssl创建CA证书颁发机构:可以到笔者“openssl创建私有CA”了解详细信息

# cd /etc/pki/CA

# (umask 077;openssl genrsa -out private/cakey.pem 2048) ##生成私钥

# openssl req -new -x509 -key private/cakey.pem cacert.pem -days 3650 ##生成自谦证书

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

Seq4:通过Openssl为FTP服务提供一对密钥并申请证书颁发请求

# mkdir /etc/vsftpd/ftps

# (umask 077; openssl genrsa -out ftps.key 1024) ##创建私钥

# openssl req -new -key ftps.key -out ftps.csr -days 3650 ##发送证书颁发请求

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

Seq5:CA证书颁发机构,收到证书颁发请求,并对证书(csr)颁发数字证书(crt)

# openssl ca -in vsftpd.csr -out vsftpd.crt -days 3650

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2a88ea7c9887923db9d475a9fab77317.html