SSH アクセスは許可しますが、特定の IP セットへのルートアクセスを制限します。

SSH アクセスは許可しますが、特定の IP セットへのルートアクセスを制限します。

すべてのユーザーがSSHを正常に使用できるようにしたいと思います。とは別にIPアドレスセットに基づいてルートアクセスを制限したいと思います。したがって、ユーザーはどこからでもログインできますが、peterホストとのみログインできます。paullaryroota.b.c.dq.r.s.t

  • sshd_configAllowUsersこの操作には機能しません。何でも指定するには、すべてのユーザーを指定する必要があります。
  • マニュアルページで提案する方法とは異なり、AllowGroupsユーザーがホワイトリストに登録されていても無条件に確認されますAllowUsers。したがって、root以外のユーザーをグループに追加し、そのグループをホワイトリストに追加しようとすると、AllowGroups認証はまだ失敗します。これは、ルートが有効な許可グループに属していないためです。
  • sshd_configDenyUsers拒否されるルートIPアドレスのセットをホワイトリストに追加できる場合は、この方法が有効になる可能性があります。 IPが1つしかない場合は、おそらく!通信会社と連携します。
  • optionsauthenticated_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.txt1行ずつ表示されます。ルールがわからない否定的なリストにない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/sshdaccess.conf

+ : root : hosta hostb hostx
- : root : ALL

関連情報