Windows ActiveDirectory を利用した Linux ログイン認証環境構築時のメモ


Table of Contents
はじめに
環境
smb.conf の設定
マシンアカウントの作成
NSS の設定
PAM の設定
デーモンの起動
ログインの確認

はじめに

この度、わけあって Linux マシンへのログイン時の認証を Windows の ActiveDirectory にやらせよう、ということを試みることになりました。

これを実現する方法としては、ActiveDirectory を kerberos サーバと して利用する方法や LDAP サーバとして利用する方法、Samba の winbind の機能を利用する方法等が知られているようです。

ActiveDirectory を kerberos サーバとして利用する方法については、 たかはしもとのぶ氏の「 Linux の認証を Active Directory で行なう方法」が参考にな ります。ただし、この方法は ActiveDirectory 側では認証しか行いませ んので、これ以外の passwd データベースの情報(ホームディレクトリや UID 等)やグループ情報を Linux マシン側の /etc/passwd, /etc/group 等に持たせる必要があります。すなわち、アカウントの二重管理となるた め、管理者としては面倒になります。

ActiveDirectory を LDAP サーバとして利用する方法については、「 Single-Sign-On on Linux using LDAP with Active Directory」 というドキュメントが参考になります。この方法は、ActiveDirectory 側 で全ての情報を管理できますが、設定がメンドイようです。 ActiveDirectory schema 自体を変更したり、変更してもさらに ActiveDirectory schema の独自の attribute が RFC 2307で定義される posixAccount にあるものとカブってしまうらしい(私は詳細は調べてません) ので /etc/ldap.conf をいじって nss_map_attribute 等で attribute名を マッピングしなくてはならなかったり、stunnel を掘らなくちゃならなかっ たり…。とにかく構築が面倒です。

Samba の winbind を利用する方法については、Miracle Linux の技術文書「 Samba 3.0解説」が参考になります。この方法は ActiveDirectory を変更することもなく、Linux 側も smb.conf と pam と nss の設定だけで、 わりとお気楽に構築できるようです。

というわけで、ここでは一番楽な winbind を利用した Linux ログイン認証 について、その構築時のメモを記していこうと思います。