天天看點

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,如需轉載請自行聯系原作者

繼續閱讀