特定のIPで特定のUIDを持つユーザーへのSSHアクセスを許可します。

特定のIPで特定のUIDを持つユーザーへのSSHアクセスを許可します。

すべてのユーザーにSSH接続を許可する必要がありますが、UIDが6000から6500の間である場合は、SSHソースのIPが/ etc / remote-hostsファイルにあることを確認する必要があります。

/etc/remote-hosts

1.2.3.4
5.6.7.8
9.10.11.12

これを行う方法はありますか?これに関する情報は見つからず、特定のIPまたはUIDを許可およびブロックすることしかできません。

ベストアンサー1

あなたが探しているのはおそらくpam_listファイル基準寸法。

次のブロックが/etc/pam.d/sshd必要な操作を実行できます。

account [success=1 default=ignore] pam_succeed_if.so quiet uid < 6000 uid > 6500
account required pam_listfile.so file=/etc/remote-hosts item=rhost sense=allow onerr=fail

pam_listfileUIDが6000〜6500の範囲外の場合、最初の行はテストをスキップします。quietこのテストがいつ実行されるかを確認するには、このフラグを削除してください。debugログを実際に入力するように変更してください。

2行目は、ユーザーのリモートホストがアクセスファイルにあることを確認します。を使用するようにその行を変更できますonerr=succeed。その場合は、そのUID範囲内のすべてのユーザーがログインできるようにアクセスファイルを削除できます。

ポリシーの変更を提案できる場合は、UIDスコープを使用しないでください。代わりに、そのユーザーを「restrictedssh」などの公開グループに追加してください。これにより、そのようなすべてのユーザーを特定のUID範囲にインポートすることを心配する必要はありません。次のブロックを試してください。

account [success=1 default=ignore] pam_succeed_if.so quiet user notingroup restrictedssh
account required pam_listfile.so file=/etc/remote-hosts item=rhost sense=allow onerr=fail

どちらの場合も、その行はファイルの上部近く/etc/pam.d/sshd、他のaccount行の直後に追加されます。

おすすめ記事