• Top
  • What's New
  • Command
  • Basic
  • Server
  • Security
  • Conf
  • tools
  • etc
  • blog
  • link
  • サイトについて
  • メール
INDEX /  Apache /  ProFTPD /  vsftpd /  BIND /  Postfix /  Qpopper /  Samba /  PHP / 
最終更新日 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」の略で、セキュリティ重視の設計になっています。また設定も簡単です。
ページトップへTop
vsftpdの入手
バイナリ(RPM)版は、CDROM又はディストリビューションのホームページより入手します。
ソースファイルは、「vsftpd - Secure, fast FTP server for UNIX-like systems」より入手可能です。

vsftpd関連パッケージ(Fedora Core3)
パッケージ 内容
vsftpd-1.2.0-5.i386.rpmvsftpd本体

ソースファイルの入手
# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz

ページトップへTop
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

ページトップへTop
vsftpdの制御パラメータ
vsftpdをスタンドアローンで動作させる場合は、Apacheの起動・停止・再起動などの操作は、「service vsftpd 引数」という形で行います。
または、「/etc/rc.d/init.d/vsftpd 引数」を実行をします。

起動  # service vsftpd start
停止  # service vsftpd stop
再起動 # service vsftpd restart


vsftpd制御のパラメータ
パラメータ 動作
startvsftpdの起動
stopvsftpdの停止
restartvsftpdの再起動
condrestartvsftpdのプロセスが動作していれば再起動
statusvsftpdの状態を表示(簡易)

ページトップへTop
vsftpdの設定ファイル
vsftpdの設定ファイルは、基本の設定ファイル「vsftpd.conf」とそれぞれ個別のファイル「chroot_list_file」などの2種類になります。
基本設定ファイルは、RPMでインストールした場合は「/etc/vsftpd/」の下に、ソースファイルからインストールした場合は「/etc」の下になります。

設定ファイル名 説明
vsftpd.conf基本設定ファイル
vsftpd.ftpusersFTPログインできない(させない)ユーザを記述するファイル
vsftpd.user_listFTPログインできるユーザ、又はできないユーザを記述するファイル
vsftpd.chroot_listchrootを設定するユーザを指定するファイル

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

  1. anonymousを無効にする
  2. ユーザログインを有効にする
  3. 書き込み(データのアップや削除)が行えるように設定
  4. ファイルをアップロードした場合のデフォルトのパーミッションの設定
  5. ディレクトリが何層もある場合に一括削除できるように設定
  6. 転送モードのアスキーモードでアップロード可能に設定
  7. 転送モードのアスキーモードでダウンロード可能に設定
  8. 一般ユーザのホームディレクトリを/(ルートディレクトリ)とする。chrootの設定
  9. ユーザごとのアクセス制限を有効にする
  10. 「/etc/vsftpd.user_list」ファイルに書き込まれているユーザのみ有効にする(ファイルが存在しない場合は新規作成)
ページトップへTop
vsftpdのアクセス制限
vsftpdのアクセス制限は、2通りのやり方があり、設定ファイルに記述することによって行います。
パラメータの「userlist_enable」項目を「Yes」にすることによってアクセス制限が有効になります。
また、「userlist_deny」パラメータの値によって、アクセス制御ファイルの役割が変更され、アクセス制限の方法が変わります。


「userlist_deny」を「Yes」にした場合

「userlist_deny」パラメータを「Yes」にした場合、設定ファイル「/etc/vsftpd.user_list」に記述したユーザはログインすることができません。
RPMでインストールした場合は、「Yes」に設定されており、rootなどのユーザが記述されています。
  1. 設定ファイル「vsftpd.conf」に「userlist_enable=YES」を記述
  2. 設定ファイル「vsftpd.conf」に「userlist_deny=YES」を記述
  3. アクセス制御ファイル「vsftpd.user_list」にアクセスを禁止するユーザを記述

「userlist_deny」を「NO」にした場合

「userlist_deny」パラメータを「NO」にした場合、設定ファイル「/etc/vsftpd.user_list」に記述したユーザだけがログインできます。
こちらの方がアクセス制御の基本である「ALLDENY」になりますので、設定ミスがなくなります。
  1. 設定ファイル「vsftpd.conf」に「userlist_enable=YES」を記述
  2. 設定ファイル「vsftpd.conf」に「userlist_deny=NO」を記述
  3. アクセス制御ファイル「vsftpd.user_list」にアクセスを許可するユーザを記述
上記のように、「userlist_deny」の値が「Yes」か「No」で、アクセス制御ファイル「/etc/vsftpd.user_list」の役割が変わります。
「Yes」の場合はアクセスを許可するユーザを記述し、「No」の場合はアクセスを禁止するユーザを記述します。
また、もうひとつのアクセス制御ファイル「vsftpd.ftpusers」にアクセスを禁止するユーザを記述する方法もあります。
どちらを使用しても、アクセス制限をかけることができますが、vsftpdの拒否の仕方が違います。

アクセス制御ファイル アクセスの拒否方法
vsftpd.user_listユーザを入力した時点で拒否される。(パスワードの入力はできない)
vsftpd.ftpusersユーザ名を入力し、パスワードを入力した際に拒否される

ページトップへTop
vsftpdのパラメータ一覧
パラメータ 内容
anonymous_enableanonymousの有効/無効の設定(yesは有効、noは無効)
local_enableユーザ認証の有効/無効の設定(yesは有効、noは無効)
write_enableアップロード(ファイルの削除など)有効/無効の設定(yesは有効、noは無効)
local_umaskアップロード等をした場合のマスク値の設定(デフォルト値は077)
anon_upload_enableanonymousでのファイルのアップロードのド等の有効/無効の設定(yesは有効、noは無効)
anon_mkdir_write_enableanonymousでのディレクトリ作成の有効/無効の設定(yesは有効、noは無効)
dirmessage_enableFTPログインした場合「.message」ファイル内のメッセージの表示の設定(yesは有効、noは無効)
xferlog_enableログファイルの記録の有効/無効の設定(yesは有効、noは無効)
idle_session_timeoutアイドル時に切断されるタイムを指定(単位は秒)
ascii_upload_enableアスキーモードでのアップロードの有効/無効の設定(yesは有効、noは無効)
ascii_download_enableアスキーモードでのダウンロードの有効/無効の設定(yesは有効、noは無効)
ftpd_bannerFTPログイン時に表示されるメッセージを指定
ls_recurse_enableディレクトリが階層である場合の一括削除の有効/無効の設定(yesは有効、noは無効)

ページトップへTop

 
Copyright (c) 2005 Mukuan All Rights Reserved.