ようやっとSamba(PDC)+LDAP認証なサーバ & Samba+NFSなファイルサーバの連携に成功した。 これでクライアントはWindowsでのドメインログオン & LinuxでのLDAP認証によるログイン (ホームディレクトリ共有)が出来るようになる。
とりあえずSambaは置いておくとして、autofs+LDAPについてWeb上にまとまったドキュメントがなくて苦労した。 以下はそのあたりについての断片的なドキュメント。LDAPでの各ユーザーエントリはsmbldap-toolsによって生成された ものをベースとしている点に注意。いつかSambaとあわせてちゃんとまとめなきゃな。
役割 | IP |
---|---|
認証サーバ | 192.168.1.2 |
ファイルサーバ | 192.168.1.3 |
LDAPのbasednは「dc=example,dc=com」、root dnは「cn=Manager,dc=example,dc=com」。
/export以下を公開する。
ユーザーエントリに対してobjectClass「automount」を追加できるように スキーマファイルを修正する。
--- /etc/openldap/schema/redhat/autofs.schema.orig 2004-08-06 17:57:40.000000000 +0900 +++ /etc/openldap/schema/redhat/autofs.schema 2004-08-06 17:58:28.000000000 +0900 @@ -13,7 +13,7 @@ EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top STRUCTURAL +objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top AUXILIARY DESC 'An entry in an automounter map' MUST ( cn $ automountInformation ) MAY ( description ) )
autofs用にエントリの追加を行う。
# cat autofsinit.ldif dn: ou=auto.master,dc=example,dc=com objectClass: top objectClass: automountMap ou: auto.master dn: cn=/home,ou=auto.master,dc=example,dc=com objectClass: organization objectClass: automount o: /home cn: /home automountInformation: ldap://192.168.1.2/ou=Users,dc=example,dc=com # ldapadd -x -D 'cn=Manager,dc=example,dc=com' -W -f autofsinit.ldif
各ユーザエントリに対してautomount用のAttributeを追加する。この例ではユーザdomainuserに対する処理を行っている。
# cat addatribute dn: uid=domainuser, ou=Users, dc=example,dc=com changetype: modify add: objectClass objectClass: automount - add: automountInformation automountInformation: 192.168.1.3:/export/home/domainuser # ldapmodify -x -D 'cn=Manager,dc=example,dc=com' -W -f addatribute
/etc/exportsに以下の行を追加。
/export 127.0.0.1/255.255.255.0(rw,sync,no_root_squash) /export 192.168.1.0/255.255.255.0(rw,sync,no_root_squash)
あとは関連サービスを起動させる。
# /etc/init.d/portmap start # /etc/init.d/nfs start
authconfigでLDAPサーバ認証をするように設定し、 /etc/nsswitch.confのautomountの項目にldapがあるか確認しておく。
autofsのバージョンを確認する。
# /usr/sbin/automount --version Linux automount version 4.1.2
FC1などにある3.x系はautomountの書式が異なり「//ldaphost/basedn」ではなく 「ldaphost:basedn」という形をとるので注意。 その場合は新しいものをいれればいい。
# yum remove autofs # cd /usr/local/src # wget http://www.kernel.org/pub/linux/daemons/autofs/v4/autofs-4.1.3.tar.gz # tar zxf autofs-4.1.3.tar.gz # ./configure # make # make install
autofsを起動し、マウントポイントを確認する。
# /etc/init.d/autofs start # /etc/init.d/autofs status Configured Mount Points: ------------------------ /usr/sbin/automount --timeout=60 /home ldap //192.168.1.2/ou=Users,dc=example,dc=com
これで終了。
最初マウントするときにやたら時間がかかる現象に見舞われた(1分30秒とか)。そのときのログは 以下のようなもの。
Aug 7 15:55:56 localhost kernel: portmap: server localhost not responding, timed out Aug 7 15:55:56 localhost kernel: RPC: failed to contact portmap (errno -5).
これはクライアント側で
を実行していなかったのが原因だった。
文句なしの試合展開で危なげなく優勝。いやぁ、楽しかった。