天天看点

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

ftp传输数据是明文,弄个抓包软件就可以通过数据包来分析到账号和密码,为了搭建一个安全性比较高ftp,可以结合SSL来解决问题

<b>SSL</b>(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]# <b>tcpdump -i eth0 -A |more</b>

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 &gt; 192.168.184.129.ftp: S 289306029:28

9306029(0) win 8192 &lt;mss 1460,nop,nop,sackOK&gt;

.............&gt;u.....p. ..V..........

20:40:26.210838 IP 192.168.184.129.ftp &gt; 192.168.184.1.54516: S 1292926425:1

292926425(0) ack 289306030 win 5840 &lt;mss 1460,nop,nop,sackOK&gt;

E..0..@[email protected].}..&gt;u.p...S...........

20:40:26.212600 IP 192.168.184.1.54516 &gt; 192.168.184.129.ftp: . ack 1 win 64

240

E..(m.@..................&gt;u.M.}.P.............

20:40:26.229597 IP 192.168.184.129.ftp &gt; 192.168.184.1.54516: P 42:48(6) ack

 1 win 5840

E....2@[email protected].~..&gt;u.P.......220

20:40:26.251901 IP 192.168.184.1.54516 &gt; 192.168.184.129.ftp: P 1:16(15) ack

 48 win 64193

E..7m.@..................&gt;u.M.~ P...#...<b>USER</b> <b>viong</b>

20:40:26.251989 IP 192.168.184.129.ftp &gt; 192.168.184.1.54516: . ack 16 win 5

840

E..(.3@[email protected].~     .&gt;u.P.......

20:40:26.252116 IP 192.168.184.129.ftp &gt; 192.168.184.1.54516: P 48:82(34) ac

k 16 win 5840

E..J.4@[email protected].~     .&gt;u.P...8...331 Please specify the password.

20:40:26.255680 IP 192.168.184.1.54516 &gt; 192.168.184.129.ftp: P 16:31(15) ac

k 82 win 64159

E..7m.@..................&gt;u.M.~+P....3..<b>PASS</b> <b>123456</b>

E..Nm......R.............:.!............ EJFDEBFEEBFACACACACACACACACACAAA.. ..

20:40:31.301262 IP 192.168.184.129.ftp &gt; 192.168.184.1.54516: P 82:105(23) ack 31

win 5840

E..?.6@[email protected].~+.&gt;u.P....H..230 <b>Login successful.</b>

<b></b>

<b><b>从我们抓的数据包,可以看到账号密码,所以明文传输的数据安全性太可怕了</b><b></b></b>

<b><b> </b></b>

<b><b>让vsftpd</b><b>支持SSL</b><b>,必须让OPENSSL≥0.9.6</b><b>版本,还有就是本身vsftpd</b><b>版本是否支持</b></b>

 

<b>查询vsftpd</b><b>软件是否支持SSL</b>

<b> </b>

[root@localhost vsftpd]# ldd /usr/sbin/vsftpd |grep libssl

        libssl.so.6 =&gt; /lib/libssl.so.6 (0xf7f27000)   ==è说明此版本支持

如没有输出libssl.so.6 =&gt; /lib/libssl.so.6 (0xf7f27000)类似文本,说明此vsftpd版本不支持SSL

[root@red-hat-5 ~]#<b>openssl req -x509 -nodes -days 365 -newkey rsa:1024 \-keyout /etc/vsftpd/vsftpd.pem \-out /etc/vsftpd/vsftpd.pem  </b>==è生成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]:<b>cn</b>

State or Province Name (full name) [Berkshire]: <b>shanghai</b>

Locality Name (eg, city) [Newbury]:<b>shanghai</b>

Organization Name (eg, company) [My Company Ltd]:<b>ys   </b>==è根据提示填写一些信息

Organizational Unit Name (eg, section) []:<b>ys</b>

Common Name (eg, your name or your server's hostname) []:<b>viong</b>

Email Address []:<b>[email protected]</b>

[root@localhost ~]# <b>ll /etc/vsftpd/  </b>==è查看是否生成vsftpd.pem文件<b></b>

-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

<b>-rw-r--r-- 1 root root 2168 01-08 01:53 vsftpd.pem  </b>==è生成vsftpd.pem成功

[root@red-hat-5 ~]# <b>vi /etc/vsftpd/vsftpd.conf  </b>==è编辑主配置文件,添加以下参数<b></b>

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

<b>下面是ssl</b><b>参数一些定义,根据自己需求去修改</b>

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 ~]# <b>service vsftpd restart</b>

关闭vsftpd:                                             [确定]

为vsftpd启动vsftpd:                                     [确定]

通过FlashFXP连接FTP

如下图:

打开FlashFXP按<b>F4</b>跳出站点管理器.填写ftp目标地址并选择连接类型

接受并保存证书

连接成功

传输数据成功

接下来我们同样通过tcpdump抓包分析

[root@red-hat-5 vsftpd]# <b>tcpdump -i eth0 -A |more</b>

………………………………………………………….省略

E..(.l@................._.W.h...P....)........

15:55:03.887804 IP 192.168.184.129.ftp &gt; 192.168.184.1.53447: P 1:36(35) ack 1 win 5840

E..K

3@.@.&gt;.............h..._.W.P....s..220-........YSPLAY........FTP....

15:55:03.888817 IP 192.168.184.129.ftp &gt; 192.168.184.1.53447: P 36:42(6) ack 1 win 5840

E...

4@.@.&gt;.............h..._.W.P...Q...220-

15:55:03.888982 IP 192.168.184.1.53447 &gt; 192.168.184.129.ftp: . ack 42 win 64199

E..(.m@................._.W.h...P....)........

15:55:03.889715 IP 192.168.184.129.ftp &gt; 192.168.184.1.53447: P 42:48(6) ack 1 win 5840

5@.@.&gt;.............h..._.W.P...Q...220

15:55:03.893159 IP 192.168.184.1.53447 &gt; 192.168.184.129.ftp: P 1:11(10) ack 48 win 64193

E..2.n@................._.W.h...P.......<b>AUTH SSL  </b>=======è说明SSL加密成功

通过测试得知数据传输已经被加密,说明支持SSL加密的vsftp搭建成功

    本文转自viong 51CTO博客,原文链接:http://blog.51cto.com/viong/261354,如需转载请自行联系原作者

继续阅读