Vsftpd
提供: Wikinote
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 参照のこと。)
- 前者は、デフォルトで
- しかし、/etc/vsftpd/user_list あるいは /etc/vsftpd/ftpusers に記載されているユーザはログイン不可
設定例
以下のポリシーでアクセス制御を行う場合に、デフォルトからどう変更するか。
- anonymous ログインを不可とする。
- 指定したユーザのみアクセスを許可し、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 ★ログイン許可するユーザ