Vsftpd完全攻略(四)搭建支持SSL加密传输的vftpd

 
ftp 传输数据是明文,弄个抓包软件就可以通过数据包来分析到账号和密码,为了搭建一个安全性比较高 ftp ,可以结合 SSL 来解决问题
 
SSL (Secure Socket Layer) 工作于传输层和应用程序之间 . 作为一个中间层 , 应用程序只要采用 SSL 提供的一套 SSL 套接字 API 来替换标准的 Socket 套接字 , 就可以把程序转换为 SSL 化的安全网络程序 , 在传输过程中将由 SSL 协议实现数据机密性和完整性的保证 .SSL 取得大规模成功后 ,IETF SSL 作了标准化 , 并将其称为 TLS(Transport Layer Security).Ftp 结合 SSL, 将实现传输数据的加密 , 保证数据不被别人窃取 .
 
 下面我们使用linux自带的抓包工具tcpdump抓包分析,来截取ftp登录用户口令
 
  [root@red-hat-5 vsftpd]# tcpdump -i eth0 -A |more
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
……………………………….
20:40:26.208724 IP 192.168.184.1.54516 > 192.168.184.129.ftp: S 289306029:28
9306029(0) win 8192 <mss 1460,nop,nop,sackOK>
.............>u.....p. ..V..........
20:40:26.210838 IP 192.168.184.129.ftp > 192.168.184.1.54516: S 1292926425:1
292926425(0) ack 289306030 win 5840 <mss 1460,nop,nop,sackOK>
E..0..@[email protected].}..>u.p...S...........
20:40:26.212600 IP 192.168.184.1.54516 > 192.168.184.129.ftp: . ack 1 win 64
240
E..(m.@..................>u.M.}.P.............
20:40:26.229597 IP 192.168.184.129.ftp > 192.168.184.1.54516: P 42:48(6) ack
 1 win 5840
E....2@[email protected].~..>u.P.......220
20:40:26.251901 IP 192.168.184.1.54516 > 192.168.184.129.ftp: P 1:16(15) ack
 48 win 64193
