vsftpdの設定
はじめに
vsftpd の起動方法と設定ファイル /etc/vsftpd.conf の設定項目について
解説します。
関連ファイル
設定ファイル :/etc/vsftpd.conf
ログファイル :/var/log/vsftpd.log
anonymousディレクトリ :/srv/ftp
設定手順
- /etc/inetd.conf ファイルの編集
vsftpdはコメントアウトされていますので、文頭部分のコメント記号(#)
をはずして保存します。
# vi /etc/inetd.conf
-------------------------------------------------------------------
ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
-------------------------------------------------------------------
設定の変更を反映させる為に inetd を再起動します。
# /etc/init.d/inetd restart
上記の設定はTCPサーバを利用の場合ですが、ほかの起動方法(inetd,TCPWRAPPERなど)は個別のマニュアルをご参考ください。一般のLinuxインストールではvsftpの起動はrcの下にありますので/sbin/chkconfigでランレベルによって有効にすることができます。
- /etc/hosts.allow ファイルの編集
/etc/hosts.allow を編集し、接続を許可するホストを指定します。
# vi /etc/hosts.allow
-------------------------------------------------------------------
vsftpd:***.***.***.***
-------------------------------------------------------------------
(*)の部分に接続を許可するホストの IPアドレスやホスト名を指定します。
空白やカンマで区切ることで複数指定することができます。また、ドメイン
やネットワークアドレスで指定することも可能です。ワイルドカードを使用
できるので、同一ドメインや同一ネットワークを一括して指定することも
出来ます。全ての接続を許可する場合は IPアドレスではなく ALL と指定
します。
- いつもホスティング用に設定する所
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
use_localtime=YES
/etc/vsftpd.chroot_listの中に特定ユーザリストされればそのユーザ
はご自分のホームダイレクトリ以外にも見れるようになる。
またローカルタイムを利用することにより時間のずれなど防げます。
備考
デフォルトの設定では、anonymous FTP として動作します。
代表的な設定項目を以下に示します。必要に応じて編集してください。
編集完了後は、`/etc/init.d/inetd restart`を実行し、設定を反映させる
必要があります。
[/etc/vsftp.conf]設定項目
- anonymous_enable
匿名FTPサーバーとして機能させるかどうかを指定します。ftp および anonymous が匿名 FTP ユーザーとして認識されます。デフォルトでは、匿名 FTP サーバーとして動作しており、/srv/ftp/ディレクトリが公開されています。
- local_enable
このホストにアカウントを持つ一般ユーザーがホームディレクトリへアクセスすることを可能とするかどうかを指定します。デフォルトは、無効です。
- write_enable
公開ディレクトリへの書き込みを行う FTP コマンドの実行を許可するかどうかを指定します。 デフォルトでは、コメントアウトされているため、ディレクトリへの書き込みは拒否します。
- local_umask
umask 値を指定します。デフォルトは 077 です。他の多くの FTPサーバーのデフォルト値と同様に 022 へ変更したい場合はコメントをはずします。
- anon_upload_enable
匿名ユーザーにファイルのアップロードを許可するかどうかを指定します。write_enable オプションが有効である事とディレクトリへの書き込み権限が必要です。デフォルトは無効です。
- anon_mkdir_write_enable
匿名ユーザーのディレクトリ作成を許可します。write_enable オプションが有効である事とディレクトリへの書き込み権限が必要です。デフォルトは無効です。
- dirmessage_enable
ユーザーが最初にディレクトリを移動したときにメッセージを表示することができます。デフォルトでは各ディレクトリに作成された .messageファイルの中身を表示します。
- xferlog_enable
転送ログを書き出すかどうかを指定します。
- connect_from_port_20
ファイル転送用のポートに TCPポート 20番を使用します。
- chown_uploads、chown_username
匿名 FTP ユーザーがファイルをアップロードするときのユーザー名を指定することができます。デフォルトでは、ftp ユーザーが使用されます。
- xferlog_file
ログファイルの出力先を指定します。デフォルトは、/var/log/vsftpd.logです。
- idle_session_timeout
ユーザーが何も操作しなかった場合にセッションを切断するためのタイムアウト時間を指定します。デフォルトは、300 秒です。
- nopriv_user
vsftpd サーバープロセスの所有者をユーザー名で指定します。デフォルトは nobody ユーザーが使用されます。
- async_abor_enable
有効にすると、FTPサーバーは ABORリクエストを認識するようになりますが、通常は有効にすべきではありません。
- ascii_upload_enable、ascii_download_enable
ASCII モードでのデータ転送を機能させることができます。デフォルトは、無効です。
- ftpd_banner
クライアントが FTP サーバーへログインするときのログインプロンプトに表示するメッセージを指定することができます。
- deny_email_enable、banned_email_file
有効にすると、指定した匿名 FTP ユーザーのパスワード(通常は、メールアドレスを入力します)によるログインを拒否することができます。デフォルトでは、/etc/vsftpd.banned_emails ファイルにリストされたメールアドレスからのログインを拒否します。
- chroot_list_enable、chroot_list_file
有効にすると、このホストにアカウントを持つユーザーが FTP クライアントからログインするとき、ユーザーのホームディレクトリへ chrootすることができます。つまり、ユーザーのホームディレクトリがルートディレクトリとなり、上位ディレクトリへの移動が不可能となります。デフォルトでは、/etc/vsftpd.chroot_list ファイルにリストされたユーザーを chroot します。
- ls_recurse_enable
`ls -R` コマンドの使用を有効とするかどうかを指定します。デフォルトは無効です。
- pam_service_name
PAM認証モジュールを指定します。