你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2013-05-27] 来源:Linux社区  作者:guodayong [字体: ]

注:
通过笔者”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安装的方式)

  1. # rpm -q vsftpd ##查看当前Linux系统是否安装vsftpd软件包
  2. # yum install vsftpd -y ##如果没有安装,可以使用yum来安装
  3. # rpm -ql vsftpd ##查看vsftpd软件包在安装时,所生成的文件路径

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

  1. # service vsftpd restart
  2. 附加:tcpdump
  3. tcpdump的语法:
  4. tcpdump [options] [Protocol] [Direction] [Host(s)] [Value] [Logical Operations] [Other expression]
  5. # tcpdump -i eth0 -nn -X tcp port 21 and ip host 172.16.88.10

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

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

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

  1. # cd /etc/pki/CA
  2. # (umask 077;openssl genrsa -out private/cakey.pem 2048) ##生成私钥
  3. # openssl req -new -x509 -key private/cakey.pem cacert.pem -days 3650 ##生成自谦证书

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

  1. # mkdir /etc/vsftpd/ftps
  2. # (umask 077; openssl genrsa -out ftps.key 1024) ##创建私钥
  3. # openssl req -new -key ftps.key -out ftps.csr -days 3650 ##发送证书颁发请求

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

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

linux
相关资讯       OpenSSL SSL/TLS  SSL/TLS 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款