セキュアFTPサーバの構築(vsftpd+SSL/TLS:RedHat系編)


vsftpd も バージョン2.0.1 からSSL/TLS対応になったので、おやじが使用している ProFTPD と同様に SSL/TLS 化してみました。サポートしているのは ProFTPD同様に Explisitモードで、クライアントとしてはこちらで紹介している、「GetIt FTP」や「SmartFTP」が使用できます。

■vsftpd のインストール

今回は、FedoraCore の spec ファイルを参考にして、管理を簡単にするためrpmを作ってからインストールすることにしました。rpmの作成方法を記述するのは大変なので、これに関してはダウンロードにrpmの他にsrpmを置いておきますので、興味のある方はそちらを見てください。ダウンロードにはRedHat9.0とFedoraCore2用を置いておきます。
なお、このrpmはSSL対応になっていますが、設定しなければ通常のFTPサーバとして使用できます。
おやじの所から rpm をダウンロードして、インストールしてください。インストールは、任意の場所(ここでは、/usr/local/src)にRPMを置いて、インストールします。

# cd /usr/local/src
# rpm -Uvh vsftpd-2.0.2-1.i386.rpm

■vsftpd の設定

vsftpd の設定は、/etc/vsftpd/vsftpd.conf で行いますが、基本的な設定や起動設定に関しては、こちらを参考に行ってください。ここでは、SSL/TLS化に関する設定のみ示します。
vsftpd の設定は、大きく以下の3つの設定オプションのカテゴリがありますので、目的に応じて設定する必要があります。
  1. ブール・オプション

    機能に対して YES/NO でその機能をどう扱うかを設定するもので、機能毎にデフォルト値が決まっており、変更する場合のみ記述すればよい。慣れないだけかもしれないが、いろいろなことを考えて設定しようとすると、ProFTPD のほうが設定しやすく感じるのはおやじだけでしょうか?

  2. 数値・オプション

    タイマ等の数値で設定するオプションであり、これもデフォルト値が決まっている。

  3. ストリング・オプション

    ファイルのパス等、ストリング形式で設定するオプションであり、これもデフォルト値があるものとないものがあるので、適宜設定する。

注:いずれの場合も オプション=設定値 の形態をとるが、 「=」を挟んでどちら側にも絶対にスペースを入れないこと。

◆SSL/TLS関係の設定

SSL/TLS関係の設定項目は、多くはありません。以下に設定が必要な項目を示します。
  1. SSL機能の有効化

    ssl_enable=YES (デフォルト:NO)

    vsftpd はデフォルトでは SSL 機能が動かないので、本設定で動作するようにする。

  2. SSLプロトコルの設定

    ssl_tlsv1=YES (デフォルト:ssl_tlsv1)

    vsftpd はSSLのプロトコルとして、SSL v2(ssl_sslv2)、SSL v3(ssl_sslv3)、TLS v1(ssl_tlsv1)の3種類をサポートしているが、デフォルトはTLS v1であり、多くの場合、この設定で問題ないのでデフォルトのままとする。

  3. anonymous接続時のSSLの使用有無

    allow_anon_ssl=NO (デフォルト:NO)

    anonymous接続でSSLを使用する場合は、YESとする。不特定の相手を対象とするanonymous接続でSSL接続は考えられないので、NOのまま(デフォルト:NOなので未記述でよい)とする。

  4. ローカルユーザ接続時のSSLの使用有無

    force_local_logins_ssl=NO (デフォルト:YES)
    force_local_data_ssl=NO (デフォルト:YES)

    ローカルユーザ接続時に、ログインとデータコネクションでSSL接続を強制的に行うオプション。デフォルトで両方ともYESになっているので、SSL以外での接続ができない。必要時にユーザが指定すればSSLが利用できるようにするには、両方ともNOに設定する。

  5. サーバ証明書の指定

    rsa_cert_file=/usr/local/certs/vsftpd.pem (デフォルト: /usr/share/ssl/certs/vsftpd.pem)

    RSAサーバ証明書のファイルの位置を指定する。サーバ証明書はこちらを参考にして作成すが、作成するのは参照先にある証明書と鍵を一体化したメール用証明書(mail.pem)である。
    上記の指定は、/usr/local/certs配下にCourier-imap用に作成したmail.pemをそのまま利用し、名前だけロジカルリンクしたものである。名前は何でも良いのでmail.pemのままでも良い。

    # cd /usr/local/certs
    # ln -s mail.pem vsftpd.pem



Top Pageへ