web-dev-qa-db-ja.com

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

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

たとえば、userAはipxx.xx.xx.xxまたはyy.yy.yy.yyのみを使用してssh経由でログインでき、他のipはuserAとしてログインできません。また、userBはipzz.zz.zz.zzのみを使用してssh経由でログインでき、zz.zz.zz.zz以外のipはuserBとしてログインできません。

これを実現するには、Linuxをどのようにセットアップする必要がありますか?

3
Marcus Thornton

あなたは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
1
user6780

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

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

0
Toby Speight