|
|
■ Solaris10 LDAPクライアントの設定 |
2010/02/19 更新 |
|
Solaris10に標準実装されたLDAPクライアントによる、ユーザ認証を構成する。 |
|
設定手順
- LDAPクライアントの状態確認。
# svcs \*ldap\*
STATE STIME FMRI
online 14:37:33 svc:/network/ldap/client:default
# svcs -l network/ldap/client:default
fmri svc:/network/ldap/client:default
name LDAP client
有効 true
状態 online
next_state none
state_time 2010年01月22日 (金) 19時37分33秒
logfile /var/svc/log/network-ldap-client:default.log
リスタータ svc:/system/svc/restarter:default
contract_id 144
dependency require_all/none svc:/system/filesystem/minimal (online)
dependency require_all/none svc:/network/initial (online)
# |
- LDAPクライアントの設定シェルを作成。 (こっちのほうが楽なので・・・)
# vi ldap-cl_setup.sh
|
緑:デフォルト、オレンジ:変更箇所 |
|
#!/bin/sh
#
ldapclient manual \
-a credentialLevel=proxy \
-a authenticationMethod=simple \
-a proxyDN=cn=aaa,dc=bbbb,dc=or,dc=jp \ ※1
-a proxyPassword=DNpassword \ ※2
-a defaultSearchBase=dc=bbbb,dc=or,dc=jp \ ※3
-a defaultSearchScope=sub \
-a domainName=dc=bbbb,dc=or,dc=jp \ ※4
-a "defaultServerList=192.168.100.10 192.168.100.20" \ ※5
-a bindTimeLimit=1 \ ※6
-a serviceSearchDescriptor=passwd:ou=Users,dc=bbbb,dc=or,dc=jp \ ※7
-a serviceSearchDescriptor=group:ou=Groups,dc=bbbb,dc=or,dc=jp ※7 |
|
# chmod 700 ldap-cl_setup.sh |
|
※1 |
|
バインドDNを指定。 |
|
※2 |
|
バインドDNのパスワード (暗号化されて保存される) |
|
※3 |
|
検索する場所 |
|
※4 |
|
ドメイン名を指定 |
|
※5 |
|
LDAPサーバが2台あるときは、アドレスをスペース区切りで記述しダブルクォーテーションでくくる。 |
|
※6 |
|
LDAPサーバへの接続タイムアウト値を設定、冗長構成の場合は短めに設定する。 |
|
※7 |
|
ユーザ、グループの情報を検索する場所を指定する。 これは、LDAPサーバ側のディレクトリツリー構造に合わせて、
調整が必要となります。 簡単に言うと、ローカルユーザ情報が書かれている /etc/passwd に相当する、LDAP側の
情報 (posixAccount) は、このコンテナにありますよ。 また、/etc/group に相当する、LDAP側の情報 (posixGroup)
は、
このコンテナにありますよ。 という感じかな?
ちなみに、この "serviceSearchDescriptor" を記述しない場合、id -a を実行すると、gid番号は表示されますが、
所属している他のグループのgid番号やグループ名の情報は表示されません。 特定のグループに属するユーザは
ssh が 使えるといった仕組みが必要な場合は、考慮するポイントになります。 |
- シェルを実行し設定を行う
# ./ldap-cl_setup.sh
システムは正常に構成されました ※1
# ldapclient list
NS_LDAP_FILE_VERSION= 2.0
NS_LDAP_BINDDN= cn=aaa,dc=bbbb,dc=or,dc=jp
NS_LDAP_BINDPASSWD= {NS1}342375afeb345a561cf4049
NS_LDAP_SERVERS= 192.168.100.10, 192.168.100.20
NS_LDAP_SEARCH_BASEDN= dc=bbbb,dc=or,dc=jp
NS_LDAP_AUTH= simple
NS_LDAP_CACHETTL= 0
NS_LDAP_CREDENTIAL_LEVEL= proxy
NS_LDAP_SERVICE_SEARCH_DESC= passwd:ou=Users,dc=bbbb,dc=or,dc=jp
NS_LDAP_SERVICE_SEARCH_DESC= group:ou=Groups,dc=bbbb,dc=or,dc=jp
NS_LDAP_BIND_TIME= 1
# |
|
※1 |
|
初めて実行する場合は数十秒かかる場合がある。 |
- nsswitch.conf の内容を修正する。
# cp -rp /etc/nsswitch.files /etc/nsswitch.conf
# vi /etc/nsswitch.conf
|
緑:デフォルト、オレンジ:変更箇所 |
|
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
:
省略
:
passwd: files ldap ※1
group: files ldap ※1
hosts: files dns ※2
:
省略
: |
|
|
ldapclientコマンドにより、nsswitch.ldap ファイルが nsswitch.conf に置き換えられます。 nsswitch.conf に記載された全ての情報をLDAPが持っていない場合、不具合が発生する可能性があるので、nsswitch.files を元に必要な部分だけ修正を加えることにします。 |
|
※1 |
|
ログイン認証に使うのであれば、passwd と group に ldap を追加すれば十分。 |
|
※2 |
|
DNS を忘れずに追加しておく。 nsswitch.ldap にある、"ldap [NOTFOUND・・・" のままだと名前解決に問題が・・・。 |
- PAMを設定する。
# vi /etc/pam.conf
|
緑:デフォルト、オレンジ:変更箇所 |
|
#
#ident "@(#)pam.conf 1.31 07/12/07 SMI"
#
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# PAM configuration
:
省略
:
#
# login service (explicit because of pam_dial_auth)
#
login auth requisite pam_authtok_get.so.1
login auth required pam_dhkeys.so.1
login auth required pam_unix_cred.so.1
#login auth required pam_unix_auth.so.1
login auth sufficient pam_unix_auth.so.1
login auth required pam_ldap.so.1
#login auth required pam_dial_auth.so.1
:
省略
:
#
# Default definitions for Authentication management
# Used when service name is not explicitly mentioned for authentication
#
other auth requisite pam_authtok_get.so.1
other auth required pam_dhkeys.so.1
other auth required pam_unix_cred.so.1
#other auth required pam_unix_auth.so.1
other auth sufficient pam_unix_auth.so.1
other auth required pam_ldap.so.1
#
# passwd command (explicit because of a different authentication module)
#
#passwd auth required pam_passwd_auth.so.1
passwd auth sufficient pam_passwd_auth.so.1
passwd auth required pam_ldap.so.1
:
省略
: |
|
|
- 設定の反映と動作確認
# svcadm refresh svc:/network/ldap/client ※1
# getent passwd ※2
root:x:0:0:Super-User:/:/sbin/sh
daemon:x:1:1::/:
:
省略
:
userA:x:1000:1000::/home/userA:/bin/bash ※2
# getent group ※3
root::0:
other::1:root
:
省略
:
userA::1000:
sales::2000:userA ※3
# id -a userA ※4
uid=1000(userA) gid=1000(userA) groups=2000(sales) ※4 |
|
※1 |
|
kill -HUP と同じ動きです。 |
|
※2 |
|
/etc/passwd ファイルの内容+LDAPユーザが表示されていればOK。 |
|
※3 |
|
/etc/group ファイルの内容+LDAPグループが表示されていればOK。 |
|
※4 |
|
そのユーザが所属する全てのグループの gid番号 と グループ名 が表示されていればOK。 |
その他、コマンド
|
# ldapclient mod -a "defaultServerList=192.168.10.10" ※1
# ldapclient list ※2
# ldapclient uninit ※3 |
|
※1 |
|
設定した定義を変更する |
|
※2 |
|
設定した定義の一覧を表示する |
|
※3 |
|
設定を元に戻す (nsswitch.conf も元の定義に戻る) |
|
|
|
|
|
|