4.4. ドメインユーザーのログインパーミッションの管理

デフォルトでは、ドメイン側のアクセス制御が適用されます。これは、Active Directory (AD) ユーザーのログインポリシーが AD ドメイン自体に定義されることを意味します。クライアント側のアクセス制御を使用できるように、このデフォルトの動作は上書きできます。クライアント側のアクセス制御では、ログインパーミッションはローカルポリシーでのみ定義されます。

ドメインがクライアント側のアクセス制御を適用する場合は、realmd を使用して、そのドメインのユーザーの基本的なアクセスルールである allow または deny を設定できます。

注記

アクセスルールは、システムにあるすべてのサービスへのアクセスを許可または拒否します。特定のシステムリソースまたはドメインに、より具体的なアクセスルールを設定する必要があります。

4.4.1. ドメイン内でユーザーのアクセス権を有効化

デフォルトでは、Active Directory (AD) ユーザーのログインポリシーは AD ドメイン自体で定義されています。このデフォルトの動作をオーバーライドし、AD ドメイン内のユーザーがアクセスできるように RHEL ホストを設定するには、次の手順に従います。

重要

デフォルトですべてへのアクセスを許可し、レルム許可 -x を使用して特定のユーザーにのみアクセスを拒否することは推奨しません。Red Hat では、代わりに、すべてのユーザーに対してデフォルトのアクセス禁止ポリシーを維持し、レルム許可を使用して選択したユーザーのアクセスのみを許可することが推奨されます。

前提条件

  • RHEL システムが Active Directory ドメインのメンバーである。

手順

  1. すべてのユーザーにアクセス権を付与します。

    # realm permit --all
  2. 特定のユーザーにアクセス権を付与します。

    $ realm permit aduser01@example.com
    $ realm permit 'AD.EXAMPLE.COM\aduser01'

現在、アクセスを許可できるのはプライマリードメインのユーザーのみで、信頼できるドメインのユーザーには許可できません。これは、ユーザーログインにドメイン名を含める必要があり、SSSD は、現在、realmd に利用可能な子ドメインに関する情報を提供できないためです。

検証手順

  1. SSH を使用して、aduser01@example.com ユーザーとしてサーバーにログインします。

    $ ssh aduser01@example.com@server_name
    [aduser01@example.com@server_name ~]$
  2. ssh コマンドをもう一度使用して、aduser02@example.com ユーザーと同じサーバーにアクセスします。

    $ ssh aduser02@example.com@server_name
    Authentication failed.

aduser02@example.com ユーザーがシステムへのアクセスを拒否する方法に注目してください。aduser01@example.com ユーザーにのみ、システムにログインするパーミッションを付与しています。指定したログインポリシーが原因で、その Active Directory ドメインの他のユーザーはすべて拒否されます。

注記

sssd.conf ファイルで use_fully_qualified_names を true に設定すると、すべての要求で完全修飾ドメイン名を使用する必要があります。ただし、use_fully_qualified_names を false に設定すると、要求で完全修飾名を使用できますが、出力には簡略化されたバージョンのみが表示されます。

関連情報

  • man ページの realm(8) を参照してください。

4.4.2. ドメイン内でユーザーのアクセス権を拒否

デフォルトでは、Active Directory (AD) ユーザーのログインポリシーは AD ドメイン自体で定義されています。このデフォルトの動作をオーバーライドし、AD ドメイン内のユーザーへのアクセスを拒否するように RHEL ホストを設定するには、次の手順に従います。

重要

特定のユーザーまたはグループのアクセスのみを許可する方が、一部のユーザーへのアクセスを拒否して、他のすべてのユーザーにアクセスを許可するよりも安全です。したがって、デフォルトで全ユーザーにアクセスを許可し、レルムの許可 -x を使用して特定のユーザーのみを拒否することは推奨されません。Red Hat では、代わりに、すべてのユーザーに対してデフォルトのアクセス禁止ポリシーを維持し、レルム許可を使用して選択したユーザーのアクセスのみを許可することが推奨されます。

前提条件

  • RHEL システムが Active Directory ドメインのメンバーである。

手順

  1. ドメイン内のすべてのユーザーへのアクセスを拒否します。

    # realm deny --all

    このコマンドは、realm アカウントがローカルマシンにログインできないようにします。realm permit を使用して、ログインを特定アカウントに制限します。

  2. ドメインユーザーの login-policydeny-any-login に設定されていることを確認します。

    [root@replica1 ~]# realm list
    example.net
      type: kerberos
      realm-name: EXAMPLE.NET
      domain-name: example.net
      configured: kerberos-member
      server-software: active-directory
      client-software: sssd
      required-package: oddjob
      required-package: oddjob-mkhomedir
      required-package: sssd
      required-package: adcli
      required-package: samba-common-tools
      login-formats: %U@example.net
      login-policy: deny-any-login
  3. -x オプションを使用して特定のユーザーへのアクセスを拒否します。

    $ realm permit -x 'AD.EXAMPLE.COM\aduser02'

検証手順

  • SSH を使用して、aduser01@example.net ユーザーとしてサーバーにログインします。

    $ ssh aduser01@example.net@server_name
    Authentication failed.
注記

sssd.conf ファイルで use_fully_qualified_names を true に設定すると、すべての要求で完全修飾ドメイン名を使用する必要があります。ただし、use_fully_qualified_names を false に設定すると、要求で完全修飾名を使用できますが、出力には簡略化されたバージョンのみが表示されます。

関連情報

  • man ページの realm(8) を参照してください。