すべてのユーザーが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