E..7m.@..................>u.M.~ P...#...USER viong
20:40:26.251989 IP 192.168.184.129.ftp > 192.168.184.1.54516: . ack 16 win 5
840
E..(.3@[email protected].~     .>u.P.......
20:40:26.252116 IP 192.168.184.129.ftp > 192.168.184.1.54516: P 48:82(34) ac
k 16 win 5840
E..J.4@[email protected].~     .>u.P...8...331 Please specify the password.
20:40:26.255680 IP 192.168.184.1.54516 > 192.168.184.129.ftp: P 16:31(15) ac
k 82 win 64159
E..7m.@..................>u.M.~+P....3..PASS 123456
E..Nm......R.............:.!............ EJFDEBFEEBFACACACACACACACACACAAA.. ..
20:40:31.301262 IP 192.168.184.129.ftp > 192.168.184.1.54516: P 82:105(23) ack 31
win 5840
E..?.6@[email protected].~+.>u.P....H..230 Login successful.

从我们抓的数据包,可以看到账号密码,所以明文传输的数据安全性太可怕了
 
vsftpd 支持SSL ,必须让OPENSSL≥0.9.6 版本,还有就是本身vsftpd 版本是否支持
 
查询vsftpd 软件是否支持SSL
 
[root@localhost vsftpd]# ldd /usr/sbin/vsftpd |grep libssl
        libssl.so.6 => /lib/libssl.so.6 (0xf7f27000)   == è 说明此版本支持
 
如没有输出 libssl.so.6 => /lib/libssl.so.6 (0xf7f27000) 类似文本,说明此 vsftpd 版本不支持 SSL
 
 
[root@red-hat-5 ~]#openssl req -x509 -nodes -days 365 -newkey rsa:1024 \-keyout /etc/vsftpd/vsftpd.pem \-out /etc/vsftpd/vsftpd.pem  == è 生成 vsftpd.pem 证书
Generating a 1024 bit RSA private key
..++++++
....................................++++++
writing new private key to 'vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:cn
State or Province Name (full name) [Berkshire]: shanghai
Locality Name (eg, city) [Newbury]:shanghai
Organization Name (eg, company) [My Company Ltd]:ys   == è 根据提示填写一些信息
Organizational Unit Name (eg, section) []:ys
Common Name (eg, your name or your server's hostname) []:viong
Email Address []:[email protected]
 
[root@localhost ~]# ll /etc/vsftpd/  == è 查看是否生成 vsftpd.pem 文件
-rw-r--r-- 1 root root  197 12-25 19:57 chroot_list
-rw--------1 root root 125 2007-12-13 ftpusers
-rw------- 1 root root  361 2007-12-13 user_list
-rw------- 1 root root 4396 12-25 19:19 vsftpd.conf
-rwxr--r-- 1 root root  338 2007-12-13 vsftpd_conf_migrate.sh
-rw-r--r-- 1 root root 2168 01-08 01:53 vsftpd.pem  == è 生成 vsftpd.pem 成功
 
[root@red-hat-5 ~]# vi /etc/vsftpd/vsftpd.conf  == è 编辑主配置文件,添加以下参数
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
 
 
下面是ssl 参数一些定义,根据自己需求去修改
 
ssl_enable=yes/no             // 是否启用 SSL, 默认为 no
allow_anon_ssl=yes/no         // 是否允许匿名用户使用 SSL, 默认为 no
rsa_cert_file=/path/to/file       //rsa 证书的位置
dsa_cert_file=/path/to/file      //dsa 证书的位置
force_local_logins_ssl=yes/no    // 非匿名用户登陆时是否加密 , 默认为 yes
force_local_data_ssl=yes/no     // 非匿名用户传输数据时是否加密 , 默认为 yes
force_anon_logins_ssl=yes/no    // 匿名用户登录时是否加密 , 默认为 no
force_anon_data_ssl=yes/no     // 匿名用户数据传输时是否加密 , 默认为 no
ssl_sslv2=yes/no               // 是否激活 sslv2 加密 , 默认 no
ssl_sslv3=yes/no                // 是否激活 sslv3 加密 , 默认 no
ssl_tlsv1=yes/no                // 是否激活 tls v1 加密 , 默认 yes
ssl_ciphers= 加密方法             // 默认是 DES-CBC3-SHA
 
[root@red-hat-5 ~]# service vsftpd restart
关闭 vsftpd                                              [ 确定 ]
vsftpd 启动 vsftpd                                      [ 确定 ]
 
通过 FlashFXP 连接 FTP
 
下载地址: http://duote.com/soft/11584.html
 
如下图:
打开 FlashFXP F4 跳出站点管理器.填写ftp 目标地址并选择连接类型
 
Vsftpd完全攻略(四)搭建支持SSL加密传输的vftpd_第1张图片 
 
接受并保存证书
 
 
 
连接成功
 
 
传输数据成功
 
 
 
接下来我们同样通过tcpdump 包分析
 
[root@red-hat-5 vsftpd]# tcpdump -i eth0 -A |more
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
…………………………………………………………. 省略
E..(.l@................._.W.h...P....)........
15:55:03.887804 IP 192.168.184.129.ftp > 192.168.184.1.53447: P 1:36(35) ack 1 win 5840
E..K
3@.@.>.............h..._.W.P....s..220-........YSPLAY........FTP....
 
15:55:03.888817 IP 192.168.184.129.ftp > 192.168.184.1.53447: P 36:42(6) ack 1 win 5840
E...
4@.@.>.............h..._.W.P...Q...220-
 
15:55:03.888982 IP 192.168.184.1.53447 > 192.168.184.129.ftp: . ack 42 win 64199
E..(.m@................._.W.h...P....)........
15:55:03.889715 IP 192.168.184.129.ftp > 192.168.184.1.53447: P 42:48(6) ack 1 win 5840
E...
5@.@.>.............h..._.W.P...Q...220
 
15:55:03.893159 IP 192.168.184.1.53447 > 192.168.184.129.ftp: P 1:11(10) ack 48 win 64193
E..2.n@................._.W.h...P.......AUTH SSL  ======= è 说明 SSL 加密成功
 
通过测试得知数据传输已经被加密,说明支持SSL加密的vsftp搭建成功
 
 

你可能感兴趣的:(tcpdump,ssl,Vsftpd完全攻略,FlashFXP连接FTP,Vsftpd支持SSL)