「Vsftpd」の版間の差分

提供: Wikinote
移動: 案内検索
(設定)
(設定例)
行75: 行75:
 
=== 設定例 ===
 
=== 設定例 ===
  
以下のポリシーでアクセス制御を行う場合を考える。
+
以下のポリシーでアクセス制御を行う場合に、デフォルトからどう変更するか。
 
# anonymous ログインを不可とする。
 
# anonymous ログインを不可とする。
 
# 指定したユーザのみアクセスを許可し、chroot させる。
 
# 指定したユーザのみアクセスを許可し、chroot させる。
行95: 行95:
 
  tcp_wrappers=YES
 
  tcp_wrappers=YES
 
   
 
   
  userlist_file=/etc/vsftpd/user_list.allow
+
  userlist_file=/etc/vsftpd/user_list.allow ★追記
 
  userlist_deny=NO ★上記 userlist_file を許可リストとする
 
  userlist_deny=NO ★上記 userlist_file を許可リストとする
 
  chroot_local_user=YES ★追記
 
  chroot_local_user=YES ★追記

2011年2月26日 (土) 18:04時点における版

RHEL の vsftpd について。

設定

/etc/vsftpd/vsftpd.conf で設定を行う。

デフォルト設定

RHEL5 のデフォルト設定は以下の通り。

# "anonymous" でのログインを許可するかどうか。"ftp" でもログイン可能になる。
# デフォルトでは、ftp ユーザのホームディレクトリ /var/ftp に chroot される。
anonymous_enable=YES

# /etc/passwd にあるローカルユーザのログインを許可するかどうか。
local_enable=YES

# ファイルシステムを変更するような FTP コマンドを許可するかどうか。
write_enable=YES

# ローカルユーザが生成したファイルの umask 値。
local_umask=022

# ディレクトリを移動した際に、ディレクトリの .messages の内容を見せるかどうか。
dirmessage_enable=YES

# ログファイルにアップロードとダウンロードのログを記録するかどうか。
xferlog_enable=YES

# PORT でのデータ接続でサーバが送信もとポートに 20(ftp-data) を使用するかどうか。
connect_from_port_20=YES

# wu-ftpd と同様の標準的なフォーマットで記録するが、読みづらい。
xferlog_std_format=YES

# vsftpd 自身で接続を受け付けるかどうか。xinetd などから起動する場合は NO。
listen=YES

# vsftpd が使用する PAM サービス名
pam_service_name=vsftpd

# ログインを許可するあるいは拒否するユーザを userlist_file から読み取るかどうか。
userlist_enable=YES

# tcp_wrappers のアクセス制御を使用するかどうか。
tcp_wrappers=YES

その他、主に以下の設定がデフォルトでなされているので注意が必要。

# userlist_enable が有効な場合に読み込まれるファイル。
userlist_file=/etc/vsftpd/user_list

# userlist_enable が有効な場合、userlist_file に記載されたユーザを拒否するかどうか。
# NO の場合、許可リストとなる。
userlist_deny=YES

# ローカルユーザを chroot するかどうか。
chroot_local_user=NO

# chroot_list_enable が有効な場合に読み込まれるファイル。
chroot_list_file=/etc/vsftpd/chroot_list

# chroot_list_file で指定したファイルを読み込むかどうか。
# ★注意:chroot_local_user が有効の場合は、chroot しない ユーザのリストとなる。
chroot_list_enable=NO

上記の暗黙の設定も含めると、デフォルトでのアクセス制御は以下の通りとなる。

  • anonymous, ftp ユーザはログイン可能 (/var/ftp に chroot される)
  • ローカルユーザはログイン可能 (chroot されない)
    • しかし、/etc/vsftpd/user_list あるいは /etc/vsftpd/ftpusers に記載されているユーザはログイン不可
      • 前者は、デフォルトで userlist_deny=YES のため。
      • 後者は、PAM で拒否リストとして使用されているため。(/etc/pam.d/vsftpd 参照のこと。)

設定例

以下のポリシーでアクセス制御を行う場合に、デフォルトからどう変更するか。

  1. anonymous ログインを不可とする。
  2. 指定したユーザのみアクセスを許可し、chroot させる。
[/etc/vsftpd/vsftpd.conf]
#anonymous_enable=YES ★NO に変更
anonymous_enable=NO
local_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

userlist_file=/etc/vsftpd/user_list.allow ★追記
userlist_deny=NO ★上記 userlist_file を許可リストとする
chroot_local_user=YES ★追記
# どのみち指定したユーザしかログインできないので、
# リストでの chroot 指定はしていない。

[/etc/vsftpd/user_list.allow]
hagio ★ログイン許可するユーザ