vsftpdのアクセス制限について
vsftpdで特定のユーザーのFTPサーバーへのアクセスを禁止する場合は、設定ファイルの「userlist_enable」ディレクティブを”YES”に設定します。
[root@centos ~] vi /etc/vsftpd/vsftpd.conf - 以下をファイルの末尾に追加 - userlist_enable=YES
userlist_denyディレクティブの設定
上記の「userlist_enable」ディレクティブを”YES”に設定した場合にのみ有効になる、「userlist_deny」ディレクティブの設定を行います。
「userlist_deny」ディレクティブを”YES”に設定した場合は、ユーザーリストファイルに記述したユーザーはFTPサーバーにログインできなくなります。
逆に、「userlist_deny」ディレクティブを”NO”に設定した場合は、ユーザーリストファイルに記述したユーザーのみFTPサーバーにログインできるようになります。
つまり、「userlist_deny」を”YES”に設定した場合はブラックリスト方式、”NO”に設定した場合はホワイトリスト方式となります。
ユーザーリストファイルに記述したユーザーのアクセスを禁止する場合(ブラックリスト方式)
[root@centos ~] vi /etc/vsftpd/vsftpd.conf - 以下をファイルの末尾に追加 - userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list ※ユーザーリストファイルを指定 [root@centos ~]# echo user1 >> /etc/vsftpd/user_list ※例としてusr1のFTPサーバーへのアクセスを禁止する場合
ユーザーリストファイルに記述したユーザーのみアクセスを許可する場合(ホワイトリスト方式)
[root@centos ~] vi /etc/vsftpd/vsftpd.conf - 以下をファイルの末尾に追加 - userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list ※ユーザーリストファイルを指定 [root@centos ~]# echo user1 >> /etc/vsftpd/user_list ※例としてusr1のFTPサーバーへのアクセスを許可する場合
ここで注意が必要なのが、もうひとつのアクセス制御ファイルである「/etc/vsftpd/ftpusers」の存在です。
上記のようにホワイトリスト方式でユーザーのアクセスを許可するように設定しても、「/etc/vsftpd/ftpusers」に記載されているユーザーはFTPサーバーにアクセスできません。
また、「/etc/vsftpd/user_list」をブラックリストとして利用する際、「/etc/vsftpd/user_list」に記載されているユーザーは、ログイン時にユーザ名を入力した時点でアクセスを拒否されます。
それに対し、「/etc/vsftpd/ftpusers」に記載されているユーザーは、ログイン時にユーザ名を入力し、パスワードを入力した時点でアクセスを拒否されます。
このようにアクセスを制御するファイルごとにも挙動の違いがあります。
vsftpdの再起動
vsftpdを再起動させて設定を反映させます。
[root@centos ~]# /etc/rc.d/init.d/vsftpd restart ※vsftpdを起動
なお、「/etc/vsftpd/vsftpd.conf」を編集した場合はvsftpdを再起動しなければ設定が反映されませんが、アクセス制限のユーザーリストファイルである「/etc/vsftpd/user_list」・「/etc/vsftpd/ftpusers」を編集してもvsftpdの再起動は必要ありません。