#norelated
 #navi(FC4/vsftpd)
 #contents
 ------------------------------
 * 3. vsftpd の設定変更方法や便利技 [#jaf7f939]
 
  vsftpd の設定は設定ファイル /etc/vsftpd/vsftpd.conf (マニュアルは /etc/vsftpd.conf になってますが、これは誤り) です。&br;
  設定ファイル変更後、vsftpd をデーモンと動かしている場合は再起動が必要です。xinetd 経由で接続を許可している場合は、次回の ftp 接続より設定が有効になります。
 
 ** 3-1. 特定ユーザの chroot 設定(ホームディレクトリより上位に移動させない) [#mfaf5399]
 
  複数のユーザでサーバを共有している場合や、セキュリティ上の理由でホームディレクトリ以外は読ませたくない場合、vsftpd 側の設定変更により「該当ユーザのホームディレクトリより上位に移動させない」(chroot)設定が可能です。
 
  初期状態では 96 行目が&color(red){''【 #chroot_list_enable=YES 】''};とコメントされています。&br;
  制限を有効にさせる場合は&color(red){''【 chroot_list_enable=YES 】''};先頭の # を消します。あわせて 98 行目の&color(red){''【 chroot_list_file=/etc/vsftpd/chroot_list 】''};もコメント # を消します(コメントアウト)。
 
 変更前)
       93 # You may specify an explicit list of local users to chroot() to their home
       94 # directory. If chroot_local_user is YES, then this list becomes a list of
       95 # users to NOT chroot().
       96 #chroot_list_enable=YES
       97 # (default follows)
       98 #chroot_list_file=/etc/vsftpd/chroot_list
 変更後)
       93 # You may specify an explicit list of local users to chroot() to their home
       94 # directory. If chroot_local_user is YES, then this list becomes a list of
       95 # users to NOT chroot().
       96 chroot_list_enable=YES
       97 # (default follows)
       98 chroot_list_file=/etc/vsftpd/chroot_list
 
  もしここで 98 行目のコメントアウトをしないと、ftp ログイン時に次のようなエラーが出るので注意が必要です。
 
  500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot_list
  Login failed.
 
  また、ファイルが空っぽでも同様にエラーが出てしまいます。初期状態ではファイルが無いので次のコマンドを実行してファイルを作成しておきます。
 
  # touch /etc/vsftpd/chroot_list
 
  そして、制限をかけたいユーザ名をファイル中に記述します。&br;
  制限を受けているユーザがアクセスすると、ログインディレクトリは同じホームディレクトリ(/home/ユーザ名)ですが、その場所が【 / 】となるため、その他の上位のディレクトリに対しては移動できなくできます。
 
  230 Login successful.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> pwd
  257 "/"
 
 例) chroot 設定が無効な場合(初期状態)
  230 Login successful.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> pwd
  257 "/home/akane"
  これは akane というユーザが ftp ログイン直後にコマンド "pwd" を実行した状態。&br;
  pwd は現在作業中のディレクトリ名を表示させるコマンドです。
 
 ** 3-2. 全ユーザの chroot 設定 [#m004ba9a]
 
  3-1 の方法では、個別のユーザに対する設定でした。ユーザ数が多いと1つ1つユーザ名の記述をするのは大変です。サーバ内の全アカウントに適用させる方法があります。
 
  chroot_local_user=YES
 
  この記述を追加することで、chroot_list_file で指定したユーザには逆の働きがかかります。chroot_list_file の「ファイルに書かれたユーザのみ chroot 設定を解除する」事ができます。
 
 ** 3-3. 特定ユーザの ftp 禁止 [#cd906fd7]
 
  設定によって、特定のユーザに対する ftp 接続を許可できます。
 
  # vi /etc/vsftpd/ftpusers
  この ftpusers ファイルに記述されているユーザは ftp が許可されていません。もし接続を試みても、次のようにログインに失敗しましたと表示されます。
  Password:
  530 Login incorrect.
  Login failed.
 
 ** 3-4. 特定ユーザだけの ftp 許可 [#a9b51aac]
 
  vsftpd.conf 108 行目の記述を YES から NO に変えます。userlist_deny=NO も明示しておきます。
  userlist_enable=YES
  userlist_deny=NO
  そうすることで、/etc/vsftpd/user_list に記述されたユーザ以外の接続を許可します。&br;
  また、この状態では PAM による制限も受けるので、/etc/pam.d/vsftpd ファイルの2行目をコメントします。
 
  #%PAM-1.0
  #auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  auth       required     pam_stack.so service=system-auth
  auth       required     pam_shells.so
  account    required     pam_stack.so service=system-auth
  session    required     pam_stack.so service=system-auth
 
  また、この PAM を無効にする方法は ftp による root ログインを許可するときにも用います。
 
 ** 3-5. root による ftp を許可する [#le82de2c]
 
  初期状態では root による ftp 接続は許可されていません。セキュリティ上の理由です(もしサーバが不正アクセスをうけている場合、パケット監視ツールにより root パスワードが奪取される恐れもあります)。
 
  許可するためには /etc/pam.d/vsftpd ファイルを編集します。2 行目をコメントにして無効化します。
 
  #%PAM-1.0
  #auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  auth       required     pam_stack.so service=system-auth
  auth       required     pam_shells.so
  account    required     pam_stack.so service=system-auth
  session    required     pam_stack.so service=system-auth
 
  つぎに、初期状態では ftp のユーザ制限がかかっています。ログインできないようにユーザをファイルで指定されています。
 
  /etc/vsftpd/user_list ファイルを開き、なかから root の記述を削除します。削除後は root での ftp 接続が許可されます。
 
  ※セキュリティ上あまり root でのログインはおすすめできませんが、緊急に遠隔からバックアップを行いたい時には役立つと思います。
 
 
 ** 3-6. 匿名ログイン(AnonymousFTP)の機能を廃止する [#zd3dd12e]
 
  初期状態では匿名ログイン(AnonymousFTP)が許可されています。特に ftp サーバの公開を行わない場合など、通常は無効にしておいたほうが良いでしょう。
 
  vsftpd.conf の 12 行目に anonymous_enable=YES という箇所があります。ここは NO に書き換えます。
 
  anonymous_enable=YES
 
 
 ** 3-7. ログの取得 [#y4b30096]
 
  初期状態では wu-ftpd などのように、ログが保存される設定ではありません。51 行目でコメントされています。ログを保存する場合は、コメントを削除します。
 
  xferlog_file=/var/log/vsftpd.log
 
  また、54 行目ではログの保存形式が指定されます。 xferlog_std_format= YES (初期状態)の場合、WU-FTPD と同じようにログの取得ができます。
 
  xferlog_std_format=YES
  通常は特に変更する必要は無いと思います。
 
 ** 3-8. vsftpd の バージョン番号を隠す [#m5af07fc]
 
 Fedora Core 4 付属の vsftpd.conf では、ftpd_banner の項目がコメント(# をつけて無効に)されている。そのため、接続時にはバージョン情報がさらけだされてる。特に困らないのですが、セキュリティホールが発見したとき、特定のバージョンが機械的に狙われることを避けるため、この部分は変更したほうが良いと思います。
 
  $ ftp localhost
  Connected to sion.
  220 (vsFTPd 2.0.3)
       ^^^^^^^^^^^^
  設定を変えるには『 /etc/vsftpd/vsftpd.conf 』を編集します。
 
  #ftpd_banner=Welcome to blah FTP service.
 
  この部分【 ftpd_banner= 】の後に好きな文字を書けば OK 。以下は例。 設定変更方法は設定ファイル /etc/vsftpd/vstpd.conf の変更が必要。85 行目を変更する。 
 
  ftpd_banner=[Welcome to pocketstudio's server]
 
  ファイル保存後、vsftpd をデーモンとして起動している場合は再起動をかけます。xinetd であれば、次回接続以降に設定が反映されます。
 
  $ ftp localhost
  Connected to sion.
  220 [Welcome to pocketstudio's server]
 
 
 #navi(FC4/vsftpd)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS