Back to page

− Links

 Print 

RHEL関連​/CentOS​/パッケージ​/vsftpd​/FTPS :: なりゆきネット本家

xpwiki:RHEL関連/CentOS/パッケージ/vsftpd/FTPS

  • 2009年頃に発生したガンプラー[1] :-x で、平文でのやり取りはセキュリティ的にとってもデンジャラスということで、セキュリティレポートや、クライアントさんからサーバアップロードには、ssh(WinSCP[2])対応を要望されることが多々あるが、IDとパスが突破された際のリスクは計り知れないので、ftpで暗号化(File Transfer Protocol over SSL/TLS→FTPS)を提案しています。
Table of contents
  • 確認環境
  • 設定・起動
  • ExplicitとImplicit
    • Explicit
    • Implicit
  • 外部&参考リンク

確認環境 anchor.png[3]

  1. CentOS[4] 5.7 (x86/32ビット版)
  2. vsftpd 2.0.5-21.el5
  3. openssl 0.9.8e-20.el5
Page Top

設定・起動 anchor.png[5]

  1. /etc/vsftpd/vsftpd.confに設定項目を追加。
    設定項目=設定値設定内容
    ssl_enable=YESSSL/TLS接続の有効化
    allow_anon_ssl=YESAnonymous接続も暗号化して平文を一切禁止
    force_local_logins_ssl=YES制御チャンネル(ログイン他)にはSSL/TLS接続のみ許可(平文禁止)
    force_local_data_ssl=YESデータチャンネルにはSSL/TLS接続のみ許可(平文禁止)
    rsa_cert_file=/etc/pki/tls/certs/vsftpd.pemSSL証明書ファイル(PEM形式)
    ↓ SSL証明書ファイルとSSL証明書ファイル作成時の秘密鍵ファイルに分けた場合(2行)
    rsa_cert_file=/etc/pki/tls/certs/vsftpd.crtSSL証明書ファイル
    rsa_private_key_file=/etc/pki/tls/private/vsftpd.keySSL証明書ファイル作成時の秘密鍵ファイル
    ssl_tlsv1=YES今のところこれが最強 :-D
    ssl_sslv2=NO弱すぎると評判 :cry:
    ssl_sslv3=NOftpクライアントがTLSに対応していない場合に使用 :-o

    1. 設定項目の詳細は、`man vsftpd.conf`で確認できる(かもしれない?)。
    2. SSL証明書の作成・取得など、ここでは割愛。
    3. 暗号強度の低いプロトコルは、今日日、その危険性を指摘され、且つ、解読されているようなので、使わないようにしましょう 。 :-D
  2. 設定を反映(再起動)。

    # /etc/init.d/vsftpd restart

  3. 接続確認。
    1. NextFTP[6]他、ftpクライアントで、平文接続をし、接続できないことを確認。
    2. NextFTP[6]他、ftpクライアントで、TLS接続を設定し、接続後、ディレクトリなどが見れるか確認。
  4. 接続確認に問題がなければ完了 :hammer:
Page Top

ExplicitとImplicit anchor.png[7]

Page Top

Explicit anchor.png[8]

  1. Connect直後に、クライアントからSSL/TLS接続に切り替える要求を明示的に送信する(要求は平文で送信)。
  2. tcpポートは平文と同じ21(既定値の場合)を使う(参考:RFC2228)。
  3. これ以降、Loginを含め、データ通信はSSL/TLS接続化される。
  4. 平文運用の設定のまま実装できる。
Page Top

Implicit anchor.png[9]

  1. Connect直後移行、自動的に暗黙でSSL/TLS接続化する。
  2. SSL/TLS接続用ポートが必要。
  3. SSL/TLS接続でしか接続できない仕様。

Last-modified: 2012-08-07 (Tue) 10:53:53 (JST) (4417d) by mugi