すべてのユーザーに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_listfile
UIDが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
行の直後に追加されます。