すべてのユーザーがSSHを正常に使用できるようにしたいと思います。とは別にIPアドレスセットに基づいてルートアクセスを制限したいと思います。したがって、ユーザーはどこからでもログインできますが、peter
ホストとのみログインできます。paul
lary
root
a.b.c.d
q.r.s.t
sshd_config
AllowUsers
この操作には機能しません。何でも指定するには、すべてのユーザーを指定する必要があります。- マニュアルページで提案する方法とは異なり、
AllowGroups
ユーザーがホワイトリストに登録されていても無条件に確認されますAllowUsers
。したがって、root以外のユーザーをグループに追加し、そのグループをホワイトリストに追加しようとすると、AllowGroups
認証はまだ失敗します。これは、ルートが有効な許可グループに属していないためです。 sshd_config
DenyUsers
拒否されるルートIPアドレスのセットをホワイトリストに追加できる場合は、この方法が有効になる可能性があります。 IPが1つしかない場合は、おそらく!
通信会社と連携します。options
authenticated_keysファイルのキーセクションを使用してこれを実行できます。そしてルートパスワードを完全に無効にします。問題は、ファイルがシステムポリシーではなく、他の(rootアクセス)ユーザーが上書きできることです。現在、これは私が持っている最良の選択ですが、気に入らない。さらに、私がルートパスワードを破ると、私のグループの誰かが私に本当に怒っています。 (私がルートパスワードを変更しないと、他の人は任意のIPパスワードを使用してルート経由でログインできます。)私はPAMを使って、特にを通じてこれを試しましたが、
pam_listfile
私のアプローチはまったく機能しないようです。auth required pam_sepermit.so auth required pam_listfile.so file=/etc/root-whitelist.txt sense=allow item=rhost apply=root auth include password-auth
許可されたIPアドレスはファイル内に
root-whitelist.txt
1行ずつ表示されます。ルールがわからない否定的なリストにないIPアクセス。
このpam_listfile
方法を使用できますか?私が間違っているのですか?もっと良い方法がありますか?
答え1
私の同僚は私に/u/meuhと同じ方向を指示しましたが、少し異なる方法で指示しました。
Match Address "172.24.*.33"
PermitRootLogin yes
Match Address "192.168.1.18,192.168.1.20"
PermitRootLogin yes
答え2
SSHのバージョンに応じて、AllowUsersの一致基準を設定できます。man sshd_config
「一致」で許可されるコマンドをリストします。 AllowUsersがある場合は、次のことを試すことができます。ファイルの末尾にあることを確認してください。
Match User root
AllowUsers root@ a.b.c.d [email protected]
たとえば、OpenSSH_6.0p1 Debianでは動作しませんが、OpenSSH_6.6.1p1 Ubuntuでは動作します。
答え3
他の同僚が私に方向を指した。pam_access基準寸法。これは通常の形式を使用します/etc/security/access.conf
が、すべてのファイルをシステム全体またはsshdプロセスに対して有効にできます。まだ試していませんが、おそらくpam_accessをに追加すると、ファイルはauth
次のようになります。/etc/pam.d/sshd
access.conf
+ : root : hosta hostb hostx
- : root : ALL