サポートTID

SSSDをActive Directory環境に統合する方法

このドキュメント (00100031) の最後に記載の 免責条項 に基づき提供されています。

環境

SUSE Linux Enterprise 12

概要

SSSD(System Security Services Daemon)をAD(Active Directory)環境に統合する方法について知りたい。

解決策

下記設定例では、以下のことを前提としています。

前提

- Windows Server (AD/DNSインストール済み)
   ADサーバ名: winad.sample.com (192.168.124.80)
   テスト用ユーザ: user1が存在
- LDAPクライアント
   サーバ名: ldapclient.sample.com (192.168.124.123)
   パッケージ: sssd-ad、krb5-client、samba-clientがインストール済み

設定例

  1. 認証クライアント(LDAPクライアント)

    1) 設定準備
     # vi /etc/hosts
     ...
       192.168.124.123 ldapclient.sample.com ldapclient <-- ドメインあり/なしの両方を設定
       192.168.124.80 winad.sample.com winad <--ドメインあり/なしの両方を設定

     # hostname -f
     ldapclient.sample.com <-- FQDNも表示されることを確認

     # vi /etc/resolv.conf
     nameserver 192.168.124.80 <-- ADサーバのIPアドレスを指定

    2) Kerberosの設定

     # vi /etc/krb5.conf
     [libdefaults]
     default_realm = SAMPLE.COM
     dns_lookup_realm = true
     dns_lookup_kdc = true
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true

     [realms]
       SAMPLE.COM = {
         kdc = winad.sample.com
         admin_server = winad.sample.com
       }

     [logging]
     kdc = FILE:/var/log/krb5/krb5kdc.log
     admin_server = FILE:/var/log/krb5/kadmind.log
     default = SYSLOG:NOTICE:DAEMON

    3) sambaの設定

     # vi /etc/samba/smb.conf
     [global]
       workgroup = SAMPLE
       client signing = yes
       client use spnego = yes
       kerberos method = secrets and keytab
       log file = /var/log/samba/%m.log
       realm = SAMPLE.COM
       security = ads
     [homes]
       comment = Home Directories
     :

    4) kerberos初期化

     # kinit Administrator
     Password for Administrator@SAMPLE.COM:

    5) ドメインに参加

     # net ads join -U Administrator
     Enter Administrator's password:
     Using short domain name -- SAMPLE
     Joined '<hostname>' to dns domain 'sample.com'

    6) sssdの設定

     # vi /etc/nsswitch.conf
     ...
     passwd: compat sss
     group: compat sss

     # vi /etc/sssd/sssd.conf
     [sssd]
     config_file_version = 2
     services = nss, pam
     domains = sample.com
     [domain/sample.com]
     override_homedir = /home/%d/%u
     id_provider = ad
     enumerate = true
     ad_server = xxx.sample.com
     ldap_id_mapping = true
     cache_credentials = false

     [nss]
     filter_users = root
     filter_groups = root
     [pam]
     ...

    7) 次のコマンドを実行

     # pam-config --add --sss
     # pam-config --add --mkhomedir
     # systemctl stop nscd.service
     # systemctl disable nscd.service
     # systemctl restart sssd
     # systemctl enable sssd
     # getent passwd
     ※AD上のユーザuser1が表示されることを確認

  2. ログイン確認


    1) LDAPクライアント上でsuコマンドを実行

    # su - user1

    2) 他サーバからログイン可能か確認

     # ssh user1@ldapclient.sample.com

留意事項:
上記設定例では、getent passwdコマンドでユーザ情報を確認するために、/etc/sssd/sssd.confのenumerateは"true"を設定しています。 この設定の場合、ユーザアクセスに関係なく、AD上のユーザ情報が全てローカル上にキャッシュされますが、AD上のユーザデータが大量にあると、それに起因して、SSSD プロセスが CPU を占有する事例が報告されております(事例では約4500 ユーザ)。
そのため、本番環境のご利用では、enumerate = falseに設定されることをお勧めいたします。この設定により、ユーザアクセスがある場合のみローカル上にユーザ情報がキャッシュされるようになります。

免責条項

このサポート ナレッジベースは、NetIQ/Novell/SUSE顧客、および弊社製品およびそのソリューションに関心のあるパーティへ、情報やアイデアの取得およびそれらの知識を得る為の有効なツールを提供します。 本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。

  • ドキュメント ID:00100031
  • 作成年月日:18-FEB-16
  • 修正年月日:06-OCT-17
    • SUSESUSE Linux Enterprise 12

このドキュメントはあなたの問題を解決しましたか? フィードバックを送る

SUSEサポートフォーラム

経験豊富なシステムオペレーターへの質問を投稿したり、他のSUSEコミュニティのエキスパートと交流したりすることができます。

サポートリソース

このガイドラインでは、SUSEサブスクリプション、Premium Support、教育機関向けプログラム、またはパートナープログラムで提供されるテクニカルサポートの活用方法について説明します。


SUSE Technical Support Handbook Update Advisories

インシデントを開く

テクニカルサポートへのインシデントの報告、サブスクリプションの管理、パッチのダウンロード、ユーザーアクセスの管理を行うことができます。