web-dev-qa-db-ja.com

sshd_config AllowUsers

以下のロジックに従うAllowUsersディレクティブの非常に具体的な構成を試しています。

  • User1がHost1からsshできるようにする
  • User1が他のホストからsshすることを拒否する
  • 任意のホストからの他のすべてのユーザーを許可する

私は以下を試しました:

AllowUsers user1@Host1 user1@!* *@*

残念ながら、@が存在する場合は常に、順序が何であれ、前のパラメーターを無効にします。

2つの質問があります。 AllowUsersディレクティブ内のパラメーターが実行される順序はありますか?上記のロジックも可能ですか?

8
user1967720

sshd_config man は、処理の順序が次のとおりであることを示しています。

Allow/denyディレクティブは、DenyUsers、AllowUsers、DenyGroups、最後にAllowGroupsの順序で処理されます。

したがって、「user1」にも独自のグループ「user1」がある場合は、次の構成を使用できます。

AllowUsers *@Host1
DenyGroups user1
AllowGroups *

別のオプションは、否定を使用することです。

DenyUsers user1@!Host1
AllowUsers *@*
6
keypress

上記のロジックは、sshdの1つのインスタンスだけでは不可能です。ただし、2番目のsshdインスタンス(別のポートでリッスンするように構成されている)を実行する場合は可能です。

次のコマンドで最初のインスタンスを構成します。

DenyUsers user1

2番目のインスタンスを次のように構成します。

AllowUsers user1@Host1

User1に2番目のインスタンス(別のポート)に接続するように指示します。他のすべてのユーザーに、最初のインスタンス(デフォルトのポート)に接続するように指示します。

3
Alex Baban

注:SSH PAM CONFIG(多数のユーザーに推奨)またはTCPラッパー)を使用してsshアクセスを許可または拒否することもできますが、作成するにはlibwrap.aライブラリを取得する必要があります。 SSHで動作します。

SSHD CONFIGを介してアクセスを制限する場合は、次の4つのエントリを使用できます。

AllowUsers AllowGroups DenyUsers DenyGroups

パターンマッチングは、DenyUsers、AllowUsers、DenyGroups、AllowGroupsの順序で行われます。つまり、たとえば、両方のエントリ(AllowUsersとDenyUsers)にユーザーを追加すると、構成スクリプトにルールが表示される順序に関係なく、ユーザーが拒否されます。

あなたが言及した3つの制限を達成するために、グループsshgroupを作成し、を除くすべてのユーザーアカウントを構成してみてください。 user1、グループに含まれます。最後に、sshgroupのユーザーを、常に以下を含むsshd_configファイルのルールに追加するスクリプトを作成できます。

AllowUsersuser1 @ Host1

その結果:

AllowUsersuser1 @ Host1 user2 user3 ...

Sshd構成ファイルを最新の状態に保つために、ユーザーが作成/削除されるたびにスクリプトを呼び出すことができます。設定ファイルを変更するたびに、sshデーモンを再起動することを忘れないでください。

ここ ユーザーリストを生成しようとしているスクリプト「pop_user_allow_ssh」を見つけることができます。

あなたはあなたのOSについて言及していませんが、これは私がAIXでそれをした方法です。このアイデアがお役に立てば幸いです。

0
nay743
# Deny user1 from all hosts but Host1
DenyUsers user1@!Host1,*
# Allow all users from any Host that are not denied yet
AllowUsers *@*
0
user1004848