鑒於一般情況下所使用的 ftp
帳號/密碼皆採明文方式傳送
而我自己又有一點被害妄想症,所以就趁著更新 server 上的 ftpd
順便把 SSL/TLS enable起來
(小聲說…)其實我以前就有玩過,不過失敗了
這次終於實作成功阿 ^_^
*環境
(寫這篇文章時已經有 Release Candidate:1.2.10rc1,不過我決定還是用 Production Edtion 比較好)
*安裝
在此,假設已經設定好伺服器端的 SSL
所以只針對 ProFTPD 的安裝:
一般來講,ProFTPD 的編譯參數是不包含 SSL/TLS 支援的
所以我們必須手動加上參數
./configure –with-modules=mod_tls
make
make install
或使用 FreeBSD 安裝時加上 “WITH_OPENSSL”:
cd /usr/ports/proftpd;make install clean WITH_OPENSSL=YES
*設定
編輯 /usr/local/etc/proftpd.conf
TLSEngine on
TLSLog /var/log/ftp_tls.log
# 使用的協定,建議使用 SSLv23,可以兼顧 SSLv3 & TLSv1
TLSProtocol SSLv23
# 所有用戶端都必須使用 FTP over TLS 連到這台 server 嗎?
TLSRequired off
# Server's certificate
TLSRSACertificateFile /etc/ssl/certs/ftp.crt
TLSRSACertificateKeyFile /etc/ssl/private/ftp.key
# CA the server trusts
TLSCACertificateFile /etc/ssl/certs/root.crt
# 當用戶端使用 FTP over TLS 時,是否檢查憑證?
TLSVerifyClient off
*客戶端的使用方式
把 ftp client 的 SSL/TLS 加密選項勾選起來即可
記得選 “explicit”,不要選到 “implicit”
已經確定支援的 client 像是 CuteFTP、SmartFTP、FileZilla 都沒問題
全部列表可以看這裡
*參考資料
http://www.castaglia.org/proftpd/modules/mod_tls.html
http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html