最終更新日 2005/05/06
vsftpd
vsftpdとは
vsftpdの入手
vsftpdのインストール
vsftpdの制御パラメータ
vsftpdの設定ファイル
vsftpdのアクセス制限
vsftpdの設定ファイルパラメータ一覧vsftpdとは
vsftpdとは、wu-ftpdやproftpdと同じFTPサーバソフトウェアです。以前は、wu-ftpdがよく利用されていましたが、バグの多さやパッチの適応の遅さなどから、proftpdやvsftpdが利用されるようになりました。
vsftpdの"vs"は「Very Secure」の略で、セキュリティ重視の設計になっています。また設定も簡単です。
vsftpdの入手
バイナリ(RPM)版は、CDROM又はディストリビューションのホームページより入手します。ソースファイルは、「vsftpd - Secure, fast FTP server for UNIX-like systems」より入手可能です。
vsftpd関連パッケージ(Fedora Core3)
| パッケージ | 内容 |
| vsftpd-1.2.0-5.i386.rpm | vsftpd本体 |
ソースファイルの入手
# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz |
vsftpdのインストール
インストール(RPM)
RPMコマンドを使用してインストールします。RPMでインストールを行った場合、スタンドアローン型の設定になります。
# rpm -ivh vsftpd-1.2.0-5.i386.rpm |
インストール(ソース)
ダウンロードファイルを解凍し、できたディレクトリに移動します。TCPWrapper対応に設定を変更して、「make」そしてルートユーザへ切り替え「make install」です。
まず、TCPWrapperを用いてアクセス制御できるように「builddefs.h」を編集します。
TCPWrapperでアクセス制御を行わない場合は、編集の必要はありません。
「builddefs.h」の「#undef VSF_BUILD_TCPWRAPPERS」の行を「#define VSF_BUILD_TCPWRAPPERS」に変更します。
#undef VSF_BUILD_TCPWRAPPERS ← #define VSF_BUILD_TCPWRAPPERSに変更 |
次に設定ファイルの「vsftpd.conf」と、PAM認証で使用する「vsftpd.pam」ファイルをそれぞれの場所にコピーします。
「vsftpd.conf」ファイルは、展開して出来たディレクトリの下にあります。
「vsftpd.pam」ファイルは、展開して出来たディレクトリの下「RedHat」ディレクトリ内になります。
「vsftpd.conf」は「/etc」の下に同じ名前で、「vsftpd.pam」は「/etc/pam.d」の下に名前を「vsftpd」に変更してコピーします。
その後、設定ファイルの「/etc/vsftpd.conf」に「pam_service_name=vsftpd」を一行追加します。
ソースからインストールした場合は、スーパーサーバ(xinetd)経由での起動になっています。
$ tar zxvf vsftpd-2.0.3.tar.gz $ cd vsftpd-2.0.3 $ vi builddefs.h $ make $ su # make install # cp vsftpd.conf /etc/. # cp RedHat/vsftpd.pam /etc/pam.d/vsftpd |
vsftpdの制御パラメータ
vsftpdをスタンドアローンで動作させる場合は、Apacheの起動・停止・再起動などの操作は、「service vsftpd 引数」という形で行います。または、「/etc/rc.d/init.d/vsftpd 引数」を実行をします。
起動 # service vsftpd start 停止 # service vsftpd stop 再起動 # service vsftpd restart |
vsftpd制御のパラメータ
| パラメータ | 動作 |
| start | vsftpdの起動 |
| stop | vsftpdの停止 |
| restart | vsftpdの再起動 |
| condrestart | vsftpdのプロセスが動作していれば再起動 |
| status | vsftpdの状態を表示(簡易) |
vsftpdの設定ファイル
vsftpdの設定ファイルは、基本の設定ファイル「vsftpd.conf」とそれぞれ個別のファイル「chroot_list_file」などの2種類になります。基本設定ファイルは、RPMでインストールした場合は「/etc/vsftpd/」の下に、ソースファイルからインストールした場合は「/etc」の下になります。
| 設定ファイル名 | 説明 |
| vsftpd.conf | 基本設定ファイル |
| vsftpd.ftpusers | FTPログインできない(させない)ユーザを記述するファイル |
| vsftpd.user_list | FTPログインできるユーザ、又はできないユーザを記述するファイル |
| vsftpd.chroot_list | chrootを設定するユーザを指定するファイル |
vsftpd.confファイルの書式は、パラメータと設定値を=(イコール)で結びます。
vsftpd.confファイルの書式: <パラメータ>=<値>
設定ファイルvsftpd.confの設定を変更することによって、anonymousを許可したり、chrootするなど様々な動作をさせることができます。設定ファイルのパラメータは、ほとんど記述されていますので#(コメント)をはずすだけです
また、RPMインストールとソースインストールではコメントしてある場合が違います。
編集する行
1: anonymous_enable=NO 2: local_enable=YES 3: write_enable=YES 4: local_umask=022 5: ls_recurse_enable=YES 6: ascii_upload_enable=YES 7: ascii_download_enable=YES 8: chroot_local_user=YES 9: userlist_enable=YES 10: userlist_deny=NO |
- anonymousを無効にする
- ユーザログインを有効にする
- 書き込み(データのアップや削除)が行えるように設定
- ファイルをアップロードした場合のデフォルトのパーミッションの設定
- ディレクトリが何層もある場合に一括削除できるように設定
- 転送モードのアスキーモードでアップロード可能に設定
- 転送モードのアスキーモードでダウンロード可能に設定
- 一般ユーザのホームディレクトリを/(ルートディレクトリ)とする。chrootの設定
- ユーザごとのアクセス制限を有効にする
- 「/etc/vsftpd.user_list」ファイルに書き込まれているユーザのみ有効にする(ファイルが存在しない場合は新規作成)
vsftpdのアクセス制限
vsftpdのアクセス制限は、2通りのやり方があり、設定ファイルに記述することによって行います。パラメータの「userlist_enable」項目を「Yes」にすることによってアクセス制限が有効になります。
また、「userlist_deny」パラメータの値によって、アクセス制御ファイルの役割が変更され、アクセス制限の方法が変わります。
「userlist_deny」を「Yes」にした場合
「userlist_deny」パラメータを「Yes」にした場合、設定ファイル「/etc/vsftpd.user_list」に記述したユーザはログインすることができません。RPMでインストールした場合は、「Yes」に設定されており、rootなどのユーザが記述されています。
- 設定ファイル「vsftpd.conf」に「userlist_enable=YES」を記述
- 設定ファイル「vsftpd.conf」に「userlist_deny=YES」を記述
- アクセス制御ファイル「vsftpd.user_list」にアクセスを禁止するユーザを記述
「userlist_deny」を「NO」にした場合
「userlist_deny」パラメータを「NO」にした場合、設定ファイル「/etc/vsftpd.user_list」に記述したユーザだけがログインできます。こちらの方がアクセス制御の基本である「ALLDENY」になりますので、設定ミスがなくなります。
- 設定ファイル「vsftpd.conf」に「userlist_enable=YES」を記述
- 設定ファイル「vsftpd.conf」に「userlist_deny=NO」を記述
- アクセス制御ファイル「vsftpd.user_list」にアクセスを許可するユーザを記述
「Yes」の場合はアクセスを許可するユーザを記述し、「No」の場合はアクセスを禁止するユーザを記述します。
また、もうひとつのアクセス制御ファイル「vsftpd.ftpusers」にアクセスを禁止するユーザを記述する方法もあります。
どちらを使用しても、アクセス制限をかけることができますが、vsftpdの拒否の仕方が違います。
| アクセス制御ファイル | アクセスの拒否方法 |
| vsftpd.user_list | ユーザを入力した時点で拒否される。(パスワードの入力はできない) |
| vsftpd.ftpusers | ユーザ名を入力し、パスワードを入力した際に拒否される |
vsftpdのパラメータ一覧
| パラメータ | 内容 |
| anonymous_enable | anonymousの有効/無効の設定(yesは有効、noは無効) |
| local_enable | ユーザ認証の有効/無効の設定(yesは有効、noは無効) |
| write_enable | アップロード(ファイルの削除など)有効/無効の設定(yesは有効、noは無効) |
| local_umask | アップロード等をした場合のマスク値の設定(デフォルト値は077) |
| anon_upload_enable | anonymousでのファイルのアップロードのド等の有効/無効の設定(yesは有効、noは無効) |
| anon_mkdir_write_enable | anonymousでのディレクトリ作成の有効/無効の設定(yesは有効、noは無効) |
| dirmessage_enable | FTPログインした場合「.message」ファイル内のメッセージの表示の設定(yesは有効、noは無効) |
| xferlog_enable | ログファイルの記録の有効/無効の設定(yesは有効、noは無効) |
| idle_session_timeout | アイドル時に切断されるタイムを指定(単位は秒) |
| ascii_upload_enable | アスキーモードでのアップロードの有効/無効の設定(yesは有効、noは無効) |
| ascii_download_enable | アスキーモードでのダウンロードの有効/無効の設定(yesは有効、noは無効) |
| ftpd_banner | FTPログイン時に表示されるメッセージを指定 |
| ls_recurse_enable | ディレクトリが階層である場合の一括削除の有効/無効の設定(yesは有効、noは無効) |
Top