特定のIPアドレス(個人アドレス)でユーザーログインを制限する方法は?

特定のIPアドレス(個人アドレス)でユーザーログインを制限する方法は?

私のSSHサーバーシステムには、user_Aとuser_Bという2人のユーザーがいます。 user_Bはリモートからログインする必要があるため、セキュリティ上の理由から秘密鍵を使用してログインすることができます。すべて動作します。私の質問:user_Aはローカルネットワークにログインするだけですので、ユーザー名/パスワードを使用してリモートでログインするのを防ぐことはできますか? sshdのマニュアルページによると、CIDR表記が許可されています。

私がしたこと:
#605433が提案されたので調整しました。AllowUsers [email protected]AllowUsers [email protected]/24

#740700オファー:

Match 192.168.0.10/24
   AllowGroups PrivateSubnetSshUsers

私のバージョンは次のとおりです

Match 192.168.10.0/24
   AllowUsers user_A

驚いたことに、どちらの場合も、user_Aはまだ192.168.1.220でログインできます。やり直す前にいくつかのことを行いましたsystemctl restart sshd

私はここで何を見落としていますか?

答え1

まず、あなたの声明には単なるエラーではなくエラーが必要Matchです。そのバージョンでは、sshdを再起動しようとするとエラーメッセージが表示されます。受け取れませんでしたか?Match address 192.168.10.0/24Match 192.168.10.0/24

Match次に、アドレスではなくユーザー名を使用する必要があります。次は動作します。

Match user user_A
   AllowUsers [email protected]/24

ところで。私のテストでは単独(つまりブロックではありません)も機能しますが(したがってテストするときに何か間違っていることは間違いありません)、制限されています。AllowUsers [email protected]/24Match他のすべてのユーザーuser_A以外のログイン別の言葉(そして、user_Aは指定されたネットワークでのみログインできます。)上記のブロック内では、Matchuser_Aは指定されたネットワークでのみログインでき、他のすべてのユーザーはすべてのIPアドレスからログインできます。

答え2

私はとても恥ずかしいです。もちろん、イベントはRajが指摘したように解決されました。当惑した私の間違いは、常にsshd_configの代わりにssh_configを編集することでした。申し訳ありません。助けてくれてありがとうございます!

答え3

マニュアルによると(https://www.man7.org/linux/man-pages/man5/sshd_config.5.html)次のように動作する必要があります。

# Only user_B is allowed to login
AllowUsers user_B

# Only the group PrivateSubnetSshUsers is allowed to login from the network 192.168.10.0/24
Match Address 192.168.10.0/24
        AllowGroups PrivateSubnetSshUsers 

# user_B is not allowed to login with password
Match User user_B
        PasswordAuthentication no

最初のオプションでは、user_B を除くすべてのユーザーをロックできます。 2番目のオプションは、特定のネットワークに接続されていてPrivateSubnetSshUsersグループのメンバーである場合はログインを許可します。 3番目のオプションは、user_Bがキーを使用するように強制します。

あまり簡単ではありませんが、作業を完了する必要があります。

関連情報