vsftpdの設定(vsftpd.conf)
作成 : 2003/08/21
修正 : 2005/05/15
vsftpd.conf(vsftpd-2.0.1-5)に指定できるオプションの一覧。 カテゴリわけは適当。
vsftpd の設定(システムなど) [TOP]
listen=[YES|NO] (Default:NO)
vsftpdをスタンドアロンモードで起動する。 inetdやxinetdから起動する場合は、無効にする。
listen_ipv6=[YES|NO] (Default:NO)
IPv4ソケットの代わりにIPv6ソケットをリスンする。 このオプションとlistenオプションは、同時に有効にすることができない。
listen_address (Default:none)
スタンドアロンモードでvsftpdを起動するとき、リスンするアドレスを指定する。 このオプションを設定しないと、すべてのローカルインターフェースをリスンする。
background=[YES|NO] (Default:NO)
vsftpdをスタンドアロンモードで起動するとき、プロセスをバックグラウンドジョブにする。
listen_address6 (Default:none)
スタンドアロンモードでvsftpdを起動するとき、リスンするIPv6アドレスを指定する。
listen_port=numeric (Default:21)
スタンドアロンモードでvsftpdを起動するとき、FTP接続をリスンするポートを指定する。
nopriv_user (Default:nobody)
vsftpdが使用する非特権ユーザを指定する。 デフォルトのnobodyユーザでなく、vsftpd専用の非特権アカウントを使用したほうがよい。
run_as_launching_user=[YES|NO] (Default:NO)
有効にすると、vsftpdを起動したユーザの権限で動作する。 このオプションを有効にすると、chrootを使用できないので注意。 また、他のオプションの使用が制限される。
secure_chroot_dir (Default:/usr/share/empty)
vftpdがファイルアクセスを要求しないときに使用するディレクトリを指定する。 このオプションで指定するディレクトリは、ftpユーザが書き込み不可能な状態(所有者root、パーミッション755とか)にしておくこと。
# ls -ld /usr/share/empty
drwxr-xr-x 2 root root 4096 1月 25 2003 /usr/share/empty/
ascii_download_enable=[YES|NO] (Default:NO)
asciiモードのダウンロードを許可する。 無効にすると、すべてbinaryモードでダウンロードされる。 デフォルトは無効
ascii_upload_enable=[YES|NO] (Default:NO)
asciiモードのアップロードを許可する。 無効にすると、すべてbinaryモードでアップロードされる。 デフォルトは無効
file_open_mode=numeric (Default:0666)
アップロードしたファイルのパーミッションを指定する。 実際のパーミッションは、anon_umaskオプション(匿名ユーザに適用、デフォルトは077)またはlocal_umaskオプション(ローカルユーザに適用、デフォルトは077)で指定した値でマスクされたものになる。
max_clients=numeric (Default:0 --- unlimited)
スタンドアロンモードでvsftpdを起動するとき、同時に接続可能な最大クライアント数を指定する。
max_per_ip=numeric (Default:0 --- unlimited)
スタンドアロンモードでvsftpdを起動するとき、同じIPアドレスから同時に接続可能な最大クライアント数を指定する。
tcp_wrappers=[YES|NO] (Default:NO)
vsftpdがtcp_wrapperをサポートするようコンパイルされていれば、サーバへの接続はtcp_wrapperによって制御される。
check_shell=[YES|NO] (Default:YES)
/etc/shellsファイルをチェックする。 このオプションは、PAMを使用しないときだけ効果がある。
pam_service_name (Default:ftp)
vsftpdが使用するPAMサービス名を指定する。
one_process_model=[YES|NO] (Default:NO)
linuxカーネル2.4 を使用しているとき、ひとつのコネクションにひとつのプロセスだけ使用する。 このオプションを有効にするには、local_enableオプションが無効(= 匿名ログオンだけ可能)になっていなければならない。
session_supoprt=[YES|NO] (Default:NO)
セッションのログを、/var/log/wtmpファイルと/var/log/utmpファイルに記録する。 このオプションを有効にすると、誰がFTP接続しているかをwhoコマンドなどで確認することができる。
trans_chunk_size (Default:0 --- letvsftpdpick a sensible setting)
You probably don't want to change this, but try setting it to something like 8192 for a much smoother bandwidth limiter.
use_sendfile=[YES|NO] (Default:YES)
sendfile()システムコールを使用するらしい。
An internal setting used for testing the relative benefit of using the sendfile() system call on your platform.
setproctitle_enable=[YES|NO] (Default:NO)
セッションの状態をプロセスリストに表示する。 このオプションを有効にして、psコマンドでプロセスリストをみると、vsftpdの状態を確認することができる。 下の例は、匿名ログインしたときのvsftpdプロセスリスト。
# ps -ef | grep vsftpd root 19027 1 0 11:47 pts/2 00:00:00 vsftpd: LISTENER ftp 19050 1 0 11:53 ? 00:00:00 vsftpd: X.X.X.X/ftp: IDLE
vsftpd の設定(タイムアウト) [TOP]
accept_timeout=numeric[sec] (Default:60)
このオプションで指定した時間内に、リモートクライアントがPASVデータコネクションを確立できなかった場合、切断する。
connect_timeout=numeric[sec] (Default:60)
このオプションで指定した時間内に、リモートクライアントがPORTデータコネクションに応答しなかった場合、切断する。
data_connection_timeout=numeric[sec] (Default:300)
このオプションで指定した時間、データを転送しなかった場合、切断する。
idle_session_timeout=numeric[sec] (Default:300)
このオプションで指定した時間内に、リモートクライアントがFTPコマンドを実行しなかった場合、切断する。
vsftpd の設定(ログ) [TOP]
xferlog_enable=[YES|NO] (Default:NO)
xferlog_std_format=[YES|NO] (Default:NO)
xferlog_enableオプションを有効にすると、ファイルのアップロードとダウンロードをログファイルに記録する。 xferlog_std_formatオプションが無効のとき、vsftpd_log_fileオプション(デフォルトは/var/log/vsftpd.log)で指定したファイルにvsftpdスタイルでログを記録する。 xferlog_std_formatオプションが有効のとき、xferlog_fileオプション(デフォルトは/var/log/xferlog)で指定したファイルに wu-ftpd スタイルでログを記録する。
dual_log_enable=[YES|NO] (Default:NO)
xferlog_enableオプションの設定にかかわらず、wu-ftpdスタイルの転送ログとvsftpd独自スタイルの転送ログを、ふたつのファイルに記録する。 無効にすると、xferlog_std_formatオプションの設定によって、どちらかのログが記録される。 wu-ftpdスタイルの転送ログファイルは、vsftpd_log_fileオプション(デフォルトは/var/log/vsftpd.log)で指定できる。 vsftpdスタイルの転送ログファイルは、xferlog_fileオプション(デフォルトは/var/log/xferlog)で指定できる。
syslog_enable=[YES|NO] (Default:NO)
vsftpdスタイルのログを syslogに出力する。 xferlog_enableオプションの設定によらない。
| vsftpd.log | xferlog | syslog | ||||
|---|---|---|---|---|---|---|
| xferlog_enable=YES | syslog_enable=YES | dual_log_enable=YES | - | × | ○ | ○ |
| dual_log_enable=NO | xferlog_std_format=YES | × | ○ | ○ | ||
| xferlog_std_format=NO | × | × | ○ | |||
| syslog_enable=NO | dual_log_enable=YES | - | ○ | ○ | × | |
| dual_log_enable=NO | xferlog_std_format=YES | × | ○ | × | ||
| xferlog_std_format=NO | ○ | × | × | |||
| xferlog_enable=NO | syslog_enable=YES | dual_log_enable=YES | - | × | ○ | ○ |
| dual_log_enable=NO | - | × | × | ○ | ||
| syslog_enable=NO | dual_log_enable=YES | - | ○ | ○ | × | |
| dual_log_enable=NO | - | × | × | × | ||
vsftpd_log_file (Default:/var/log/vsftpd.log)
vsftpdスタイルのログを記録するファイル名を指定する。
xferlog_file (Default:/var/log/xferlog)
wu-ftpdスタイルのログを記録するファイル名を指定する。
log_ftp_protocol=[YES|NO] (Default:NO)
すべてのFTPリクエストとレスポンスをログファイルに記録する。 デバッグに便利。 dual_log_enableオプションが有効になっているか、xferlog_enableオプションが有効かつxferlog_std_formatオプションが無効になっていれば、dual_log_enableオプションが有効になっているか、xferlog_enableオプションが有効かつxferlog_std_formatオプションが無効になっていれば、vsfstd_log_fileオプション(デフォルトは/var/log/vsftpd.log)で指定したファイルに記録される。 xferlog には記録されない。
no_log_lock=[YES|NO] (Default:NO)
ログをファイルに書き込むとき、ファイルをロックする。 通常はこのオプションを有効にする必要はない。
vsftpd の設定(メッセージ) [TOP]
dirmessage_enable=[YES|NO] (Default:NO)
ユーザが新しいディレクトリに初めて移動したとき、メッセージを表示する。 メッセージを格納するファイルは、message_fileオプション(デフォルトは.messageファイル)で指定できる。
message_file (Default:.message)
新しいディレクトリに初めて移動したとき、表示するテキストを含むファイル名を指定する。 dirmessage_enableオプションが有効であれば、このオプションの設定は有効。
banner_file (Default:none)
サーバに接続したとき(ユーザ名を入力する前)に表示されるテキストを含むファイル名を指定する。 このオプションを設定すると、ftpd_bannerオプションを無視する。
ftpd_banner (Default:none)
サーバに接続したとき(ユーザ名を入力する前)に表示されるテキストを指定する。
vsftpd の設定(ディレクトリリスト表示) [TOP]
force_dot_files=[YES|NO] (Default:NO)
ユーザが "a" フラグをつけなくても、"." ではじまるファイルやディレクトリを表示する。 ("." と ".." を除く)
hide_ids=[YES|NO] (Default:NO)
ディレクトリリストを表示するとき、実際の所有者を隠して、ユーザとグループの情報を"ftp"と表示する。
text_userdb_names=[YES|NO] (Default:NO)
ディレクトリリストを表示するとき、ユーザとグループの情報を/etc/passwdファイルを元にテキストで表示する。 このオプションを無効にすると、UIDで表示される。
use_localtime=[YES|NO] (Default:NO)
ディレクトリリストを表示するとき、時間をローカルタイムで表示する。 このオプションを無効にすると、GMTで表示される。
vsftpd の設定(FTP コマンド) [TOP]
async_abor_enable=[YES|NO] (Default:NO)
"async ABOR"コマンドを有効にする。 一部のFTPクライアントでは、ファイル転送をキャンセルしようとすると、ハングアップしてしまうらしい。 その場合は、このオプションを有効にするそうだ。
chmod_enable=[YES|NO] (Default:YES)
"SITE CHMOD"コマンドを有効にする。 このオプションはローカルユーザにのみ適用され、匿名ユーザは常に"SITE CHMOD"コマンドを使用できない。
dirlist_enable=[YES|NO] (Default:YES)
すべてのディレクトリリストコマンドを有効にする。 無効にすると、ディレクトリリストコマンド投入時、"Permission denied."と表示される。
download_enable=[YES|NO] (Default:YES)
すべてのダウンロードコマンドを有効にする。 無効にすると、ダウンロードコマンド投入時、"Permission denied."と表示される。
ls_recurse_enable=[YES|NO] (Default:NO)
"ls -R"コマンド(ディレクトリリストを再帰的に表示)の使用を許可する。 大きなサイトのトップレベルディレクトリで"ls -R"コマンドを使用すると、多くのリソースを消費するかもしれないので注意すること。
write_enable=[YES|NO] (Default:NO)
ファイルシステムを変更するFTPコマンドを許可する。
cmds_allowed (Default:none)
許可されるFTPコマンドのリストを、カンマ区切りで指定する。 ログイン前のUSER、PASS、QUITは常に許可される。
cmds_allowed=PASV,RETR,QUIT
hide_file (Default:none)
パターンに一致するファイルとディレクトリを、ファイル一覧に表示しない。 表示されないだけなので、名前がわかっていればダウンロードなどの操作は可能。
パターンを指定するとき、'*'(0文字以上の長さの文字列と一致)と'?'(任意の1文字と一致)を使用することができる。 パターンをひとつだけ指定するときは、下の例のように','をつけないとちゃんとパターンにマッチしないようだ。 ふたつ以上指定するときは、最後の','は不要。
hide_file={*.txt,}
hide_file={*.txt,*.doc}
deny_file (Default:none)
パターンに一致するファイル/ディレクトリに対し、すべての操作を禁止する。 ファイル一覧には表示さず、操作をしようとすると"Permission denied"になる。 hide_fileオプションとあわせて使うと、FTPクライアントから見て"存在しない"ファイル/ディレクトリを作ることができる。
パターンを指定するとき、'*'(0文字以上の長さの文字列と一致)と'?'(任意の1文字と一致)を使用することができる。 パターンをひとつだけ指定するときは、下の例のように','をつけないとちゃんとパターンにマッチしないようだ。 ふたつ以上指定するときは、最後の','は不要。
deny_file={*.txt,}
deny_file={*.txt,*.doc}
tilde_user_enable=[YES|NO] (Default:NO)
チルダを使ったディレクトリ指定("~user"のような)を有効にする。 /etc/passwdファイルを読むことができないとき、チルダを使ったディレクトリ指定は失敗する。
注意! このオプションの有効/無効に関わらず、そのユーザのログインディレクトリを示すチルダ("~"、"~/dir")は使用できる。
vsftpd の設定(アクティブ FTP) [TOP]
port_enable=[YES|NO] (Default:YES)
アクティブFTP(PORTスタイルのデータコネクション)を有効にする。 アクティブFTPとパッシブFTP を参照。
connect_from_port_20=[YES|NO] (Default:NO、サンプル設定ファイルではYES)
特定のサーバポートを使用した、PORTスタイルのデータコネクション(いわゆるアクティブFTP)を有効にする。 使用するサーバのポートは、ftp_data_portオプション(デフォルトは 20)で指定できる。 このオプションを無効にすると、PORTスタイルデータコネクションで使用するサーバのポートは不定になる。
クライアントがファイアウォールの内部にいる場合、アクティブFTPを使用するにはファイアウォールに穴を開ける必要がある。 サーバからクライアントへ向けてのコネクションに特定のポートを使用することにより、ファイアウォールの設定をしやすくする。 (パッシブFTPを使用すれば、ファイアウォールに穴を開けなくてもすむ)
ftp_data_port=numeric (Default:20)
アクティブFTPで使用するサーバポートを指定する。 connect_from_port_20オプションが有効であれば、このオプションの設定は有効。
port_promiscuous=[YES|NO] (Default:YES)
このオプションを無効にすると、データコネクションがサーバからクライアントへの接続であることを保障する、セキュリティチェックをしない。
vsftpd の設定(パッシブ FTP) [TOP]
pasv_enable=[YES|NO] (Default:YES)
パッシブFTPを有効にする。 アクティブFTPとパッシブFTP を参照。
pasv_max_port (Default:0 --- use any port)
pasv_min_port (Default:0 --- use any port)
PASVデータコネクションで使用する、最大ポートと最小ポートを指定する。 使用するポートの幅を設定することで、ファイアウォールに開ける穴を狭めることができる。
pasv_address (Default:none)
PASVコマンドの応答でクライアントに通知する、サーバのIPアドレスを指定する。
> PASV 227 Entering Passive Mode (192.168.X.X,X,X)
pasv_promiscuous=[YES|NO] (Default:YES)
このオプションを無効にすると、データコネクションと制御コネクションとが同じIPアドレスからの接続であるかのチェックをしない。
vsftpd の設定(匿名ユーザでの FTP) [TOP]
anonymous_enable=[YES|NO] (Default:YES)
匿名ユーザのログインを許可する。 有効にすると、"ftp"と"anonymous"が匿名ユーザとして認識される。
ftp_username (Default:ftp)
匿名ユーザにマップされる、ローカルユーザを指定する。 このローカルユーザのホームディレクトリは、匿名でFTPログインしたときのルートディレクトリとなる。
deny_email_enable=[YES|NO] (Default:NO)
ログインを拒否する匿名パスワード(つまり、メールアドレス)のリストファイルを有効にする。 リストファイルは、banned_email_fileオプション(デフォルトは/etc/vsftpd.banned_emailsファイル)で指定できる。
banned_email_file (Default:/etc/vsftpd.banned_emails)
ログインを拒否する匿名パスワード(つまり、メールアドレス)のリストを含むファイル名を指定する。 deny_email_enableオプションが有効であれば、このオプションが検査される。
secure_email_list_enable=[YES|NO] (Default:NO)
有効にすると、匿名ログインを許可するパスワード(メールアドレス)の一覧を使用する。 パスワードの一覧は、email_password_fileオプションで指定したファイル(デフォルトは/etc/vsftpd.email_passwordsファイル)に記述する
email_password_file (Default:/etc/vsftpd.email_passwords)
匿名ログインを許可するパスワード(メールアドレス)を記述したファイルを指定する。 secure_email_list_enableオプションが有効であれば、このオプション;の設定は有効。
no_anon_password=[YES|NO] (Default:NO)
匿名ユーザに対し、パスワード入力を求めない。
anon_root (Default:none)
匿名ユーザがログイン後にchrootされるディレクトリを指定する。 このオプションを設定しないと、ftp_usernameオプションで匿名ユーザにマップした、ローカルユーザのホームディレクトリにchrootされる。
anon_world_readable_only=[YES|NO] (Default:YES)
匿名ユーザはworld readable(少なくとも r--r--r--)なファイルのみダウンロードできる。
これを有効にしてanon_umaskオプションを"077"とすると、匿名ユーザがアップロードしたファイルを匿名ユーザがダウンロードできなくなる。 (匿名ユーザがアップロードしたファイルのパーミッションは rw------- となり、world readableでないため)
anon_mkdir_write_enable=[YES|NO] (Default:NO)
匿名ユーザが新規ディレクトリを作成することを許可する。 write_enableオプションが有効になっており、親ディレクトリに匿名ユーザに対する書き込み許可が設定されていること。
anon_other_write_enable=[YES|NO] (Default:NO)
匿名ユーザがファイルを削除すること、名前を変更することを許可する。 ディレクトリ作成とアップロードに関する許可/拒否は、別のオプションで指定する。 write_enableオプションが有効になっており、親ディレクトリに匿名ユーザに対する書き込み許可が設定されていること。
anon_upload_enable=[YES|NO] (Default:NO)
匿名ユーザがファイルをアップロードすることを許可する。 write_enableオプションが有効になっており、親ディレクトリに匿名ユーザに対する書き込み許可が設定されていること。
chown_uploads=[YES|NO] (Default:NO)
匿名ユーザがアップロードしたファイルの所有者を、chown_usernameオプションで指定したユーザにする。
chown_username (Default:root)
匿名ユーザがアップロードしたファイルの所有者を指定する。 chwon_uploadオプションが有効であれば、このオプションの設定は有効。
anon_umask=numeric (Default:077)
匿名ユーザがディレクトリやファイルを作成する際に使用される umask を指定する。 このオプションを"077"と指定すると、ディレクトリのパーミッションは"700"、ファイルのパーミッションは"600"(file_open_modeオプションを"0666"と指定した場合)で作成される。
anon_max_rate=numeric[byte/sec] (Default:0 --- unlimited)
匿名ユーザがデータ転送する際の、最大レートを指定する。
vsftpd の設定(ローカルユーザでの FTP) [TOP]
local_enable=[YES|NO] (Default:NO)
ローカルユーザのログインを許可する。 secure_chroot_dirオプションで適切なディレクトリを指定していること。
local_root (Default:none)
すべてのローカルユーザが、ログインした後に移動するディレクトリを指定する。 passwd_chroot_enableオプションが有効であれば、このオプションは検査されない。 このオプションが設定されていなければ、ホームディレクトリに移動する。
chroot_local_userオプションが有効であればchrootされる。 chroot_local_userオプションが無効であれば、単純にディレクトリを移動する。
chroot_local_user=[YES|NO] (Default:NO)
すぐ下のchroot_list_enableを参照。
chroot_list_enable=[YES|NO] (Default:NO)
chroot_list_fileオプションで指定したユーザリストファイルを読み込み、chrootさせる(または、させない)。 ややこしいので、下の表を参照。
| chroot_list_enable=YES | chroot_list_enable=NO | |
|---|---|---|
| chroot_local_user=YES | chroot_list_fileオプションで指定したファイルにリストされたユーザ以外はchrootされる | すべてのローカルユーザはchrootされる |
| chroot_local_user=NO | chroot_list_fileオプションで指定したファイルにリストされたユーザはchrootされる | すべてのローカルユーザはchrootされない |
chroot_list_file (Default:/etc/vsftpd.chroot_list)
chrootさせる(または、させない)ローカルユーザのリストを含むファイル名を指定する。
passwd_chroot_enable=[YES|NO] (Default:NO)
このオプションとchroot_local_userオプションをともに有効にすると、/etc/passwdファイルを元にユーザごとにchrootする場所を指定できる。
たとえば、/etc/passwdファイルが以下のように記述されているとする。
user:x:1000:1000::/home/./user:/bin/bash
このオプションが無効でchroot_local_userオプションが有効なとき、userユーザでログインすると/home/userディレクトリにchrootされる。
# lsof -p 18919 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vsftpd 18919 user cwd DIR 3,2 4096 904989 /home/user vsftpd 18919 user rtd DIR 3,2 4096 904989 /home/user
このオプションを有効にすると、/etc/passwdファイルにおいて "/./"は chroot させる場所を示すようになる。 userユーザでログインすると/homeディレクトリにchrootされる。
# lsof -p 18922 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vsftpd 18957 user cwd DIR 3,2 4096 275208 /home/user vsftpd 18957 user rtd DIR 3,2 4096 597969 /home
userlist_deny=[YES|NO] (Default:YES)
userlist_enable=[YES|NO] (Default:NO)
userlist_enableオプションが有効であれば、このオプションが検査される。 userlist_fileオプション(デフォルトは/etc/vsftpd.user_listファイル)で指定したファイルに含まれるユーザリストを元に、ログインの許可 / 拒否が決定される。 ログインが拒否される場合、パスワード入力を求められる前に"Permission denied."が表示される。
注意! userlist_enable、userlist_denyオプションを有効にした上、vsftpd.user_listファイルにrootユーザなどのFTPログインさせたくないユーザを記述しておくこと。
| vsftpd.user_listに含まれるユーザ | vsftpd.user_listに含まれないユーザ | ||
|---|---|---|---|
| userlist_enable=YES | userlist_deny=YES | 拒否 | 許可 |
| userlist_deny=NO | 許可 | 拒否 | |
| userlist_enable=NO | - | 許可 | |
userlist_file (Default:/etc/vsftpd.user_list)
ログインを許可または拒否するユーザのリストを含むファイル名を指定する。
local_umask=numeric (Default:077)
ローカルユーザがディレクトリやファイルを作成する際に使用されるumaskを指定する。 このオプションを"077"と設定すると、ディレクトリのパーミッションは"700"、ファイルのパーミッションは"600"(file_open_modeオプションを"0666"と設定した場合)で作成される。
local_max_rate=numeric[byte/sec] (Default:0 --- unlimited)
ローカルユーザがデータ転送する際の、最大レートを指定する。
user_config_dir (Default:none)
ユーザごとの設定を記述したファイルを置くディレクトリを指定する。 ローカルユーザがログインするときに設定ファイルを読み込むことで、このページに書かれている任意のオプションを上書きできる。 設定ファイルのフォーマットは、vsftpd.confと同じ。
たとえば、下のように設定すると、userユーザがログインするとき、/etc/vsftpd.user_config/userファイルを読み込む。
user_config_dir=/etc/vsftpd.user_config
/etc/vsftpd.user_config/userファイルで設定していないオプションは、メインのvsftpd.configの設定を引き継ぐ。 また、chroot_local_userオプションなど、一部のオプションは設定を上書きしないようだ。
vsftpd の設定(ゲストユーザでの FTP) [TOP]
guest_enable=[YES|NO] (Default:NO)
匿名でないすべてのログインを、ゲストログインとする。 ゲストとしてログインすると、guest_usernameオプション(デフォルトはftp)で指定したユーザに再マップされる。
guest_username (Default:ftp)
ゲストユーザにマップされる、ローカルユーザを指定する。 guest_enableオプションが有効であれば、このオプションの設定は有効。
virtual_use_local_privs=[YES|NO] (Default:NO)
このオプションを有効にすると、仮想ユーザはローカルユーザと同じ特権を使用する。 無効にすると、匿名ユーザと同じ特権を使用する。
user_sub_token (Default:none)
バーチャルユーザごとのホームディレクトリの名前を自動的に生成するとき使用する。 実例をあげると、vsftpd.confの設定が
guest_enable=YES guest_username=virtual user_sub_token=$USER local_root=/home/guest/$USER
となっている場合、virtualユーザとしてログインすると/home/guest/virtualディレクトリにchrootされる。 ホームディレクトリを自動的に作ってくれるんじゃないらしく、そのディレクトリが存在しないとログインに失敗する。 local_rootオプションを指定する替わりに、/etc/passwdファイルに
virtual:x:1000:1000::/home/guest/$USER:/bin/bash
と書いても同じ。 あまりメリットはないような気がするけど。
This option is useful is conjunction with virtual users. It is used to automatically generate a home directory for each virtual user, based on a template. For example, if the home directory of the real user specified via guest_username is /home/virtual/$USER, and user_sub_token is set to $USER, then when virtual user fred logs in, he will end up (usually chroot()'ed) in the directory /home/virtual/fred. This option also takes affect if local_root contains user_sub_token.
vsftpd の設定(FTP over SSL) [TOP]
ssl_enable=[YES|NO] (Default:NO)
FTP over SSLを有効にする。 ソースからビルドする場合は、README.sslファイルを参考に、builddefs.hファイルを編集してからmakeする。
ssl_sslv2=[YES|NO] (Default:NO)
ssl_enableオプションが有効のとき、SSL v2プロトコルによる接続を許可する。
ssl_sslv3=[YES|NO] (Default:NO)
ssl_enableオプションが有効のとき、SSL v3プロトコルによる接続を許可する。
ssl_tlsv1=[YES|NO] (Default:YES)
ssl_enableオプションが有効のとき、TLS v1プロトコルによる接続を許可する。 通常は、これを有効にしておくようだ。
rsa_cert_file (Default:/usr/share/ssl/certs/vsftpd.pem)
SSL暗号化接続に使用するRSA証明書の場所を指定する。 opensslを使用してRSA証明書(自己署名)を作成するには、次のようにする。
# openssl req -newkey rsa:1024 -x509 -nodes -keyout vsftpd.pem -out vsftpd.pem
NextFTPクライアントからは、これでSSL暗号化接続が可能になる。 しかし、gFTPクライアントからは"self signed certificate"エラーになり接続できない。
dsa_cert_file (Default:none)
SSL暗号化接続に使用するDSA証明書の場所を指定する。
ssl_ciphers (Default:DES-CSC3-SHA)
SSL暗号化接続に使用する暗号スイートを指定する。 SSL v2、SSL v3、TLS v1それぞれのプロトコルで使用できる暗号スイートは、opensslで確認できる。
SSL v2 # openssl ciphers -v -ssl2 SSL v3 # openssl ciphers -v -ssl3 TLS v1 # openssl ciphers -v -tls1
allow_anon_ssl (Default:NO)
ssl_enableオプションが有効のとき、匿名ユーザがSSL暗号化接続を使用することを許可する。 強制ではない。
force_local_logins_ssl (Default:YES)
ssl_enableオプションが有効のとき、ローカルユーザがSSL暗号化接続を使用してログインすることを強制する。 暗号化を使用しないと、"Non-anonymous sessions must use encryption."エラーになり、ログインに失敗する。 このオプションが無効の場合でも、クライアントが要求すれば暗号化接続を使用できる。
force_local_data_ssl (Default:YES)
ssl_enableオプションが有効のとき、ローカルユーザがSSL暗号化接続を使用してデータを送受信することを強制する。 暗号化を使用しないと、"Data connections must be encrypted."エラーになり、データ送受信に失敗する。