4.4. ドメインユーザーのログインパーミッションの管理
デフォルトでは、ドメイン側のアクセス制御が適用されます。これは、Active Directory (AD) ユーザーのログインポリシーが AD ドメイン自体に定義されることを意味します。クライアント側のアクセス制御を使用できるように、このデフォルトの動作は上書きできます。クライアント側のアクセス制御では、ログインパーミッションはローカルポリシーでのみ定義されます。
ドメインがクライアント側のアクセス制御を適用する場合は、realmd
を使用して、そのドメインのユーザーの基本的なアクセスルールである allow または deny を設定できます。
アクセスルールは、システムにあるすべてのサービスへのアクセスを許可または拒否します。特定のシステムリソースまたはドメインに、より具体的なアクセスルールを設定する必要があります。
4.4.1. ドメイン内でユーザーのアクセス権を有効化
デフォルトでは、Active Directory (AD) ユーザーのログインポリシーは AD ドメイン自体で定義されています。このデフォルトの動作をオーバーライドし、AD ドメイン内のユーザーがアクセスできるように RHEL ホストを設定するには、次の手順に従います。
デフォルトですべてへのアクセスを許可し、レルム許可 -x
を使用して特定のユーザーにのみアクセスを拒否することは推奨しません。Red Hat では、代わりに、すべてのユーザーに対してデフォルトのアクセス禁止ポリシーを維持し、レルム許可を使用して選択したユーザーのアクセスのみを許可することが推奨されます。
前提条件
- RHEL システムが Active Directory ドメインのメンバーである。
手順
すべてのユーザーにアクセス権を付与します。
# realm permit --all
特定のユーザーにアクセス権を付与します。
$ realm permit aduser01@example.com $ realm permit 'AD.EXAMPLE.COM\aduser01'
現在、アクセスを許可できるのはプライマリードメインのユーザーのみで、信頼できるドメインのユーザーには許可できません。これは、ユーザーログインにドメイン名を含める必要があり、SSSD は、現在、realmd
に利用可能な子ドメインに関する情報を提供できないためです。
検証手順
SSH を使用して、
aduser01@example.com
ユーザーとしてサーバーにログインします。$ ssh aduser01@example.com@server_name [aduser01@example.com@server_name ~]$
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 ドメインのメンバーである。
手順
ドメイン内のすべてのユーザーへのアクセスを拒否します。
# realm deny --all
このコマンドは、
realm
アカウントがローカルマシンにログインできないようにします。realm permit
を使用して、ログインを特定アカウントに制限します。ドメインユーザーの
login-policy
がdeny-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
-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)
を参照してください。