LinuxサーバをActive Directoryに。

我が家のML115の上には現在3台のVirtual Machineが動いている。
VPNを接続するためのWindows XP Professionalと、Windowsファイル共有をするためのWindows Server 2008、それと、WebやらMailなんかが動いてるLinuxサーバ。

で、Linuxのサーバはアカウントを管理するためにOpenLDAPを導入してたんだけど、正直に言ってOpenLDAPはGUIがオープンソースで用意されているものの貧弱でいまいちだった。

Windowsファイル共有を利用するためのユーザアカウントと、Linuxを利用するためのユーザアカウントで、同じものを利用したいって言うのもあって、とりあえずはWindows側と、Linux側で同じアカウントを作ってたんだけど、これって無駄だよねってことでちょっと考えることに。

その結果、Windowsファイル共有を利用するためのユーザをActive Directoryに統合し、OpenLDAPを廃止、Linuxのアカウント管理をActive Directoryに任せてしまおうという結論に達した。

こうすることで、FTPのユーザを作成する際にも、わざわざLinux側での作業をすることなくActive Directory上にユーザを作成すれば自動的にLinuxにもログインできるようになった。

また、この際、ADをインストールする際に必要なDNSサーバもWindows側に持たせてしまうことで、BINDも不要となった。

ってことで、手順を。
下記の手順でかいてある、vmfs.cecily.jpっていうのが、Windows Server 2008のFQDN、cecily.jpってのが対象のドメインになっている。

まずは、Windows Server 2008での作業。
・・・とはいっても、ここで一から手順を記述するまでもなくADの構築はできていると思うのでここでは割愛。
Sambaのバージョンが3.0とかの場合はWindows Server 2008のADとは統合できないから注意。

ちなみに、RHEL5や、CentOS5のリポジトリに登録されているSambaのクライアントは3.0なので、Windows Server 2008のADを利用したい場合は、Sernetあたりからダウンロードしてくると良い。
その場合は、下記のように必要なパッケージを一気にアップデート or インストールしないと必要なパッケージがどうのこうのってエラーメッセージが表示される。

# rpm -Uvh samba3-winbind-3.2.3-37.x86_64.rpm samba3-client-3.2.3-37.x86_64.rpm libsmbclient0-3.2.3-37.x86_64.rpm libwbclient0-3.2.3-37.x86_64.rpm

その後、Sambaのコンフィグファイルを編集して、どのドメインに参加するのかなどを設定する。

#vi /etc/samba/smb.conf
[global]
   workgroup = CECILY
   password server = vmfs.cecily.jp
   realm = CECILY.JP
   security = ads
   idmap uid = 10000-50000
   idmap gid = 10000-50000
   winbind separator = +
   template homedir = /home/%U
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false

次にアカウント情報の取得方法を変更する。

# vi /etc/nsswitch.conf
passwd: files
shadow: files
group: files
↓
passwd: files winbind
shadow: files winbind
group: files winbind

これで、/etc/passwd、/etc/shadow、/etc/groupにない情報はwinbindを利用するようになる。
最後に、Kerberosの設定ファイルを編集し、ADに参加できるようにする。

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = CECILY.JP
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 forwardable = yes

[realms]
 CECILY.JP = {
  kdc = vmfs.cecily.jp
  admin_server = vmfs.cecily.jp
  default_domain = cecily.jp
 }

[domain_realm]
 .cecily.jp = CECILY.JP
 cecily.jp = CECILY.JP

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }

大文字になっているところは、わざと大文字にしてあって、小文字では動かないので注意。
そしていよいよADへの参加。

# net ads join -U administrator
administrator's password : ドメインのadministratorユーザのパスワードを入力
Using short domain name -- CECILY
Joined 'SMTP' to realm 'CECILY.JP' 

ちなみに、今回の環境では、LinuxのDNSサーバの設定をWindows Server 2008にしておかなければだめだった。


  1. コメントはまだありません。

  1. トラックバックはまだありません。