2017年9月15日金曜日

[CentOS7] Active Directoryとの連携にSSSDを使用する方法

概要

LinuxサーバをADに接続する従来の方法としてSamba Winbindがある。WinbindはLinuxサーバ上でWindowsクライアントをエミュレートし、ADサーバに通信することができる。
RHEL7ではSamba WinbindとSSSDとの間に機能的な差はなくなり、SSSDはWinbindの代わりとして使用できるようになり、SSSDは、AD、RHELのIdentiry Management(IdM)、汎用的なLDAPサーバやKerberosサーバに接続する際に推奨されるコンポーネントとなった。
SSSDでは提供できないサービスとして、NT LAN Manager(NTLM)やNetBIOS名参照を使用した認証のサポートがある。これらの機能が必要となる場合はWinbindを使用する。

事前準備

ドメインコントローラの名前解決ができるようにするため、/etc/resolv.confにADサーバのDNSを設定する。

TIPS:
/etc/hostsにドメインコントローラを設定するのも可

# vi /etc/hosts
192.168.1.1    WIN2012R2AD WIN2012R2AD.test.local

導入・設定

realmdパッケージのインストール

realmdパッケージおよび、必要なパッケージをインストールする。 realmdは、Linuxサーバがドメインに接続できるように設定する簡単な方法を提供する。

# yum install realmd
# yum install sssd adcli samba-common-tools

ドメインの検出・参加

realm discoverを使用してドメインを検出する。

NOTE:
realmコマンドはDNS SRVルックアップを使用して、ドメイン内のドメインコントローラを自動的に見つける。 resolv.confにADサーバのDNSを設定していない場合は、realmコマンドに検出したいドメインのドメインコントローラを指定する。

# realm discover win2012r2ad.test.local
test.local
  type: kerberos
  realm-name: TEST.LOCAL
  domain-name: test.local
  configured: no
  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

realm joinを使用してドメインに参加する。

# realm join win2012r2ad.test.local -U Administrator
Administrator に対するパスワード:

NOTE:
更新されるファイルの一覧

  • /etc/krb5.conf
  • /etc/krb5.keytab
  • /etc/pam.d/smartcard-auth-ac
  • /etc/pam.d/fingerprint-auth-ac
  • /etc/pam.d/password-auth-ac
  • /etc/pam.d/postlogin-ac
  • /etc/pam.d/system-auth-ac
  • /etc/sssd/sssd.conf

確認

ドメインからユーザ情報の取得

idコマンドを使用してドメインからユーザ情報を表示する。

NOTE:
LinuxサーバのuidおよびgidはSSSDのIDマッピング機能によりActive DirectoryセキュリティID(SID)を基に作成される。 すべてのクライアントがIDマッピングにSSSDを使用する限り、マッピングの整合性は保たれるため、異なるLinuxサーバでもuidおよびgidは変わらない。

# id aduser1@test.local
uid=1218001106(aduser1@test.local) gid=1218000513(domain users@test.local) groups=1218000513(domain users@test.local),1218001602(adusers@test.local)

ドメインユーザを使用してLinuxサーバへログイン

sshコマンドを使用してドメインユーザでログインする。

# ssh -l aduser1@test.local centos2
$ id
uid=1218001106(aduser1@test.local) gid=1218000513(domain users@test.local) groups=1218000513(domain users@test.local),1218001602(adusers@test.local)
$ ls -l /home
合計 4
drwx------  4 aduser1@test.local domain users@test.local   91  9月 14 10:04 aduser1@test.local

参考

  • https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Windows_Integration_Guide/adding-linux-to-ad.html

0 件のコメント:

コメントを投稿