原理介紹:
一、帳号登入:
1.匿名帳号 anonymous
2.本地帳号 伺服器本地的帳号
3.虛拟帳号 虛拟帳号-->映射-->實體帳号
二、ftp的安全性:
由于ftp協定屬于明文傳輸,是以帳号安全是ftp的一個重大問題是以我們需要通過一些方法來確定ftp的安全;在vsftp中,預設使用本地帳号和匿名帳号登入伺服器,如果被他人擷取ftp帳号,便可以通過此帳号登入ftp伺服器的主機,是以對ftp的安全性會有很大的威脅;
再次通過兩種方法來增加ftp伺服器的安全性:
1 使用ssl安全套接層對ftp進行加密傳輸;
2 使用虛拟帳号技術來保證帳号和伺服器的安全性;
三、為Internet上的FTP伺服器,系統的安全性是非常重要的,這是建立FTP伺服器者所考慮的第一個問題。其安全性主要包括以下幾個方面:
1 、未經授權的使用者禁止在伺服器上進行FTP操作。
2 、FTP使用者不能讀取未經系統所有者允許的檔案或目錄。
3 、未經允許,FTP使用者不能在伺服器上建立檔案或目錄。
4 、FTP使用者不能删除伺服器上的檔案或目錄。
5 、FTP使用者不能切換目錄;
四、SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及資料完整性的一種安全協定。TLS與SSL在傳輸層對網絡連接配接進行加密。
SSL協定位于TCP/IP協定與各種應用層協定之間,為資料通訊提供安全支援。
五、虛拟帳号登入原理:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716276UBr5.png"></a>
案例一:通過ssl安全套接層來實作ftps加密傳輸;
一、實驗步驟:
配置伺服器ip位址:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716276TmX0.png"></a>
重新開機network服務:
# service network restart
編輯證書配置文檔:
# vim /etc/pki/tls/openssl.cnf
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_13477162779Owi.png"></a>
//證書檔案的主目錄
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716283MDCC.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716290v9ko.png"></a>
//預設國家
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716290YOHa.png"></a>
//預設省份
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716290yEh7.png"></a>
//預設城市
搭建CA憑證伺服器
# cd /etc/pki/CA/
# mkdir crl certs newcerts //建立證書伺服器中所必需的三個目錄
# touch index.txt serial //建立證書伺服器中所必須的兩個檔案
# echo "01" >serial //在serial檔案中寫入‘01’的值
# cd private/
# openssl genrsa 1024 >cakey.pem //産生證書的私鑰
# chmod 600 cakey.pem //改變證書私鑰的權限,保護期安全
# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem //通過私鑰産生CA伺服器的證書檔案
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716303KMwA.png"></a>
挂載CD光牒:
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/ //挂載
安裝vsftp服務
# cd /mnt/cdrom/Server/
# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm //安裝vsftpd服務的包
給vsftp頒發證書:
# mkdir /etc/vsftpd/certs //建立vsftpd證書存放目錄
# cd /etc/vsftpd/certs/
# openssl genrsa 1024 >vsftpd.key //産生vsftpd自己的私鑰
# openssl req -new -key vsftpd.key -out vsftpd.csr //vsftpd通過自己的私鑰産生證書請求
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_13477163035nBN.png"></a>
# openssl ca -in vsftpd.csr -out vsftpd.cert //通過證書請求,申請證書
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716304TUZs.png"></a>
# chmod 600 * 改變vsftpd證書相關檔案的權限
配置vsfpt配置文檔:
# vim /etc/vsftpd/vsftpd.conf
添加一下指令:
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert //vsftpd證書所在位置
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key //vsftpd私鑰所在位置
ssl_tlsv1=YES //支援ssl的1版本
ssl_sslv2=YES //支援ssl的2版本
ssl_sslv3=YES //支援ssl的3版本
ssl_enable=YES //開啟vsftpd的ssl加密
force_local_logins_ssl=YES //對本地使用者的登入資訊進行加密
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716304NnK4.png"></a>
啟動vsftpd:
# service vsftpd start
建立本地帳号:
# useradd test1
# passwd test1
二、實驗測試:
使用FlashFXP ftp用戶端進行測試:
下載下傳安裝FlashFXP後,建立一個ftp站點:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716308ObMb.png"></a>
建立站點:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716309SVVk.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716310EV4n.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716313pM7l.png"></a>
點選連接配接後,會彈出ftp的證書:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716344Os6l.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716345tPyr.png"></a>
驗證成功!!
案例二:通過虛拟帳号保證ftp伺服器帳号的安全性;
# mount /dev/cdrom /mnt/cdrom/
安裝vsftpd:
# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
安裝db_load包:
# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm
建立虛拟帳号資料庫的一個文本檔案:
# vim /etc/vsftpd/viruser.txt
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716350zjvE.png"></a>
将viruser.txt生成一個虛拟帳号資料庫:
# cd /etc/vsftpd/
# db_load -T -t hash -f viruser.txt viruser.db
編輯vsftp的主配置文檔,檢視使用者通過pam身份驗證的接口檔案:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716358ByFD.png"></a>
打開pem的接口檔案,用于将ftp驗證指向定義的使用者資料庫:
# vim /etc/pam.d/vsftpd
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716364zQzW.png"></a>
編輯vsftpd.conf虛拟帳号映射成真是目錄:添加兩行
guest_enable=YES
guest_username=localuser
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716364w1tV.png"></a>
啟動vsftpd服務:
建立虛拟帳号的映射本地帳号:
# useradd localuser
# passwd localuser
更改localuser家目錄的權限:
# chmod a+rx /home/localuser
二、驗證測試:
在localuser家目錄中建立一個測試檔案:
# touch /home/localuser/test.txt
首先登入ftp:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716368b6Hp.png"></a>
使用建立的虛拟帳号test1登入ftp:右擊-->登入
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716372XWjA.png"></a>
輸入帳号test1:
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716373SJa8.png"></a>
<a href="http://cexpert.blog.51cto.com/attachment/201209/15/5251990_1347716374vS2b.png"></a>
登入成功!!
本文轉自 cexpert 51CTO部落格,原文連結:http://blog.51cto.com/cexpert/992170