指定された IP を持つマシンのみが SSH 経由でログインできるようにするにはどうすればよいでしょうか?

指定された IP を持つマシンのみが SSH 経由でログインできるようにするにはどうすればよいでしょうか?

許可された IP を持つマシンのみが SSH 経由でシステムにログインできるようにしたいと考えています。

たとえば、userAは または の IP アドレスxx.xx.xx.xxのみyy.yy.yy.yyを ssh 経由でログインでき、 以外の IP アドレスは としてログインできません。userAまた、userBは の IP アドレスのみを ssh 経由でログインできzz.zz.zz.zz、 以外の IP アドレス zz.zz.zz.zzは としてログインできませんuserB

これを実現するには Linux をどのように設定すればよいでしょうか?

答え1

次の内容を/etc/ssh/sshd_config追加します。

AllowUsers [email protected] [email protected] userA
AllowUsers [email protected] userB

次に、SSH デーモンを再起動します。

ワイルドカードは、パターンのセクションssh_config マニュアル

答え2

これは iptables 経由で実行できます。

アドレス 1.2.3.4 から SSH (ポート 22) へのすべての接続:

iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT

他のすべての SSH 接続を拒否します。

iptables -A INPUT -p tcp --dport 22 -j DROP

答え3

1 つの方法 (認証に PAM を使用している場合) は、で をモジュールpam_rhostsとして指定することです。これにより、各ユーザーは自分のファイルで接続元を指定できます。required/etc/pam.d/ssh.rhosts

ファイル内の認証モジュールは、pam.d公開鍵ログインでは参照されないことに注意してください (たとえば、auth required pam_deny.soマシン上でパスワード ログインを防止する必要があります)。他のモジュール ( accountsessionなど) は引き続き使用されます。

関連情報