2014年10月15日

ProFTPD SSL/TLS 安裝筆記

#環境
-CentO5
-proftpd-1.3.5
-crypto-utils

#解壓縮tarball
shell># tar xzvf proftpd-1.3.5.tar.gz

#編譯安裝
shell># cd proftpd-1.3.5
shell># ./configure --prefix=/usr/local/proftpd --enable-ctrls --enable-dso --with-shared=mod_tls

shell># make && make install

#建立自我發行憑証(若沒有genkey工具表示沒安裝crypto-utils套件)
shell># genkey --days 3650 test.ftp.biz
接下來按照該工具指示建立自我發行憑證,加密建議用2048bit,建好的憑證預設會放於/etc/pki/tls/{private,certs}目錄下

#編輯設定檔
shell># vim /usr/local/proftpd/etc/proftpd.conf
ServerName "FTP service"
ServerType standalone
Port 21
Umask 027
User nobody
Group nobody
DefaultRoot ~
AllowOverwrite on

#關閉FTP資訊
ServerIdent off

#使用ftpuser檔管制登入帳號
UseFtpUsers on

#logs
TransferLog /var/log/xferlog
SyslogFacility local0
SyslogLevel info

#mod_tls設定
#載入mod_tls模組
<ifmodule mod_dso.c>
    LoadModule mod_tls.c
</ifmodule>

#建議用SSLv3及TLSv1,否則弱掃通常會抱怨v2版本太低
<ifmodule mod_tls.c>
   TLSEngine on
   TLSLog /var/log/proftpd_tls.log
   TLSProtocol SSLv3 TLSv1
   TLSRequired on
   TLSVerifyClient off
   TLSRenegotiate none
   TLSRSACertificateFile /etc/pki/tls/certs/test.ftp.biz.cert
   TLSRSACertificateKeyFile /etc/pki/tls/private/test.ftp.biz.key
</ifmodule>

#設定完成後,可以用以下參數確認設定
shell># /usr/local/proftpd/sbin/proftpd -t -c /usr/local/proftpd/etc/proftpd.conf
Syntax check complete.

#啟動服務
shell># /usr/local/proftpd/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf

#Redhat系統也可以從tarball裡取得initscript 由 chkconfig 管理服務啟動
shell># ls proftpd-1.3.5/contrib/dist/rpm/proftpd.init.d

問題
連線時tlslog發現以下訊息,連線狀態會卡在初始TLS
unable to accept TLS connection: received EOF that violates protocol

可能原因
檢查防火牆設定確認有放行FTP服務,或者採用固定的PassivePorts參數固定被動連接埠

參考文獻
http://www.proftpd.org/docs/howto/TLS.html

沒有留言:

張貼留言