“安全傳輸”FTPS

一、          理論介紹

       FTPFile Transfer Protocol 文件傳輸協議)是TCP/IP網絡上兩臺計算機傳送文件的協議,FTP是在TCP/IP網絡和INTERNET上最早使用的協議之一,它屬於網絡協議組的應用層。FTP客戶機可以給服務器發出命令來下載文件,上載文件,創建或改變服務器上的目錄。端口有21(連接控制)、20(數據傳輸),工作模式有主動和被動兩種。

但是FTP的缺點是密碼和文件內容都使用明文傳輸,可能產生不希望發生的竊聽,這時就需要FTPS服務。
FTPS是在安全套接層使用標準的FTP協議和指令的一種增強型TFP協議,爲FTP協議和數據通道增加了SSL安全功能。FTPS也稱作“FTP-SSL”“FTP-over-SSL”SSL是一個在客戶機和具有SSL功能的服務器之間的安全連接中對數據進行加密和解密的協議。
 
二、          實驗驗證
注:(1)、在本實驗中使用的是linux 企業本5.4操作系統,ip地址爲192.168.101.222。(2)、先來安裝yum工具(具體做法已在前面的文章中提到,這裏不做詳細介紹)
1.     驗證在不使用FTPS情況下,FTP傳輸的情況。
linux中有一種抓包工具,wireshark包中pngtshark
1)下面先來安裝wireshark
[root@localhost ~]# mkdir /mnt/cdrom/
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# yum install -y wireshark
 
 
2)創建一個普通賬號user1,並設置密碼爲“123”
[root@localhost ~]# useradd user1          
[root@localhost ~]# echo "123" |passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
 
3)、安裝ftp服務器
    [root@localhost ~]# yum install  -y  vsftpd
 啓動ftp服務
    [root@localhost ~]# service vsftpd start
 測試ftp服務器是否正常

可以看到ftp正常工作。

 (4)、下面用剛纔的安裝抓包工具tshark來抓包,用user1 登錄ftp所產生的信息

    [root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

可以看到在用ftp進行登錄時是很不安全的。

 2、在做好FTPS後進行抓包查看ftp的登錄信息
先來做CA
 [root@localhost ~]# cd /etc/pki/
 編輯openssl.cnf文件
 [root@localhost pki]# vim tls/openssl.cnf
 
 修改45行:

修改8890行:

 

接下來在CA目錄下創建三個目錄兩個文件

[root@localhost pki]# cd CA/

[root@localhost CA]# mkdir crl certs newcerts

[root@localhost CA]# touch index.txt serial
[root@localhost CA]# echo "01" >serial
 
創建CA的私鑰
[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem
Generating RSA private key, 1024 bit long modulus
.++++++
......................++++++
e is 65537 (0x10001)
 
創建CA的證書
[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
(填寫的內容根據個人意願)

 

改變私鑰的權限
[root@localhost CA]# chmod 600 private/cakey.pem
 
創建目錄
[root@localhost CA]# mkdir /etc/vsftpd/certs
[root@localhost CA]# cd /etc/vsftpd/certs/
來產生私鑰
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key
Generating RSA private key, 1024 bit long modulus
............++++++
.......................................................++++++
e is 65537 (0x10001)
 
再做一個請求文件
[root@localhost certs]# openssl  req  -new  -key  vsftpd.key  -out  vsftpd.csr
(填寫的內容根據個人意願)

 

得到ftp的證書

[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert

爲了安全性改變在該目錄下所有文件的權限值都爲600

 [root@localhost certs]# chmod 600 *

下面需要將ftp與證書結合到一塊

編輯ftp的配置文件/etc/vsftpd/vsftpd.conf

然後重啓ftp服務器

[root@localhost certs]# service vsftpd restart
 
然後開始抓包測試:
注意:在測試的時候不能在命令行(如DOS窗口下),因爲在命令行下,不支持加密驗證。需要專業的ftp客戶端。(這裏我們使用FlashFXP 4.0版本,軟件安裝過程略)
 客戶端:

 

 

抓包檢測如圖:

可知已看不到登錄的用戶名和密碼。這樣的訪問會更加安全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章