vsftpdのホワイトリスト/ブラックリストの設定
仕事でvsftpdを入れたのでメモ。
ホワイトリスト/ブラックリストの設定
userlist_fileで指定するファイル(以降、userlist_file)には、ユーザをリストするのだが、このファイルの扱いは、vfstpd.confの設定により180度変わる。
userlist_enable=YES かつ userlist_deny=YESのとき;
userlist_fileにリストされているユーザのログインを拒否する。
userlist_enable=YES かつ userlist_deny=NOのとき;
基本的にすべてのユーザのログインが拒否される。
しかし、uselist_fileにリストされているユーザについてはログイン許可
つまり、userlist_fileがホワイトリストになったり、ブラックリストになったりする。
で。それとは別に、vsftpdのデフォルトPAM設定(後述)では、ブラックリストとして/etc/vsftpd/ftpusersもチェックしているので注意が必要。
あるユーザがftpusersにリストされた時と、ブラックリストとしてのuserlist_fileにリストされた時の違いは、前者はパスワード入力後に失敗となり、後者はユーザ名を入れた瞬間に失敗となる。
いずれにしろ/etc/vsftpd/ftpusersがブラックリストとして動作するので、userlist_fileはホワイトリストとして使うことにする。
なお、anonymousユーザ(anonymous, ftp)もこのリストの対象になるようだ。
PAM設定(CentOSでの内容)
# grep pam_service ./vsftpd.conf pam_service_name=vsftpd # cat /etc/pam.d/vsftpd #%PAM-1.0 session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include system-auth account include system-auth session include system-auth session required pam_loginuid.so