18.2.5. vsftpd 設定オプション

vsftpd は、広く利用可能な他の FTP サーバーのようなレベルのカスタマイズは提供しないかもしれませんが、管理者の大半のニーズを満たすのに十分なオプションを提供します。過剰に機能満載されていないことで、設定およびプログラム上のエラーが制限されます。
vsftpd の設定はすべて、その設定ファイル /etc/vsftpd/vsftpd.conf によって処理されます。ファイル内では、各指示文が独自の行に記述され、以下のような書式に従います:
<directive>=<value>
指示文ごとに、<directive> の箇所を有効な指示文に、また <value> の箇所を有効な値に置き換えます。

重要

一つの指示文内で <directive>、イコール記号、および <value> の間には空白が入ってはいけません。
コメント行の先頭には、ハッシュマーク (#) を付ける必要があります。これによって、デーモンに無視されます。
利用可能なすべての指示文の完全なリストには、vsftpd.conf の man ページをご参照ください。

重要

vsftpd をセキュリティ保護する方法の概要については、 Red Hat Enterprise Linux 6 『セキュリティガイド』 をご参照ください。
以下は、/etc/vsftpd/vsftpd.conf 内のより重要な指示文の一部の一覧です。 vsftpd の設定ファイル内で明示的に指定されていない、またはコメントアウトされている指示文はすべてデフォルト値に設定されます。

18.2.5.1. デーモンのオプション

以下は、vsftpd デーモンの全体的な動作を制御する指示文の一覧です。
  • listen — 有効にすると、vsftpd がスタンドアロンモードで稼働します。Red Hat Enterprise Linux では、この値は YES に設定されています。このディレクティブは、listen_ipv6 ディレクティブとの併用はできません。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • listen_ipv6 — 有効化すると、vsftpd がスタンドアロンモードで稼働しますが、IPv6 ソケットのみに対して待ち受けます。このディレクティブは、listen ディレクティブとは併用できません。
    デフォルト値は NO です。
  • session_support — 有効にすると、vsftpd は Pluggable Authentication Modules (PAM) を介して、各ユーザーのログインセッションの維持を試みます。詳細情報については、Red Hat Enterprise Linux 6 『Managing Single Sign-On and Smart Cards』 の 『Using Pluggable Authentication Modules (PAMの使用)』 の章と、PAM man ページを参照して下さい。セッションログインが必要でない場合は、このオプションを無効にすると vsftpd がより少ないプロセスとより低い権限で稼働するようになります。
    デフォルト値は YES です。

18.2.5.2. ログインオプションとアクセス制御

以下は、ログインの動作とアクセス制御のメカニズムをコントロールする指示文のリストです。
  • anonymous_enable — 有効になると、匿名ユーザーによるログインが可能となります。 anonymousftp のユーザー名が受け入れられます。
    デフォルト値は YES です。
    匿名ユーザーに影響する指示文の一覧には、「匿名ユーザーのオプション」 をご参照ください。
  • banned_email_filedeny_email_enable ディレクティブが YES に設定されると、このディレクティブは、サーバーへのアクセスを許可されていない匿名の電子メールパスワードの一覧を格納するファイルを指定します。
    デフォルト値は、/etc/vsftpd/banned_emails です。
  • banner_file — サーバーへの接続が確立した時に表示されるテキストを格納したファイルを指定します。このオプションは、ftpd_banner ディレクティブに記載されているあらゆるテキストを上書きします。
    この指示文にはデフォルト値はありません。
  • cmds_allowed — サーバーが許可する、FTP コマンドのコンマ区切りの一覧を指定します。その他のコマンドはすべて拒否されます。
    この指示文にはデフォルト値はありません。
  • deny_email_enable — 有効になると、/etc/vsftpd/banned_emails で指定された、電子メールのパスワードを使用する匿名ユーザーはサーバーへのアクセスを拒否されます。このディレクティブで参照されているファイル名は、banned_email_file ディレクティブを使用して指定することができます。
    デフォルト値は NO です。
  • ftpd_banner — 有効になると、サーバーへの接続が確立した時に、このディレクティブで指定されている文字列が表示されます。このオプションは、banner_file ディレクティブによって上書きすることができます。
    デフォルトでは、vsftpd は標準のバナーを表示します。
  • local_enable — 有効になると、ローカルユーザーがシステムにログイン可能となります。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
    ローカルユーザーに影響を及ぼす指示文のリストには、「ローカルユーザーのオプション」 をご参照ください。
  • pam_service_namevsftpd の PAM サービス名を指定します。
    デフォルト値は、ftp です。Red Hat Enterprise Linux 6 では、このオプションは設定ファイル内で vsftpd にセットしてあります。
  • tcp_wrappers — 有効になると、TCP wrappers はサーバーへのアクセスを認可するために使用されます。FTP サーバーが複数の IP アドレス上で設定されている場合は、クライアントが要求している IP アドレスを基にして異なる設定ファイルをロードするように VSFTPD_LOAD_CONF 環境変数を使用することができます。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • userlist_denyuserlist_enable 指示文と共に使用して NO に設定すると、ユーザー名が userlist_file 指示文が特定したファイル内にリストされていない限りは、すべてのローカルユーザーのアクセスが否認されます。クライアントにパスワードを要求する前にアクセスが否定されるため、この指示文を NO に設定しておくと、ローカルユーザーがネットワーク上で暗号化されていないパスワードを送信するのを防止します。
    デフォルト値は YES です。
  • userlist_enable — 有効になると、userlist_file 指示文が指定するファイル内にリストされたユーザーは、アクセスを否認されます。クライアントがパスワードを要求する前にアクセスが否認されるため、ユーザーがネットワーク上で暗号化されていないパスワードを送信するのを防止します。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • userlist_fileuserlist_enable ディレクティブが有効化された時に、 vsftpd が参照するファイルを指定します。
    デフォルト値は /etc/vsftpd/user_list で、これはインストール中に作成されます。

18.2.5.3. 匿名ユーザーのオプション

以下は、匿名ユーザーによるサーバーへのアクセスを制御するディレクティブのリストです。これらのオプションを使用するには、anonymous_enable ディレクティブは YES に設定する必要があります。
  • anon_mkdir_write_enablewrite_enable ディレクティブと共に有効にすると、匿名ユーザーは書き込みパーミッションを持つ親ディレクトリ内に新しいディレクトリを作成することができるようになります。
    デフォルト値は NO です。
  • anon_root — 匿名ユーザーのログイン後に vsftpd の変更先のディレクトリに指定します。
    この指示文にはデフォルト値はありません。
  • anon_upload_enablewrite_enable ディレクティブと共に有効にすると、匿名ユーザーは、書き込みパーミッションのある親ディレクトリ内でファイルをアップロードすることが可能となります。
    デフォルト値は NO です。
  • anon_world_readable_only — 有効にすると、匿名ユーザーは全ユーザーが読み取り可能なファイルのみダウンロードできるようになります。
    デフォルト値は YES です。
  • ftp_username — 匿名の FTP ユーザー用に使用される、ローカルユーザーアカウント (/etc/passwd にリストされている) を指定します。/etc/passwd で指定されているユーザー用のホームディレクトリは、匿名 FTP ユーザーの root ディレクトリです。
    デフォルト値は ftp です。
  • no_anon_password — 有効にすると、匿名ユーザーはパスワードを要求されません。
    デフォルト値は NO です。
  • secure_email_list_enable — 有効にすると、指定されたリストの匿名ログイン用 Email パスワードのみが受け入れられます。これは、仮想ユーザーの必要なしに、パブリックコンテンツに対して限定的なセキュリティを提供する便利な方法です。
    提供されたパスワードが /etc/vsftpd/email_passwords にリストされていなければ、匿名ログインはできません。ファイル形式は、一行につきパスワード 1 つで、末尾にスペースは入りません。
    デフォルト値は NO です。

18.2.5.4. ローカルユーザーのオプション

以下は、ローカルユーザーがサーバーにアクセスする方法を特徴付けるディレクティブの一覧です。これらのオプションを使用するには、local_enable ディレクティブを YES に設定する必要があります。
  • chmod_enable — 有効になると、ローカルユーザーに FTP コマンド SITE CHMOD が許可されます。このコマンドにより、ユーザーはファイル上のパーミッションを変更することができるようになります。
    デフォルト値は YES です。
  • chroot_list_enable — 有効になると、chroot_list_file ディレクティブで指定されているファイルにリストされているローカルユーザーは、ログイン時に chroot jail に配置されます。
    chroot_local_user ディレクティブと共に有効化されると、chroot_list_file ディレクティブで指定されているファイルにリストされているローカルユーザーは、ログイン時に chroot jail には 配置されません
    デフォルト値は NO です。
  • chroot_list_filechroot_list_enable ディレクティブが YES に設定された場合に参照されるローカルユーザーのリストを格納するファイルを指定します。
    デフォルト値は /etc/vsftpd/chroot_list です。
  • chroot_local_user — 有効になると、ログイン後に、ローカルユーザーのホームディレクトリにルートディレクトリが変更されます。
    デフォルト値は NO です。

    警告

    chroot_local_user を有効にすると、特にアップロードの権限を持つユーザーに関して、多くのセキュリティ問題が発生する可能性が出てきます。このため、このオプションは 推奨されません
  • guest_enable — 有効になると、非匿名ユーザーは guest_username ディレクティブで指定されているローカルユーザーである ユーザー guest としてログインします。
    デフォルト値は NO です。
  • guest_usernameguest ユーザーがマッピングされるユーザー名を指定します。
    デフォルト値は ftp です。
  • local_root — ローカルユーザーのログイン後に vsftpd の変更先となるディレクトリを指定します。
    この指示文にはデフォルト値はありません。
  • local_umask — ファイル作成の umask 値を指定します。デフォルト値は、8 進法の形式 (8 を基数とする数値システム) で、"0" プレフィックスが含まれている点に注意してください。そ例外の場合は、10 進法の整数として扱われます。
    デフォルト値は 077 です。Red Hat Enterprise Linux 6 では、このオプションは設定ファイル内で 022 に設定されています。
  • passwd_chroot_enablechroot_local_user ディレクティブと共に有効になると、vsftpd/etc/passwd のホームディレクトリフィールド内の /./ の発生に基づいてローカルユーザーのルートディレクトリを変更します。
    デフォルト値は NO です。
  • user_config_dir — ローカルシステムユーザーの名前が付いた、そのユーザー固有の設定が格納されている設定ファイルを格納するディレクトリへのパスを指定します。ユーザーの設定ファイル内のディレクティブは、/etc/vsftpd/vsftpd.conf の設定ファイルを上書きします。
    この指示文にはデフォルト値はありません。

18.2.5.5. ディレクトリのオプション

以下は、ディレクトリに影響を及ぼすディレクティブの一覧です。
  • dirlist_enable — 有効になると、ユーザーはディレクトリ一覧を閲覧することができるようになります。
    デフォルト値は YES です。
  • dirmessage_enable — 有効になると、メッセージファイルのあるディレクトリにユーザーが入った際には常にメッセージが表示されます。このメッセージは、作業中のディレクトリ内に常駐します。このファイル名は、message_file ディレクティブ内で指定されており、デフォルトでは .message です。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • force_dot_files — 有効になると、ドット (.) で始まるファイルは、ディレクトリ一覧にリストされますが、. ファイルおよび .. ファイルは例外となります。
    デフォルト値は NO です。
  • hide_ids — 有効になると、すべてのディレクトリ一覧で ftp は各ファイルのユーザーおよびグループとして表示されます。
    デフォルト値は NO です。
  • message_filedirmessage_enable ディレクティブを使用する場合にメッセージファイルの名前を指定します。
    デフォルト値は .message です。
  • text_userdb_names — 有効になると、テストユーザー名とグループ名が UID と GID エントリーの代わりに使用されます。このオプションを有効にすると、サーバーのパフォーマンスが低下する可能性があります。
    デフォルト値は NO です。
  • use_localtime — 有効になると、ディレクトリ一覧に GMT ではなく現地時間が表示されます。
    デフォルト値は NO です。

18.2.5.6. ファイル転送のオプション

以下は、ディレクトリに影響を及ぼすディレクティブの一覧です。
  • download_enable — 有効になると、ファイルのダウンロードが許可されます。
    デフォルト値は YES です。
  • chown_uploads — 有効になると、匿名ユーザーがアップロードしたファイルはすべて、chown_username ディレクティブで指定されたユーザーが所有することになります。
    デフォルト値は NO です。
  • chown_usernamechown_uploads ディレクティブが有効化されている場合に、匿名でアップロードされたファイルの所有権を指定します。
    デフォルト値は root です。
  • write_enable — 有効になると、ファイルシステムの変更が可能な DELERNFR、および STOR などの FTP コマンドが使用可能となります。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。

18.2.5.7. ロギングのオプション

以下は、vsftpd のロギング動作に影響を及ぼすディレクティブのリストです。
  • dual_log_enablexferlog_enable と共に有効になると、vsftpd は次にあげる 2 つのファイルに同時に書き込みを行います:xferlog_file ディレクティブで指定されたファイル (デフォルトでは /var/log/xferlog) に対する wu-ftpd 互換のログ、ならびにvsftpd_log_file ディレクティブ (デフォルトでは /var/log/vsftpd.log) で指定されている標準の vsftpd ログファイル。
    デフォルト値は NO です。
  • log_ftp_protocolxferlog_enable と共に有効になり、xferlog_std_formatNO に設定されると、すべての FTP コマンドと応答がログ記録されます。このディレクティブはデバッグに有用です。
    デフォルト値は NO です。
  • syslog_enablexferlog_enable と共に有効になると、vsftpd_log_file ディレクティブ (デフォルトでは /var/log/vsftpd.log) が指定する標準の vsftpd ログファイルに通常書き込まれるすべてのログは、代わりに、FTPD ファシリティ下のシステムロガーに送信されます。
    デフォルト値は NO です。
  • vsftpd_log_filevsftpd ログファイルを指定します。このファイルを使用するには、xferlog_enable を有効化し、かつ xferlog_std_formatNO に設定するか、またはそれが YES に設定されている場合は、dual_log_enable を有効化する必要があります。syslog_enableYES に設定されている場合、このディレクティブで指定したファイルではなく、システムログが使用されることは、注意すべき重要なポイントです。
    デフォルト値は /var/log/vsftpd.log です。
  • xferlog_enable — 有効になると、vsftpd は接続 (vsftpd 形式のみ) およびファイル転送情報を、vsftpd_log_file ディレクティブ (デフォルトでは /var/log/vsftpd.log) で指定されているログファイルにログ記録します。xferlog_std_formatYES に設定されている場合、ファイル転送情報はログ記録されますが、接続についてはログ記録されず、xferlog_file (デフォルトでは /var/log/xferlog) で指定されているログファイルが代わりに使用されます。dual_log_enableYES 設定されている場合には、ログファイルとログ形式の両方が使用されることは注意すべき重要なポイントです。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • xferlog_filewu-ftpd 互換のログファイルを指定します。このファイルを使用するには、xferlog_enable を有効にし、かつ xferlog_std_formatYES に設定する必要があります。これは、dual_log_enableYES に設定されている場合にも使用されます。
    デフォルト値は /var/log/xferlog です。
  • xferlog_std_formatxferlog_enable と合わせて有効になると、wu-ftpd 互換のファイル転送ログのみが xferlog_file ディレクティブ (デフォルトでは /var/log/xferlog) で指定されているファイルに書き込まれます。このファイルにロギングされるのはファイル転送のみで、サーバーへの接続をログしないことは注意すべき重要なポイントです。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。

重要

旧式の wu-ftpd FTP サーバーによって書き込まれたログファイルとの互換性を維持するために、Red Hat Enterprise Linux の環境下では、xferlog_std_format ディレクティブは YES に設定されています。ただし、この設定では、サーバー接続はログ記録されないことになります。
vsftpd 形式で接続をログ記録し、かつ wu-ftpd 互換のファイル転送ログを維持するには、dual_log_enableYES に設定します。
wu-ftpd 互換のファイル転送ログを維持することが重要でない場合は、xferlog_std_formatNO に設定する、その行にハッシュマーク (#) 付きのコメントを書き込む、その行を完全に削除する、のいずれかを行います。

18.2.5.8. ネットワークのオプション

以下は、vsftpd がネットワークとのインタラクションを行う方法に影響を及ぼすディレクティブの一覧です。
  • accept_timeout — パッシブモードを使用するクライアントが接続を確立する時間を指定します。
    デフォルト値は 60 です。
  • anon_max_rate — 匿名ユーザー用の最大データ転送速度をバイト/秒で指定します。
    デフォルト値は 0 で、転送速度は制限されません。
  • connect_from_port_20 有効になると、アクティブモードでのデータ転送中にサーバー上のポート 20 を開くのに十分な権限で vsftpd が実行されます。このオプションを無効にすると、vsftpd がより低い権限で実行されますが、一部の FTP クライアントとの互換性を欠く可能性があります。
    デフォルト値は NO です。Red Hat Enterprise Linux 6 では、設定ファイル内で値が YES に設定されています。
  • connect_timeout — アクティブモードを使用するクライアントがデータ接続に応答する際の最大限の時間を秒数で指定します。
    デフォルト値は 60 です。
  • data_connection_timeout — データ転送でストール (stall) することができる最大時間を秒数で指定します。トリガーされるとリモートクライアントへの接続は閉鎖されます。
    デフォルト値は 300 です。
  • ftp_data_portconnect_from_port_20YES に設定されている場合に、アクティブなデータ接続に使用するポートを指定します。
    デフォルト値は 20 です。
  • idle_session_timeout — リモートクライアントからのコマンドの最大時間間隔を指定します。トリガーされると、リモートクライアントへの接続は閉鎖されます。
    デフォルト値は 300 です。
  • listen_addressvsftpd がネットワーク接続をリッスンする IP アドレスを指定します。
    この指示文にはデフォルト値はありません。

    注記

    異なる IP アドレスを提供する vsftpd の複数コピーを実行する場合は、vsftpd デーモンの各コピー用の設定ファイルには、この指示文用に異なる値がなければなりません。マルチホームの FTP サーバーについての更なる情報には、「vsftpd の複数コピーの起動」 をご参照ください。
  • listen_address6listen_ipv6YES に設定されている場合に、vsftpd がネットワーク接続をリッスンする IPv6 アドレスを指定します。
    この指示文にはデフォルト値はありません。

    注記

    異なる IP アドレスを提供する vsftpd の複数コピーを実行する場合は、vsftpd デーモンの各コピー用の設定ファイルには、この指示文用に異なる値がなければなりません。マルチホームの FTP サーバーについての更なる情報には、「vsftpd の複数コピーの起動」 をご参照ください。
  • listen_portvsftpd がネットワーク接続をリッスンするポートを指定します。
    デフォルト値は 21 です。
  • local_max_rate — サーバーにログインしたローカルユーザーを対象とするデータ転送の最大速度をバイト/秒で指定します。
    デフォルト値は 0 で、転送速度は制限されません。
  • max_clients — サーバーがスタンドアロンモードで稼働している時に、そのサーバーに同時に接続可能なクライアントの最大数を指定します。クライアントの接続がこの数を超えると、エラーメッセージが表示されます。
    デフォルト値は 0 で、接続数は制限されません。
  • max_per_ip — 同一ソースの IP アドレスからの接続できるクライアントの最大数を指定します。
    デフォルト値は 0 で、接続数は制限されません。
  • pasv_address — Network Address Translation (NAT) ファイアウォールの背後にあるサーバーのパブリック用 IP アドレス向けに IP アドレスを指定します。これにより、vsftpd はパッシブモード接続用の正しい返信アドレスを渡すことができます。
    この指示文にはデフォルト値はありません。
  • pasv_enable — 有効になると、パッシブモードの接続が可能となります。
    デフォルト値は YES です。
  • pasv_max_port — パッシブモード接続用に FTP クライアントに送信される可能な限り高いポートを指定します。この設定は、ポートの範囲を制限することでファイアウォールのルール作成が容易にするために使われます。
    デフォルト値は、0 で、最高のパッシブポート範囲は制限されません。この値は、65535 を超えてはなりません。
  • pasv_min_port — パッシブモード接続用に FTP クライアントに送信される可能な限り低いポートを指定します。この設定は、ポートの範囲を制限することでファイアウォールのルール作成が容易にするために使われます。
    デフォルト値は 0 で、最低パッシブポートの範囲は制限されません。この値は、1024 より低くなってはいけません。
  • pasv_promiscuous — 有効となると、データ接続が同一の IP アドレスを起源とすることを確認するためのチェックは行われません。この設定は、特定タイプのトンネリングのみに有用です。

    警告

    データ転送を開始した制御接続として、同一の IP アドレスを起源とするパッシブモード接続を検証する重要なセキュリティ機能が無効になってしまうため、このオプションは、絶対的に必要でない限りは有効化しないでください。
    デフォルト値は NO です。
  • port_enable — 有効になると、アクティブモードの接続が可能となります。
    デフォルト値は YES です。