セキュアFTPサーバの構築(ProFTPD+SSL/TLS:CentOS編)


サーバに置いたファイルを外部から扱う方法には、SSHやWebDAV等のいろいろな方法がありますが、特に難しいオペレーションを必要しないFTPを使用する方法も考えられます。しかし、外部から使用するとなるとセキュリティの問題がありますので、今回は、おやじが使用しているProFTPDをSSL/TLS化してみました。ProFTPDでは、1.2.7RC1以降でmod_sslに対応しています。

[重要]
SSLでアクセスすると、インターネット側からはActiveモードが使えなくなります。これは、SSL化による暗号化のためクライアント側のルータが通信の内容をモニタしても内容がわからないので、PORTコマンド内のクライアントのアドレスを変換できなくなり、サーバにクライアントのプライベートアドレスがそのまま中継されてしまうからです。クライアントがNATルータ環境下にいる場合は対処方法はありません。


■ProFTPDのRPMのダウンロードとインストール

ProFTPDのSSL/TLS対応のRPM作成方法については、こちらを参照願います。ここでは、おやじが作成したRPMをダウンロードして、inetdモードで動作させるものとして説明します。
インストールは、任意の場所(ここでは、/usr/local/src)にRPMを置いて、インストールします。

# cd /usr/local/src
# rpm -ivh proftpd-1.3.0rc1-1.i386.rpm proftpd-inetd-1.3.0rc1-1.i386.rpm
# mkdir /var/proftpd   ← mod_delay用ディレクトリの作成
# mkdir /var/log/proftpd   ← 詳細ログ用ディレクトリの作成(詳細ログが必要なければ不要)


■ProFTPDの設定

ProFTPDの設定は、/etc/proftpd.confを編集します。基本的な設定は、こちらを参照してください。ここでは、SSL化に関する設定のみをあげて置きます。修正した部分のみ記載しています。(青字は削除、赤字は追加、緑字は変更したものです。)

 下記をProftpd.confの適当なところに追加する。
<IfModule mod_tls.c>
    TLSEngine on
    TLSLog  /var/log/proftpd/tls.log
    TLSProtocol SSLv23

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

    # Server's certificate
    TLSRSACertificateFile /usr/local/certs/server.crt
    TLSRSACertificateKeyFile /usr/local/certs/server.key

    # Authenticate clients that want to use FTP over TLS?
    TLSVerifyClient off
</IfModule>


■接続試験

FTPクライアントとしては、GetIt FTPとSmartFTPで動作確認しました。なお、ProFTPDは、Explicitのみサポート(Implicitは未サポート)しているので、SmartFTPではImplicitも選択できますが動作しません。以下に両者のSSL関係だけの設定方法を示します。

◆GetIt FTPのSSL関係の設定

GetIt FTPのSSL関係の設定を以下に示します。なお、ついでと言ってはなんですが、日本語化しましたので、ソフトダウンロードにパッチを置いておきます。
  1. サイトアイコンを押し、「Site manager」を開く。
  2. 「新規サイト」又は「サイトの編集」を押し、「Site propaties」を開く。
  3. 「セキュリティ」タブを選択し、「プロパティ」の「タイプ」で「FTP with SSL」を選択する。このとき、「データ・チャネルでSSLを使用しない」が選択できるようになるので、必要に応じてチェックする。通常はデータも含めて保護するはずなので、未チェックとすること。

◆SmartFTPのSSL関係の設定

SmartFTPのSSL関係の設定を以下に示します。このクライアントは、日本語化パッチも用意されています。
  1. 「お気に入り」から「お気に入りの編集」を選択し、「お気に入り」を開く。
  2. 右ウインドウで右クリックして「新規作成」から「お気に入り」を選択して、適当な名前を付与してサイトを登録する。
  3. 登録したサイト名の上で右クリックし、「プロパティ」から「基本設定」を開く。
  4. 「全般」の「サーバー」の「プロトコル」の「プルダウンメニュー」から、「FTP over SSL Explisit」を選択する。
  5. 「接続」->「SSL」は「グローバルを使用」のままでよい。


Top Pageへ