1.5. Samba を AD ドメインメンバーサーバーとして設定
AD または NT4 のドメインを実行している場合は、Samba を使用して Red Hat Enterprise Linux サーバーをメンバーとしてドメインに追加し、以下を取得します。
- その他のドメインメンバーのドメインリソースにアクセスする
-
sshd
などのローカルサービスに対してドメインユーザーを認証する - サーバーにホストされているディレクトリーおよびプリンターを共有して、ファイルサーバーおよびプリントサーバーとして動作する
1.5.1. RHEL システムの AD ドメインへの参加
Samba Winbind は、Red Hat Enterprise Linux (RHEL) システムを Active Directory (AD) に接続するための System Security Services Daemon (SSSD) の代替手段です。realmd
を使用して Samba Winbind を設定することで、RHEL システムを AD ドメインに参加させることができます。
手順
AD で Kerberos 認証に非推奨の RC4 暗号化タイプが必要な場合は、RHEL でこの暗号のサポートを有効にします。
# update-crypto-policies --set DEFAULT:AD-SUPPORT
以下のパッケージをインストールします。
# dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator
ドメインメンバーでディレクトリーまたはプリンターを共有するには、
samba
パッケージをインストールします。# dnf install samba
既存の Samba 設定ファイル
/etc/samba/smb.conf
をバックアップします。# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
ドメインに参加します。たとえば、ドメイン
ad.example.com
に参加するには、以下のコマンドを実行します。# realm join --membership-software=samba --client-software=winbind ad.example.com
上記のコマンドを使用すると、
realm
ユーティリティーが自動的に以下を実行します。-
ad.example.com
ドメインのメンバーシップに/etc/samba/smb.conf
ファイルを作成します。 -
ユーザーおよびグループの検索用の
winbind
モジュールを、/etc/nsswitch.conf
ファイルに追加します。 -
/etc/pam.d/
ディレクトリーの PAM (プラグ可能な認証モジュール) 設定ファイルを更新します。 -
winbind
サービスを起動し、システムの起動時にサービスを起動できるようにします。
-
-
必要に応じて、
/etc/samba/smb.conf
ファイルの別の ID マッピングバックエンド、またはカスタマイズした ID マッピングを設定します。
詳細は、SambaID マッピングの理解と設定 を参照してください。
winbind
サービスが稼働していることを確認します。# systemctl status winbind ... Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s ago
重要Samba がドメインのユーザーおよびグループの情報をクエリーできるようにするには、
smb
を起動する前にwinbind
サービスを実行する必要があります。samba
パッケージをインストールしてディレクトリーおよびプリンターを共有している場合は、smb
サービスを有効化して開始します。# systemctl enable --now smb
-
必要に応じて、Active Directory へのローカルログインを認証する場合は、
winbind_krb5_localauth
プラグインを有効にします。MIT Kerberos 用のローカル承認プラグインの使用
検証手順
AD ドメインの AD 管理者アカウントなど、AD ユーザーの詳細を表示します。
# getent passwd "AD\administrator" AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bash
AD ドメイン内のドメインユーザーグループのメンバーをクエリーします。
# getent group "AD\Domain Users" AD\domain users:x:10000:user1,user2
オプションで、ファイルやディレクトリーに権限を設定する際に、ドメインのユーザーおよびグループを使用できることを確認します。たとえば、
/srv/samba/example.txt
ファイルの所有者をAD\administrator
に設定し、グループをAD\Domain Users
に設定するには、以下のコマンドを実行します。# chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
Kerberos 認証が期待どおりに機能することを確認します。
AD ドメインメンバーで、
administrator@AD.EXAMPLE.COM
プリンシパルのチケットを取得します。# kinit administrator@AD.EXAMPLE.COM
キャッシュされた Kerberos チケットを表示します。
# klist Ticket cache: KCM:0 Default principal: administrator@AD.EXAMPLE.COM Valid starting Expires Service principal 01.11.2018 10:00:00 01.11.2018 20:00:00 krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM renew until 08.11.2018 05:00:00
利用可能なドメインの表示:
# wbinfo --all-domains BUILTIN SAMBA-SERVER AD
関連情報
- 非推奨の RC4 暗号化を使用しない場合は、AD で AES 暗号化タイプを有効にすることができます。詳細は、
- GPO を使用した Active Directory で AES 暗号化タイプの有効化
-
realm(8)
man ページ
1.5.2. MIT Kerberos 用のローカル承認プラグインの使用
winbind
サービスは、Active Directory ユーザーをドメインメンバーに提供します。特定の状況では、管理者が、ドメインメンバーで実行している SSH サーバーなどのローカルサービスに対して、ドメインユーザーが認証を行えるようにします。Kerberos を使用してドメインユーザーを認証している場合は、winbind
サービスを介して、winbind_krb5_localauth
プラグインが Kerberos プリンシパルを Active Directory アカウントに正しくマッピングできるようにします。
たとえば、Active Directory ユーザーの sAMAccountName
属性を EXAMPLE
に設定し、小文字のユーザー名でユーザーがログインしようとすると、Kerberos はユーザー名を大文字で返します。その結果、エントリーは認証の失敗に一致しません。
winbind_krb5_localauth
プラグインを使用すると、アカウント名が正しくマッピングされます。これは GSSAPI 認証にのみ適用され、初期のチケット付与チケット (TGT) の取得には該当しません。
前提条件
- Samba が Active Directory のメンバーとして設定されている。
- Red Hat Enterprise Linux が、Active Directory に対してログイン試行を認証している。
-
winbind
サービスが実行している。
手順
/etc/krb5.conf
ファイルを編集し、以下のセクションを追加します。
[plugins] localauth = { module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so enable_only = winbind }
関連情報
-
winbind_krb5_localauth(8)
man ページ.