vsftpd は、FTP サーバーが持つ幅広く利用できる他のカスタマイズレベルを提供しませんが、システム管理者のニーズの殆んどを充足するオプションを提供します。機能過剰でない現実性が設定やプログラムの不要なエラーを抑制しています。
vsftpd の全ての設定はその設定ファイルである/etc/ vsftpd/vsftpd.conf によって処理されます。各ディレクティブはファイル内に 独自の行を持ち、次の形式に従います:
<directive>=<value> |
各ディレクティブでは、<directive>の部分を 有効なディレクティブで入れ換え、<value>の部分を 有効な値に入れ換えます。
![]() | 重要 |
---|---|
ディレクティブ内では<directive> とイコールマーク と<value> の間にスペースがあってはいけません。 |
コメント行はハッシュマーク(#)が先頭に付き、デーモンには 無視されます。
利用できるディレクティブの総括的なリストに関してはvsftpd.conf の man ページを参照して下さい。
![]() | 重要 |
---|---|
vsftpd を安全にする方法の概要は、Red Hat Enterprise Linux セキュリティガイド 内にあるサーバーセキュリティ(Server Security)と言う章を 参照して下さい。 |
以下に/etc/vsftpd/vsftpd.conf内でのより重要なディレクティブの いくつかをリストで示します。vsftpdの設定ファイル内ではっきりと 見ることの出来ないディレクティブはすべて、デフォルトの値で設定してあります。
以下に vsftpdデーモンの全ての動作を制御するディレクティブを リストで示します。
listen — 有効になっていれば、vsftpdはスタンドアロンモードで実行します。Red Hat Enterprise Linux はその値を YESにセットします。このディレクティブはlisten_ipv6 ディレクティブと一緒に使用することは出来ません。
デフォルトの値は NOです。
listen_ipv6 — 有効になっている場合、vsftpdはスタンドアロンモードで実行します。しかし、IPv6 ソケットのみしかリッスンしません。このディレクティブはlistenディレクティブと一緒に使用することは出来ません。
デフォルトの値は NOです。
session_support — 有効になっている場合、vsftpdは PAM (Pluggable Authentication Modules)を通じて各ユーザー用のログインセッションを保全しようと試みます。PAM についての詳細情報は章16章を参照して下さい。もし、セッションのログインが不要な場合、このオプションを無効にすることでvsftpdはより少ないプロセスとより低い権限で実行できるようになります。
デフォルトの値は YESです。
以下にログインの動作とアクセス制御のメカニズムをコントロールするディレクティブ をリストで示します。
anonymous_enable — 有効になっている場合、匿名ユーザーは ログインできます。ユーザー名 anonymousと ftpが認可されます。
デフォルトの値は YESです。
匿名ユーザーに関係するディレクティブのリストに関しては項15.5.3を参照して下さい。
banned_email_file — もし、deny_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 — 有効になっている場合、ローカルユーザーはシステムにログインが許可されます。
デフォルトの値は YESです。
ローカルユーザーに関連するディレクティブのリストに付いては項15.5.4を参照して下さい。
pam_service_name — vsftpd用の PAM サービスネームを指定します。
デフォルトの値はftpです。Red Hat Enterprise Linuxでは、その値が vsftpdにセットしてあります。
tcp_wrappers — 有効になっている場合、サーバーへのアクセスを許可するのに TCP ラッパーが使用されます。また FTP サーバーが複数の IP アドレスで構成されている場合は、VSFTPD_LOAD_CONFオプションは、クライアントに要求される IP アドレスを基にした別の設定ファイルをロードするのに使用できます。 TCP ラッパーに付いての詳細情報は章17章を参照して下さい。
デフォルトの値はNOです。Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
userlist_deny — userlist_enableの ディレクティブと組合せで使用されて、NOにセットされた場合、 全てのローカルユーザーは、userlist_fileディレクティブに指定 されたファイルにユーザー名がリストされている場合以外は、アクセスを拒否されます。 アクセスは、クライアントがパスワードを問われる前に、拒否されることから、この ディレクティブをNOにセットするとローカルユーザーがネット ワーク上で平文のパスワードを渡すことを防止します。
デフォルトの値は YESです。
userlist_enable — 有効な場合、userlist_fileディレクティブに指定されたファイルにリストしてあるユーザーはアクセスを 拒否されます。クライアントがパスワードを問われる前にアクセスが拒否されますので、 ユーザーがネットワーク上で平文のパスワードを渡すのが防止されます。
デフォルトの値はNOですが、Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
userlist_file — userlist_enableのディレクティブが有効な場合、vsftpdによって参照されるファイルを指定します。
デフォルトの値は、/etc/vsftpd.user_listです。そして インストール中に作成されます。
cmds_allowed — サーバーが許可する FTP コマンドの コンマで分離されたリストを指定します。
このディレクティブ用のデフォルト値はありません。
以下にサーバーへの匿名ユーザーアクセスを制御するディレクティブのリストを示します。これらのオプションを使用するには、anonymous_enableのディレクティブがYESにセットされる必要があります。
anon_mkdir_write_enable — write_enable ディレクティブと組合せで有効になっている場合、匿名ユーザーは、書き込み権限を持つ親ディレクトリ内で新規のディレクトリを作成することが許可されます。
デフォルトの値は NOです。
anon_root — 匿名ユーザーがログインした後にvsftpd が移行する先のディレクトリを指定します。
このディレクティブ用のデフォルト値はありません。
anon_upload_enable — write_enableの ディレクティブと組合せで有効になっている場合、匿名ユーザーは書き込み権限を持つ 親ディレクトリ内でファイルをアップロードすることが許可されます。
デフォルトの値は NOです。
anon_world_readable_only — 有効な場合、匿名ユーザーは全てが読み取り出来るファイルのダウンロードすることを許可されます。
デフォルトの値は YESです。
ftp_username — 匿名の FTP ユーザー用に使用されるローカルユーザーアカウント(/etc/passwd内にリスト)を指定します。そのユーザー用の /etc/passwd内に指定されたホームディレクトリは匿名 FTP ユーザーのルートディレクトリです。
デフォルトの値はftpです。
no_anon_password — 有効な場合、匿名ユーザーはパスワードを要求されません。
デフォルトの値は NOです。
secure_email_list_enable — 有効な場合、匿名ログイン 用の指定された電子メールパスワードリストのみが認可されます。これが、仮想ユーザー の必要なしに公共コンテンツへ限定的セキュリティを提供する便利な手段となります。
用意されたパスワードが/etc/vsftpd.email_passwordsに リストされていない限り、匿名ログインは防止されます。ファイル形式は空白の ない1行に付き1パスワードとなります。
デフォルトの値は NOです。
以下にローカルユーザーがサーバーにアクセスする方法を特徴付けるするディレクティブのリストを示します。これらのオプションを使用するには、local_enableディレクティブがYESにセットされている必要があります。
chmod_enable — 有効な場合、FTP コマンドの SITE CHMODはローカルユーザーにより使用可能です。 このコマンドはユーザーがファイルの権限を変更することを許可します。
デフォルトの値は YESです。
chroot_list_enable — 有効な場合、chroot_list_file ディレクティブ内に指定されたファイルにリストされたローカルユーザーはログイン時に chroot 環境に配置されます。
chroot_local_userディレクティブと共に有効になっている場合、 chroot_list_fileディレクティブ内で指定されたファイルのリストにあるローカルユーザーは、ログイン時に chroot 環境に配置されません。
デフォルトの値は NOです。
chroot_list_file — chroot_list_enable ディレクティブがYESにセットしてある場合、参照されるローカルユーザーのリストを含むファイルを指定します。
デフォルトの値は/etc/vsftpd.chroot_listです。
chroot_local_user — 有効な場合、ローカルユーザーは、 ログインの後にそのホームディレクトリにルート変更されます。
デフォルトの値は NOです。
![]() | 警告 |
---|---|
chroot_local_userを有効にすると多くのセキュリティ問題、特にアップロードの権限を持つユーザーにとっての問題に遭遇します。この理由で推薦できません。 |
guest_enable — 有効な場合、全ての非匿名ユーザーは guestユーザーとしてログインされます。これはすなわち guest_usernameディレクティブに指定されたローカルユーザーです。
デフォルトの値は NOです。
guest_username — guestユーザーがマップされているユーザー名を指定します。
デフォルトの値はftpです。
local_root — ローカルユーザーがログインした後に vsftpdが移動するディレクトリを指定します。
このディレクティブ用のデフォルト値はありません。
local_umask — ファイル作成の umask の値を指定します。デフォルトの値は8進法(8を基準にした数値システム)形式で、これは接頭辞「0」を持ちます。それ以外では、値は10ベースの整数として扱います。
デフォルト値は022です。
passwd_chroot_enable — chroot_local_userディレクティブと共に有効な場合、 vsftpdは/etc/ passwd内のホームディレクトリフィールドの/./の 発動を基にしてローカルユーザーのルート変更をします。
デフォルトの値は NOです。
user_config_dir — ユーザー用の特定の設定を含むローカルユーザーシステムユーザーの名前を持つ設定ファイルを含んだディレクトリへのパスを指定します。そのユーザーの設定ファイル内のディレクティブはいずれも/etc/ vsftpd/vsftpd.confの中にあるディレクティブを上書きします。
このディレクティブ用のデフォルト値はありません。
以下にディレクトリに関連するディレクティブのリストを示します。
dirlist_enable — 有効な場合、ユーザーはディレクトリの リストを表示することが許可されます。
デフォルトの値は YESです。
dirmessage_enable — 有効な場合、あるユーザーがメッセージ ファイルを持つディレクトリの1つに入った時にメッセージを表示します。このメッセージ は入り込んだディレクトリの中で見付けることができます。このファイルの名前は message_fileディレクティブ内に指定されており、デフォルトでは .messageです。
デフォルトの値はNOです。Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
force_dot_files — 有効な場合、ドット(.)で始まるファイルはディレクトリ一覧に示してありますが、 .と..ファイルは例外です。
デフォルトの値は NOです。
hide_ids — 有効な場合、全てのディレクトリ一覧は 各ファイルのユーザーとグループとしてftpを 示します。
デフォルトの値は NOです。
message_file — dirmessage_enableの ディレクティブを使用している場合、メッセージファイルの名前を指定します。
デフォルトの値は.messageです。
text_userdb_names — 有効な場合、ユーザー名とグループ名のテストは UID と GID のエントリーの代用として使用されます。このオプションを有効にすると、サーバーのパフォーマンスを低下させる可能性があります。
デフォルトの値は NOです。
use_localtime — 有効な場合、ディレクトリ一覧は GMT の代わりにコンピュータのローカル時間を表示します。
デフォルトの値は NOです。
以下にディレクトリに関連するディレクティブのリストを示します。
download_enable — 有効な場合、ファイルのダウンロードが 許可されます。
デフォルトの値は YESです。
chown_uploads — 有効な場合、匿名ユーザーによって アップロードされたファイルの全てはchown_usernameディレクティブ に指定されたユーザーの所有となります。
デフォルトの値は NOです。
chown_username — chown_uploadsの ディレクティブが有効な場合、匿名でアップロードされたファイルの所有権を指定 します。
デフォルトの値はrootです。
write_enable — 有効な場合、DELE, RNFR, 及び STOR などのファイルシステムを変更できる FTP コマンドが許可されます。
デフォルトの値は YESです。
以下にvsftpdロギングの動作に影響するディレクティブのリストを示します。
dual_log_enable — xferlog_enableと 一緒に有効になっている場合、vsftpdは、xferlog_file ディレクティブ内に指定されたファイルへwu-ftpd 互換の ログ(デフォルトで/var/log/xferlog)ログ、及びvsftpd_ log_file ディレクティブ内に指定されたログファイル(デフォルトで/ var/log/vsftpd.log)の2つのファイルを同時に書き込みます。
デフォルトの値は NOです。
log_ftp_protocol — xferlog_enableと xferlog_std_formatと一緒に有効になっている状態で、さらに NOにセットしてある場合、FTP コマンドと反応はすべてログされます。このディレクティブはデバッグに役に立ちます。
デフォルトの値は NOです。
syslog_enable — xferlog_enableと一緒に有効になっている場合、vsftpd_log_fileディレクティブ内に指定されたログファイル(デフォルトで/var/log/vsftpd.log)へ通常に書き込まれた全てのロギングは、FTPD の環境にではなく、システムロガーに転送されます。
デフォルトの値は NOです。
vsftpd_log_file — vsftpd ログファイルを指定します。このファイルを使用するには、xferlog_enableが有効になっている必要があり、xferlog_std_formatがNO にセットされている必要があります。あるいはxferlog_std_formatが YESにセットされている場合、dual_log_enableが 有効になっている必要があります。syslog_enableがYESにセットされていない場合、このディレクティブ内に指定されたファイルの代わりに、システムログが使用されることに留意して下さい。
デフォルトの値は/var/log/vsftpd.logです。
xferlog_enable — 有効な場合、vsftpdは、 接続(vsftpd形式のみ)とvsftpd_log_fileの ディレクティブ内に指定されたログファイルへのファイル転送情報(デフォルトでは /var/log/vsftpd.log)のログを取ります。xferlog_std_ formatがYESへセットされている場合、ファイル転送情報は ログされますが、接続はログされません。そしてxferlog_file内に 指定されたログファイル(デフォルトで/var/log/xferlog)が代わりに 使用されます。dual_log_enableがYESにセット されている場合、両方のログファイルとログ形式が使用されることに留意して下さい。
デフォルトの値はNOです。Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
xferlog_file — wu-ftpd互換のログ ファイルを指定します。このファイルを使用するには、xferlog_enable が有効でなければならず、 xferlog_std_formatがYESにセットされている必要があります。dual_log_enableが YESにセットされている場合も、これが使用されます。
デフォルトの値は/var/log/xferlogです。
xferlog_std_format — xferlog_enableと 一緒に有効になっている場合、wu-ftpd互換のファイル転送ログのみが xferlog_fileディレクティブ内に指定されたファイルへ書き込まれ ます。(デフォルトで/var/log/xferlog)。このファイルはファイル 転送のみをログして、サーバーへの接続はログしないことに留意して下さい。
デフォルトの値はNOです。Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
![]() | 重要 |
---|---|
古いwu-ftpd FTP サーバーで書かれたログファイルとの互換性を維持 するには、xferlog_std_formatディレクティブは、Red Hat Enterprise Linuxの中では YESにセットされている必要があります。この設定では、サーバーへの 接続がログされないという意味になります。 vsftpd形式で接続をログして、さらにwu-ftpd 互換のファイル転送ログを維持するには、dual_log_enableを YESにセットします。 wu-ftpd互換のファイル転送ログの維持が重要でない場合は、 xferlog_std_formatをNOにセットするか 又は その行をハッシュマーク(#)でコメント化するか、あるいはその行を 全て削除します。 |
以下にvsftpdが、ネットワークに対応する仕方に影響するディレクティブのリストを示します。
accept_timeout — 接続を確立する為にパッシブモードを 使用しているクライアント用の時間を指定します。
デフォルト値は60です。
anon_max_rate — 匿名ユーザー用に最大データ転送レートを 秒単位のバイト数で指定します。
デフォルトの値は0で、これは転送レートを制限しません。
connect_from_port_20 が有効な場合、vsftpdは アクティブモードのデータ転送中にサーバー上のポート20を開く為に十分な権限で実行 されます。このオプションを無効にすると、vsftpdをより少ない 権限で実行させることになりますが、幾つかの FTP クライアントとの互換がなくなる 可能性があります。
デフォルトの値はNOです。Red Hat Enterprise Linuxでは、その値が YESにセットしてあります。
connect_timeout — アクティブモードを使用している クライアントがデータ接続に反応する必要のある最大限時間を秒数で指定します。
デフォルト値は60です。
data_connection_timeout — データ転送が停止を許される 最大限の時間を秒数で指定します。これが開始されるとリモートクライアントへの接続は 閉じられます。
デフォルト値は300です。
ftp_data_port — connect_from_port_20が YESにセットされている時に、アクティブデータ接続用に使用される ポートを指定します。
デフォルト値は20です。
idle_session_timeout — 1つのクライアントからのコマンドと コマンドの間の最大許容時間を指定します。これが開始されるとリモートクライアントへの 接続は閉じられます。
デフォルト値は300です。
listen_address — vsftpdがネットワーク 接続用にリッスンする IP アドレスを指定します。
このディレクティブ用のデフォルト値はありません。
![]() | ヒント |
---|---|
別々の IP アドレスにサービスしている vsftpdの複数コピーを 実行している場合、vsftpdデーモンの各コピーはこのディレクティブ 用に別の値を持つことが必要です。マルチホームの FTP サーバーに関する詳細情報は 項15.4.1を参照して下さい。 |
listen_address6 — listen_ipv6が YESにセットされている場合、ネットワーク接続用にvsftpdがリッスンする為の IPv6 アドレスを指定します。
このディレクティブ用のデフォルト値はありません。
![]() | ヒント |
---|---|
別々の IP アドレスにサービスしている vsftpdの複数コピーを 実行している場合、vsftpdデーモンの各コピーはこのディレクティブ 用に別の値を持つことが必要です。マルチホームの FTP サーバーに関する詳細情報は 項15.4.1を参照して下さい。 |
listen_port — ネットワーク接続用にvsftpd がリッスンする為のポートを指定します。
デフォルト値は21です。
local_max_rate — サーバーにログされているローカルユーザー用に転送されるデータの最大許容レートを秒単位のバイト数で指定します。
デフォルトの値は0で、これは転送レートを制限しません。
max_clients — スタンドアロンモードで実行中の時の サーバーへ同時接続を許可されたクライアントの最大許容数を指定します。余分の クライアント接続は、エラーメッセージとなります。
デフォルト値は0で、これは接続を制限しません。
max_per_ip — 同じソースの IP アドレスから接続を許可 されるクライアントの最大許容数を指定します。
デフォルト値は0で、これは接続を制限しません。
pasv_address — Network Address Translation (NAT)の ファイヤウォールの背後にあるサーバー用のサーバーの公共向けの IP アドレスの為の IP アドレスを指定します。
このディレクティブ用のデフォルト値はありません。
pasv_enable — 有効な場合、パッシブモードの接続を 許可します。
デフォルトの値は YESです。
pasv_max_port — パッシブモード接続用の FTP クライアント に送られる最高限度のポートを指定します。この設定は、ファイアウォール規則が より簡単に作成できるようにポートの範囲を制限するのに使用されます。
デフォルト値は0で、これはパッシブポート範囲の最高限度を制限しません。この値は、65535を越えてはいけません。
pasv_min_port — パッシブモートの接続用の FTP クライアントへ送られる最低限度のポートを指定します。この設定はファイアウォール規則をより簡単に作成できるようにポートの範囲を制限するのに使用されます。
デフォルト値は0で、これはパッシブポート範囲の最低限度を制限しません。この値は1024より低くてはいけません。
pasv_promiscuous — 有効な場合、データ接続は同じ IP アドレスからでて来ているかの確認をしません。この設定は単にトンネリングの一部のタイプに役に立つだけです。
![]() | 注意 |
---|---|
このオプションは絶対に必要な時以外は、有効にしないで下さい。有効にすると、データ転送を開始する制御接続と同一の IP アドレスからでてくるパッシブモード接続を確証する重要なセキュリティ機能を解除してしまいます。 |
デフォルトの値は NOです。
port_enable — 有効な場合、アクティブモードの接続が許可されます。
デフォルトの値は YESです。