通過vftps和虛擬帳號增強ftp的安全性

科技小能手發表於2017-11-12

原理介紹:

一、帳號登入:

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協議與各種應用層協議之間,為資料通訊提供安全支援。

五、虛擬帳號登入原理:

wps_clip_image-4029

案例一:通過ssl安全套接層來實現ftps加密傳輸;

一、實驗步驟:

配置伺服器ip地址:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

wps_clip_image-15124

重啟network服務:

# service network restart

編輯證書配置文件:

# vim /etc/pki/tls/openssl.cnf

wps_clip_image-28872

    //證書檔案的主目錄

wps_clip_image-2865

wps_clip_image-8536

    //預設國家

wps_clip_image-9970

    //預設省份

wps_clip_image-5479

    //預設城市

搭建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伺服器的證書檔案

wps_clip_image-1519

掛載光碟:

# 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通過自己的私鑰產生證書請求

wps_clip_image-5008

# openssl ca -in vsftpd.csr -out vsftpd.cert    //通過證書請求,申請證書

wps_clip_image-21555

# 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    //對本地使用者的登入資訊進行加密

wps_clip_image-35

啟動vsftpd:

# service vsftpd start

建立本地帳號:

# useradd test1

# passwd test1

二、實驗測試:

使用FlashFXP ftp客戶端進行測試:

下載安裝FlashFXP後,建立一個ftp站點:

wps_clip_image-29562

新建站點:

wps_clip_image-12784

wps_clip_image-29516

wps_clip_image-9841

點選連線後,會彈出ftp的證書:

wps_clip_image-7939

wps_clip_image-22585

驗證成功!!

案例二:通過虛擬帳號保證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

wps_clip_image-30980

將viruser.txt生成一個虛擬帳號資料庫:

# cd /etc/vsftpd/

# db_load -T -t hash -f viruser.txt viruser.db

編輯vsftp的主配置文件,檢視使用者通過pam身份驗證的介面檔案:

# vim /etc/vsftpd/vsftpd.conf

wps_clip_image-20939

開啟pem的介面檔案,用於將ftp驗證指向定義的使用者資料庫:

# vim /etc/pam.d/vsftpd

wps_clip_image-29870

編輯vsftpd.conf虛擬帳號對映成真是目錄:新增兩行

# vim /etc/vsftpd/vsftpd.conf

guest_enable=YES

guest_username=localuser

wps_clip_image-10317

啟動vsftpd服務:

# service vsftpd start

建立虛擬帳號的對映本地帳號:

# useradd localuser

# passwd localuser

更改localuser家目錄的許可權:

# chmod a+rx /home/localuser

二、驗證測試:

在localuser家目錄中建立一個測試檔案:

# touch /home/localuser/test.txt

首先登入ftp:

wps_clip_image-3275

使用建立的虛擬帳號test1登入ftp:右擊–>登入

wps_clip_image-9393

輸入帳號test1:

wps_clip_image-651

wps_clip_image-22347

登入成功!!

本文轉自 cexpert 51CTO部落格,原文連結:http://blog.51cto.com/cexpert/992170


相關文章