我が家の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にしておかなければだめだった。
コメント