原理介紹:
一、帳號登錄:
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協議與各種應用層協議之間,爲數據通訊提供安全支持。
五、虛擬帳號登錄原理:
案例一:通過ssl安全套接層來實現ftps加密傳輸;
一、實驗步驟:
配置服務器ip地址:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
重啓network服務:
# service network restart
編輯證書配置文檔:
# vim /etc/pki/tls/openssl.cnf
//證書文件的主目錄
//默認國家
//默認省份
//默認城市
搭建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 //改變證書私鑰的權限,保護期安全
# cd /etc/pki/CA/
# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem //通過私鑰產生CA服務器的證書文件
掛載光盤:
# 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通過自己的私鑰產生證書請求
# openssl ca -in vsftpd.csr -out vsftpd.cert //通過證書請求,申請證書
# 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 //對本地用戶的登錄信息進行加密
啓動vsftpd:
# service vsftpd start
創建本地帳號:
# useradd test1
# passwd test1
二、實驗測試:
使用FlashFXP ftp客戶端進行測試:
下載安裝FlashFXP後,創建一個ftp站點:
新建站點:
點擊連接後,會彈出ftp的證書:
驗證成功!!
案例二:通過虛擬帳號保證ftp服務器帳號的安全性;
一、實驗步驟:
掛載光盤:
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
安裝vsftpd:
# cd /mnt/cdrom/Server/
# 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
將viruser.txt生成一個虛擬帳號數據庫:
# cd /etc/vsftpd/
# db_load -T -t hash -f viruser.txt viruser.db
編輯vsftp的主配置文檔,查看用戶通過pam身份驗證的接口文件:
# vim /etc/vsftpd/vsftpd.conf
打開pem的接口文件,用於將ftp驗證指向定義的用戶數據庫:
# vim /etc/pam.d/vsftpd
編輯vsftpd.conf虛擬帳號映射成真是目錄:添加兩行
# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=localuser
啓動vsftpd服務:
# service vsftpd start
創建虛擬帳號的映射本地帳號:
# useradd localuser
# passwd localuser
更改localuser家目錄的權限:
# chmod a+rx /home/localuser
二、驗證測試:
在localuser家目錄中創建一個測試文件:
# touch /home/localuser/test.txt
首先登錄ftp:
使用創建的虛擬帳號test1登錄ftp:右擊-->登錄
輸入帳號test1:
登錄成功!!