Samba AD DC上でのWinbinddの設定

提供: 雑廉堂Wiki
2019年3月9日 (土) 16:30時点におけるMeisina04 (トーク | 投稿記録)による版

はじめに

Winbinddサービスを使用すると、次のことが可能になります。

  • chownchgrp などのローカルコマンドでドメインユーザやドメイングループを使用できます。
  • ls コマンド等で、ドメインユーザやグループを表示できます。

Samba アクティブディレクトリ(AD)ドメインコントローラ(DC)でのWinbinddの構成は、ドメインメンバの場合とは異なります。ドメインメンバとしてサービスを設定するには、Sambaをドメインメンバとして構成する を参照して下さい。


Winbind と Winbinddサービスとの違い=

Samba 4.0と4.1は、sambaコマンドに組み込まれた新しいWinbind実装を使用していました。 しかし、この実装は正 しく機能しませんでした。 このため、Samba 4.2ではwinbinddユーティリティをドメインコントローラ(DC)で使用することがで きました。 Samba 4.2よりも前のSambaを実行している場合、Winbinddを使用する前に、サポートされているバージョンに更新してください。 詳細は、「Sambaの更新」を参照してください。


Sambaドメインコントローラ上でのIDマッピング

IDマッピングは、Samba ドメインコントローラ(DC)では、ドメインメンバの場合とは異なる動作をします。例えば、smb.conf ファイルでad(rfc2307)やridなどのIDマッピングバックエンドを構成することはサポートされていないため、sambaサービスが失敗する可能性があります。詳細については「idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にアクセスできない」を参照して下さい

SambaアクティブディレクトリDCでは、Winbinddは常にユーザID(UID)およびグループID(GID)を、ADオブジェクトに設定されたuidNumberおよびgidNumber属性で設定された値から、読み取ります。UIDまたはGIDが割りあてられていないユーザ、及びグループの場合、IDはDC上でローカルに作成され、/usr/local/samba/private/idmap.ldbに格納されます。


smb.confファイルでのWinbinddパラメータの設定

Samba Active Directory(AD)ドメインコントローラ(DC)上でWinbinddを実行するには、ほとんどの場合、smb.confファイルの設定は必要ありません。

ユーザーIDとグループIDは、Active Directory(AD)からロードされるか、ローカルで自動的に生成されます。詳細については、「Sambaドメインコントローラ上でのIDマッピング」を参照してください。

Samba DCでは、winbindテンプレートモードのみがサポートされています。このモードでは、すべてのユーザーが以下を取得します。

  • 割り当てられたホームディレクトリパス。template homedirパラメータで設定します。このパラメータのデフォルト値は/home/%D/%Uです。
  • 割り当てられたシェル。template shellパラメーターで設定します。このパラメータのデフォルト値は/bin/falseです。

Winbinddが提供するすべてのドメインユーザーにログオンシェルとして/bin/bashと、ホームディレクトリパスとし て /home/%Uを割り当てるには:

  • smb.confファイルの[global]セクションに次のパラメータを追加します。
    template shell = /bin/bash
    template homedir = /home/%U

詳細は、smb.conf(5)のマニュアルページを参照してください。

  • sambaサービスを再起動します。

Libnss winbindリンク

https://wiki.samba.org/index.php/Libnss_winbind_Links


Sambaを自身でコンパイルした場合、ホストがWinbindを使用して、ドメインから、ユーザーとグループの情報を受け取れるようにするには、オペレーションシステムのライブラリパスのディレクトリに、2つのシンボリックリンクを作成する必要があります。ディストリビューションのパッケージからSambaを使用している場合は、Debianのlibpam-winbind と libnss-winbindのように、通常、これを行うためのディストリビューションのパッケージがあります。

プラットフォームの決定

オペレーティングシステムのプラットフォームを確認するには:

# uname -m



libnss_winbind.so.2 ライブラリの場所を探す

libnss_winbind.so.2は、コンパイル時にSambaのライブラリディレクトリにインストールされています。検索するには:

# smbd -b | grep LIBDIR
   LIBDIR: /usr/local/samba/lib/

このディレクトリから、オペレーティングシステムのライブラリパスへリンクしてください。



オペレーティングシステム固有の例

Red Hat ベースのオペレーティングシステム

x86_64

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/
# ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so
# ldconfig


i686

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/
# ln -s /lib/libnss_winbind.so.2 /lib/libnss_winbind.so
# ldconfig


Debian ベースのオペレーティングシステム

x86_64

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/x86_64-linux-gnu/
# ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so
# ldconfig


i686

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/i386-linux-gnu/
# ln -s /lib/i386-linux-gnu/libnss_winbind.so.2 /lib/i386-linux-gnu/libnss_winbind.so
# ldconfig


ARM

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/arm-linux-gnueabihf/
# ln -s /lib/arm-linux-gnueabihf/libnss_winbind.so.2 /lib/arm-linux-gnueabihf/libnss_winbind.so
# ldconfig


SUSE ベースのオペレーティングシステム

x86_64

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/
# ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so
# ldconfig


i686

# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/
# ln -s /lib/libnss_winbind.so.2 /lib/libnss_winbind.so
# ldconfig

ネームサービススイッチの設定

ネームサービススイッチ(NSS)ライブラリを有効にして、ドメインユーザとグループをローカルシステムで使用できるようにするには:

  • /etc/nsswitch.confファイルの次のデータベースにwinbindエントリを追加します。
passwd: files winbind
group:  files winbind
  • 両方のデータベースの最初のソースとしてfilesエントリを保持します。 これにより、NSSはWinbindサービスを照会する前に/etc/passwdおよび/etc/groupファイルからドメインユーザーとグループを検索できます。
  • winbindエントリをNSS shadowデータベースに追加しないでください。 これにより、wbinfoユーティリティが失敗する可能性があります。
  • Sambaをコンパイルした場合、libnss_winbindライブラリからOSのシステムライブラリパスにシンボリックリンクを追加してください。詳細は、Libnss winbind リンクを参照してください。Sambaのインストールにパッケージを使用した場合は、リンクは自動的に作成されます。

winbinddサービス

Samba Active Directory(AD)ドメインコントローラ(DC)でwinbinddサービスを手動で起動しないでください。 このサービスは、sambaプロセスのサブプロセスとして自動的に開始されます。 確認するには、次を入力します。

# ps axf
...
2156 ?        Ss     0:00 /usr/local/samba/sbin/samba -D
2158 ?        S      0:00  \_ /usr/local/samba/sbin/samba -D
2172 ?        R      0:00      \_ /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
...


Winbindd接続のテスト

Winbindへの接続を確認を参照。

PAMを利用したドメインユーザーの認証

PAMを使用したドメインユーザーの認証を参照。