許可された 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
マシン上でパスワード ログインを防止する必要があります)。他のモジュール ( account
、session
など) は引き続き使用されます。