FTPS(FTP over SSL)環境構築

最終更新日:2006年11月10日

はじめに

概要

ProFTPD で FTPS(FTP over SSL) の環境を作ってみた。

sshのシェル利用制限とchrootによる安全なファイル転送方法は、『rsshを使った安全なファイル転送(sshのシェル利用制限とchroot)』参照。

構築した環境

名称 バージョン 備考
Solaris x86 10
ProFTPD 1.3.0 2006.10.06時点での最新版。
OpenSSL 0.9.8d 今回は、CSWパッケージを使用した。
CSWパッケージについては、『Solarisへのフリーソフトのインストール方法』参照。

インストール

環境変数設定

CSWパッケージのOpenSSLを使用する都合で、以下の環境変数を設定しておく。
LDFLAGS=-L/opt/csw/lib -R/opt/csw/lib
CPPFLAGS=-I/opt/csw/include
※ Solaris 2.x では、ld.so が OpenSSL のシェアードライブラリを見つけられるように、ランタイムリンク情報を指定する必要があったので環境変数で指定したが、他のOSでは configure 時に --with-includes と --with-libraries オプションを設定すれば上記環境変数の設定は不要。

ProFTPD のインストール

$ ./configure --with-modules=mod_tls
$ make
# make install
組み込まれたモジュールの確認
$ ./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_auth_pam.c
  mod_tls.c
mod_tls.c が組み込まれている。

設定

ProFTPD の設定

ProFTPD mini-HOWTO - SSL/TLS を参考にして /usr/local/etc/proftpd.conf にTLSの設定を追加する。
<IfModule mod_tls.c>
  TLSEngine on
  TLSLog /var/ftpd/tls.log
  #TLSProtocol TLSv1
  TLSProtocol SSLv23                 ← TLSv1 では接続確認できなかったので SSLv23 にした

  # Are clients required to use FTP over TLS when talking to this server?
  TLSRequired off

  # Server's certificate
  TLSRSACertificateFile /etc/ssl/certs/dovecot.pem         Dovecot で作成した証明書を利用
  TLSRSACertificateKeyFile /etc/ssl/private/dovecot.pem    Dovecot で作成した証明書を利用

  # CA the server trusts
  #TLSCACertificateFile /etc/ftpd/root.cert.pem

  # Authenticate clients that want to use FTP over TLS?
  TLSVerifyClient off
</IfModule>
他の設定は、利用環境に合わせて設定する。

クライアントソフト

接続確認したクライアントソフト

名称 バージョン 備考
FileZilla 2.2.28 GNU General Public License (GPL)
Core FTP LE 1.3c フリーウェア

※ ProFTPD(mod_tls)は、Implicit をサポートしていないので、Explicit で接続確認した。
詳細は、『Question: How come mod_tls does not support "implicit" FTPS (i.e. automatically encrypting sessions on port 990)?』参照。

他のクライアントソフト

名称 備考
NextFTP4 日本製のシェアウェア
SmartFTP 個人利用はフリーウェア

他にも色々あるので、 を参照。