9月 292015
 

WindowsのActiveDirectoryにユーザ情報を格納して、Linuxがそのユーザ情報を参照して一元管理をしたいという要件がよくあり、今回はWindowsではなくSambaでファイルサーバを構築する必要があったのでID統合について調べてみた。

基本的にはRedhatのWindows Integration Guide(英語)を参考にし、不足している箇所や設定方法についてメモした。

ID統合パターン

Redhatのガイドによると、ID統合するパターンとして直接参照と間接参照の2パターンがある。直接参照はLinuxがADに参照する方法で一般的だと思うが、間接参照はIdM(無償)やRHDS(有償)を利用し信頼関係をADと結び認証する方法となる。メリットあるのだが、間接参照だと手間が掛かり過ぎるので今回は直接参照を利用する。直接参照では以下のパターンがある。

  1. NSS&PAMモジュール
    ldapやkerberosのNSS&PAMモジュールを利用してAD連携する方法
  2. Samba Winbind
    Winbindよりユーザ認証を行う。NSSやPAMはWinbindを使うように設定する。
  3. System Security Services Daemon (SSSD)
    Redhat推奨。複数の認証サービスを橋渡したりキャッシュしたりする。

IDマッピング

WindowsとLinuxではID管理がそもそも違う。WindowsではSID、LinuxではPOSIX UIDやGIDとなっており、Windows ADにはLinuxで必要なUIDなどの情報は格納されていない。そこので以下の方法でマッピングすることが可能となる。

  1. SIDからUID/GIDを自動生成する
    一番実装が簡単な方法。S-1-5-21-3623811015-3361044348-30300820-1013のようなSIDから、1013のようにUIDやGIDを生成する。多種のアプリケーションやシステムも参照する場合(PostfixからLDAP参照、Soralisなど別OSなど)、生成ルールを統一しておかないとIDが変わってしまう。UID・GIDを指定することはできない。
  2. LDAP格納
    上記の自動されたUID/GIDをLDAPサーバへ格納する方法。LDAPサーバへ格納すれば、UID・GIDを指定したり自動生成できないアプリケーションやシステムも救済することができる。LDAPサーバとしてOpenLdapやIdM、RHDS、WindowsのAD LDSもLDAPなので格納できる。LDAPサーバの構築手間やLDAP管理UIなどを検討する必要がある。
  3. AD格納
    ADではUID・GIDを管理してはいないが、POSIX UID・GIDの属性はWindows 2003R2くらいからスキーマは適用されている。管理UI目的でにNIS機能をインストールする方法(NIS機能は使わないでGUIのみ使う)もあるが、Windows2012R2では非推奨(MSサポート受けられません)となり次期Windows2016では廃止される予定となっている。NFSサーバをインストールしPowerShellやADSI等で管理する方法もできる。UID・GIDも指摘でき、LDAP参照もできるので一番スマートな方法かもしれない。

NTLM認証

単純なID統合であれば考慮する必要がないのだが、今回はSambaでファイルサーバを構築するので認証方式サポートについても考慮が必要になる。NTLM認証はホスト名でなくIPアドレスでアクセスした場合に発生する。

例) \\fileserver\share     → Kerberos認証
   \\192.168.1.100\share → NTLM認証

SambaでID連携が可能なのは、WinbindとSSSD(実際はSambaのWinbind連携モジュールをSSSDに差し替える方式)となり、SSSDはNTLM認証に対応していない。IPアドレスでのアクセスが必要な場合はWinbindのみとなってしまう。また、1台Winbindを使ったファイルサーバを作成したら、ID統一するためにファイルサーバ以外でもWinbindを使う必要がある。※SSSDとWinbindの組み合わせを1つのシステムで構築してはいけません。ID自動生成方法が違うので。(AD格納方式なら問題ないです)

まとめ

結局どれがいいのかというとUID・GIDの指定有無で構成が変わる。

  1. SSSD/Winbind+ID自動生成
    一番シンプルでRedhatの推奨構成。以下が制約

    • UID・GIDは自動生成なのでID指定できない
    • UID・GIDを複数のシステムで参照する場合(NFSマウントし複数のサーバで参照する など)には、ID自動生成の仕組みが同一(SSSD/Winbind)である必要がある。Redhat/SSSDバージョン縛りができてしまう。
    • Sambaでファイル共有をする場合にはSSSDではなくWinbindを使う必要がある
    • WindowsサーバCALも必要なのでサーバ台数にも注意
  2. SSSD/Winbind+AD格納
    ID自動生成に比べてRedhat/SSSD縛りがなくアプリケーションからのアクセス(PostfixからのLDAP認証など)ができていいのだが、管理UIについて検討が必要になる。

    • 管理UI目的でNIS機能をインストールすると、Windows 2012では非推奨となっておりMSサポートが受けられない
    • MSサポートを受ける必要があるのであれば(高いよ)、NFSサーバのPowerShellやADSIなどで管理する方法がある
    • Sambaでファイル共有をする場合にはSSSDではなくWinbindを使う必要がある
    • WindowsサーバCALも必要なのでサーバ台数にも注意

と書いてみたものの、個人的にはWinbind+AD格納方式が一番いいと思います。MSサポートがないのは残念ですが、そもそもMSサポート使っていますか?

構築手順

構築手順は別ページにしました。

Sorry, the comment form is closed at this time.