ftps是多傳輸協議,在一般情況下,ftp是明文傳輸的,***者可以竊聽傳輸中的數據,造成信息容易泄露。所以我們可以結合ssl來實現安全的數據傳輸。ssl (Secure Socket Layer) 安全套階層,是在客戶機和具有SSL功能的服務器之間的保證安全連接的協議,它能確保數據發送到正確的客戶機和服務器,並加密數據、保持數據在傳輸過程中的完整性 。ftps就是ftp+ssl,相當於加密版的ftp,因此FTPS也稱作“FTP-SSL”和“FTP-over-SSL”。
openssl
yum install openssl*
cd /etc/pki/
vim tls/openssl.cnf
更改45行 =/etc/pki/CA
由上圖可以得知要創建如下文件:
mkdir certs crl newcerts
touch index.txt serial
echo “01” >serial
match替換爲optional
證書服務器生成私鑰
cd /etc/pki/CA/private
openssl genrsa 1024 >cakey.pem
爲了安全最好更改一下私鑰權限:
chmod 600 cakey.pem
自簽發:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
----- #因爲在前面我們已經設置過國、省、組織名不嚴格匹配了,而且只是實驗,這裏隨便寫好了 A challenge password []:#挑戰口令,直接確定就好 |
vsftpd
rpm –ivh vsftpd
編輯ftp配置文件:
vim /etc/vsftpd/vsftpd.conf
添加如下語句:
創建證書目錄
mkdir /etc/vsftpd/certs
證書客戶端私鑰:
openssl genrsa 1024 >vsftpd.key
CSR 請求文件 (Certificate Signing Request)此文件頒發證書後可刪除
openssl req –new –key vsftpd.key –out vsftpd.csr
----- #這個通常寫證書客戶端網址,這裏是我的linux ip O(∩_∩) Please enter the following 'extra' attributes |
頒發證書:
openssl ca –ni vsftpd.csr –out vsftpd.cert
Signature ok Certificate is to be certified until Mar 20 03:53:38 2013 GMT (365 days) 1 out of 1 certificate requests certified, commit? [y/n]y #確定要籤? |
更改權限:
chmod 600 certs
創建賬戶:
useradd user1
重啓一下ftp:
service vsftpd restart
登陸:
此時當我們登陸ftp服務器時會得到一個證書,如下:
我們可以看到登陸後在用戶家目錄下:
openssl雖然可以保證我們的傳輸數據的安全。但僅僅這樣還是不夠的,例如,我們可以輕易切換到根目錄下,然後
保證ftp正常、穩定、安全的運行,我們還需要對ftp進行適當的配置,例如用戶權限的分配,磁盤配額等
更改家目錄
vim /etc/passwd
允許匿名賬號:
local_enable=YES 本地賬戶
anon_upload_enable=YES 匿名上傳
anon_mkdir_write_enable=YES 匿名可寫、創建
idle_session_timeout=600 回話超時
data_connection_timeout=120 連接超時
匿名賬號家目錄修改:vim /etc/vsftpd/vsftpd.conf
128 anon_root=/mnt/ftphome/anon
匿名賬號下載速度:100k
anon_max_rate=100000 #byte
本地賬號下載速度:
local_max_rate=1000000
允許最大連接數
max_clients=3
每個用戶連接數
max_per_ip=2
磁盤配額:
開機自動掛載該分區vim /etc/fstab
檢查當前系統所有分區中的磁盤配額信息
quotacheck -aug –c
編輯用戶配額
edquota –u user1
編輯用戶或組的配額
複製配額信息
edquota –p user1 user2
加到開機腳本
echo “quotaon /dev/sdb1” >>/etc/rc.d/rc.local
可以輸出一個文件,測試一下