這個叫作 FTPS = FTP + SSL

有另一個名詞叫 SFTP = SSH + FTP ,也就是把 SSH 當 FTP用,跟FTPS名詞不同,走的協定也不同

相同的是傳輸都有加密

看 proftpd 有沒有支援 ssl。沒有就安裝(省略)

# proftpd -l

Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_codeconv.c
  mod_auth_pam.c
  mod_ratio.c
  mod_readme.c
  mod_quota.c
  mod_tls.c      # < —————- 就是這個
  mod_cap.c

編輯 proftpd.conf,加入

<IfModule mod_tls.c>
    TLSEngine on
    TLSLog /var/log/tls.log
# SSLv23 = SSLv3 + TLSv1
    TLSProtocol SSLv23

    # Are clients required to use FTP over TLS?
    TLSRequired off

    # Server's certificate
    TLSRSACertificateFile /path/server.crt
    TLSRSACertificateKeyFile /path/server.key

    # Authenticate clients that want to use FTP over TLS?
    TLSVerifyClient off

    # Allow SSL/TLS renegotiations when the client requests them, but
    # do not force the renegotations.  Some clients do not support
    # SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
    # clients will close the data connection, or there will be a timeout
    # on an idle data connection.
    TLSRenegotiate required off
</IfModule>

要產生key, /path/server.key 及 /path/server.crt (省略)

重啟 proftpd

測試lftp,可以成功登入,列出就ok

# lftp
lftp :~> set ftp:ssl-force true
lftp :~> connect localhost
lftp localhost:~> login ssorclin
密碼:
lftp ssorclin@localhost:~> ls
drwxr-xr-x   2 root    root      4096 Dec 15 18:15 bin
lftp ssorclin@localhost:/> exit

另一個測試 openssl,會出現憑證的內容就是ok

openssl s_client -connect 127.0.0.1:21 -starttls ftp

測試 curl

# 顯示
curl -ucross:1234 ftp://localhost –ftp-ssl -k

# 隱式
curl -ucross:1234 ftp://localhost -k

測試 flashfxp

# 隱式 ,,,, 失敗

[L] 已連線. 正在交涉 SSL 中..
[L] SSL 錯誤: 未知的通訊協定
[L] SSL 交涉失敗, 已斷線
[L] 連線失敗 (連線已被客戶端關閉)
[L] 正在延遲 33 秒, 於重新連線嘗試第 #1 次之前

# SSL與TLS認證,皆ok

測試 filezilla 3.5.3版

# 需透過外顯式TLS,失敗

回應: 150 Opening ASCII mode data connection for file list
錯誤: GnuTLS error -9: A TLS packet with unexpected length was received.
狀態: 伺服器未正確結束 TLS 連線
錯誤: 傳輸連線中斷: ECONNABORTED – Connection aborted
回應: 226-Transfer complete
回應: 226 Quotas off
錯誤: 無法取得目錄列表

# 需透過隱含式TLS,失敗

狀態: 所選的連接埠通常是使用於其它協定.
狀態: 正在連線到 10.10.10.173:21 …
狀態: 連線已建立, 初始 TLS 加密…

參考
http://www.gentoo-wiki.info/ProFTPd/Compiling_with_TLS_SSL_support
http://hi.baidu.com/%B4%F8%B5%B6%B2%BB%B4%F8%C9%A1/blog/item/df846dbe952c8c0518d81ffe.html
http://www.proftpd.org/docs/howto/TLS.html
http://kb.parallels.com/2207

最後修改日期: 2012 年 01 月 20 日

作者

留言

作者

Q : 425 Unable to build data connection: Operation not permitted
A : TLSOptions NoSessionReuseRequired

[Reply]

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。