fail2ban のスクリプトファイルを眺めていたら、SSH のユーザーログインの禁止に AllowUsers と DenyUsers というオプションが目についたので、動作を確認してみた。
設定
設定ファイル /etc/ssh/sshd_config に設定を追加することで、接続できるユーザーを限定したり、設定したユーザーを接続を拒否できる。
ユーザー名で接続を許可する
1 | AllowUsers user01 user02 |
ユーザー名と接続元IPアドレスで接続を許可する
1 | AllowUsers user01@192.168.1.1 |
設定を反映させる
設定ファイルを編集したら、sshd をリロードして設定を反映させる。
1 | sudo systemctrl reload sshd |
接続許可のないユーザー名で ssh ログインを試みると、/var/log/auth.log にログが出力される。
1 | Jun 30 18:31:29 localhost sshd[xxxxx]: User user2 from 192.168.1.100 not allowed because not listed in AllowUsers |
OS に登録のないユーザーの場合と一緒なんじゃないか?という疑問もあったので登録のないユーザーで SSH を試みたときのログは、
1 | Jun 30 18:38:53 host01 sshd[xxxxx]: Invalid user user99 from 192.168.0.100 port 64566 |
なので、登録がないユーザーの場合と、ログインが禁止されているユーザーではログの出力内容が違うことも確認できた。