RIGHT:[[Sun 関係覚え書き]]
Solaris10 を OpenLDAP クライアントにする.
Solaris 10 x86 と Debian Linux にて実験.
*ldapclient [#x4d14c4f]
Solaris を LDAP クライアントとして設定するには
ldapclient コマンドを用いる.
# /usr/sbin/ldapclient
使用法: ldapclient [-v | -q] init | manual | mod | list | uninit [<args>]
サーバーまたはワークステーションを LDAP 名前空間のクライアントとして
設定します。
<args> は '-a attrName=attrVal' の形式を取ります。
マニュアルのページ:ldapclient(1M) に説明があります。
サーバ名に名前や FQDN を指定するときは,
名前解決がちゃんとできていることを確認すること.
*構成成功例(ldap:/// を開放した場合) [#o2963d3a]
# /usr/sbin/ldapclient manual \
-a defaultSearchBase=dc=ldap,dc=example,dc=co,dc=jp \
192.168.114.16
システムは正常に構成されました
# ls /var/ldap
cachemgr.log ldap_client_cred ldap_client_file restore
ただ,これでは getent で情報はとれるが認証が通らない.
というわけで,以下のようにする.
# ldapclient manual -a domainName=ldap.example.co.jp \
-a credentialLevel=proxy \
-a proxyDN=cn=admin,dc=ldap,dc=example,dc=co,dc=jp \
-a defaultSearchBase=dc=ldap,dc=example,dc=co,dc=jp \
-a authenticationMethod=simple \
-a defaultSearchScope=sub
192.168.114.16
このあと,[[/etc/pam.conf を調整する.>#pam_conf]]
*構成成功例(ldaps: の場合) [#o81b7813]
(*)ldaps で認証を行う場合は,
きちんと CA やら証明書を作成しておくこと.
特に,LDAP サーバのキーを作成する場合に,
CN 属性にはサーバの FQDN を設定し,
クライアント側から見える FQDN と一致させておかないと
接続ができないので注意.
([[OpenSSL 独自認証局の構築>フリーソフト/OpenSSL 独自認証局(CA)の構築]] 参照)
また,なぜか ldap:///(port 389) と
ldaps:///(port 636)の両方を接続可能にしておかないと
Soalris はダメみたい.
**1)/var/ldap に証明書データベースを作成する. [#s86166b8]
証明書は,独自 CA の証明書を Mozilla などでインポートして作成する.
/var/ldap/cert8.db /var/ldap/key3.db /var/ldap/secmod.db
また,コマンドラインでは以下のような感じで行う.
# cd /var/tmp
独自 CA の証明書を持ってくる
# scp CAServer:/etc/ssl/demoCA/cacert.pem .
証明書データベースの作成
# echo password > wtpass
# /usr/sfw/bin/certutil -N -d /var/tmp -f wtpass
# ls
cacert.pem cert8.db key3.db secmod.db wtpass
証明書データベースに自己 CA の証明書を追加.
# /usr/sfw/bin/certutil -A -n "demoCA" -t "TCu,TCu,TCuw" \
-d /var/tmp -a -i /var/tmp/cacert.pem -f wtpass
# ls
cacert.pem cert8.db key3.db secmod.db wtpass
できたデータベースを,/var/ldap に置く.
# cp *.db /var/ldap
# chmod 444 /var/ldap/*.db
# rm wtpass
**2)LDAP クライアントとして設定 [#q1d8f62f]
# ldapclient manual \
-a domainName=ldap.example.co.jp \
-a credentialLevel=proxy \
-a proxyDN=cn=admin,dc=ldap,dc=example,dc=co,dc=jp \
-a defaultSearchBase=dc=ldap,dc=example,dc=co,dc=jp \
-a certificatePath=/var/ldap \
-a authenticationMethod=tls:simple \
-a defaultSearchScope=sub \
192.168.114.16
このあと,[[/etc/pam.conf を調整する.>#pam_conf]]
*復元例(LDAP クライアントから外す) [#b9151afb]
# /usr/sbin/ldapclient uninit
システムは正常に復元されました
*動作確認 [#c37da83f]
LDAP に接続できているか確認
# ldapclient list
NS_LDAP_FILE_VERSION= 2.0
NS_LDAP_BINDDN= cn=admin,dc=ldap,dc=example,dc=co,dc=jp
NS_LDAP_BINDPASSWD= {NS1}89eb23e8e845bce5ee
NS_LDAP_SERVERS= 192.168.114.16
NS_LDAP_SEARCH_BASEDN= dc=ldap,dc=example,dc=co,dc=jp
NS_LDAP_AUTH= simple
NS_LDAP_SEARCH_SCOPE= sub
NS_LDAP_CACHETTL= 0
NS_LDAP_CREDENTIAL_LEVEL= proxy
NS_LDAP_HOST_CERTPATH= /var/ldap
# ldaplist
dn: dc=ldap,dc=example,dc=co,dc=jp
dn: cn=admin,dc=ldap,dc=example,dc=co,dc=jp
dn: ou=People,dc=ldap,dc=example,dc=co,dc=jp
dn: uid=soka,ou=People,dc=ldap,dc=example,dc=co,dc=jp
dn: ou=Group,dc=ldap,dc=example,dc=co,dc=jp
dn: cn=nonstop,ou=Group,dc=ldap,dc=example,dc=co,dc=jp
dn: uid=marron,ou=People,dc=ldap,dc=example,dc=co,dc=jp
dn: uid=tehe,ou=People,dc=ldap,dc=example,dc=co,dc=jp
# /usr/lib/ldap/ldap_cachemgr -g
cachemgr 構成:
サーバーデバッグレベル 0
サーバーログファイル "/var/ldap/cachemgr.log"
ldapcachemgr の呼び出し回数 107
cachemgr キャッシュデータの統計情報:
構成リフレッシュ情報:
リフレッシュなしに構成されました。
サーバーの情報:
前回のリフレッシュ時刻: 2005/11/15 13:18:07
次のリフレッシュ時刻: 2005/11/15 13:28:07
サーバー: 192.168.114.16、状態: 動作中
キャッシュデータの情報:
最大キャッシュエントリ: 256
キャッシュエントリの数: 0
# getent passwd
//----------------------------------------------------
*&aname(pam_conf){pam.conf の調整}; [#q21091b8]
# diff -c pam.conf.org pam.conf
*** pam.conf.org 2005年 11月 11日 (金)
--- pam.conf 2005年 11月 15日 (火)
***************
*** 17,27 ****
#
# 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 required pam_dial_auth.so.1
#
# rlogin service (explicit because of pam_rhost_auth)
#
--- 17,29 ----
#
# login service (explicit because of pam_dial_auth)
#
! login auth required pam_authtok_get.so.1
login auth required pam_dhkeys.so.1
login auth required pam_unix_cred.so.1
login auth required pam_dial_auth.so.1
+ login auth sufficient pam_unix_auth.so.1
+ login auth required pam_ldap.so.1 try_first_pass
+
#
# rlogin service (explicit because of pam_rhost_auth)
#
***************
*** 66,79 ****
# 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
#
# passwd command (explicit because of a different authentication module)
#
! passwd auth required pam_passwd_auth.so.1
#
# cron service (explicit because of non-usage of pam_roles.so.1)
#
--- 68,83 ----
# Default definitions for Authentication management
# Used when service name is not explicitly mentioned for authentication
#
! other auth required pam_authtok_get.so.1
other auth required pam_dhkeys.so.1
other auth required pam_unix_cred.so.1
! other auth sufficient pam_unix_auth.so.1
! other auth required pam_ldap.so.1 try_first_pass
#
# passwd command (explicit because of a different authentication module)
#
! passwd auth sufficient pam_passwd_auth.so.1
! passwd auth required pam_ldap.so.1 try_first_pass
#
# cron service (explicit because of non-usage of pam_roles.so.1)
#
***************
*** 96,102 ****
other password required pam_dhkeys.so.1
other password requisite pam_authtok_get.so.1
other password requisite pam_authtok_check.so.1
! other password required pam_authtok_store.so.1
#
# Support for Kerberos V5 authentication and example configurations can
# be found in the pam_krb5(5) man page under the "EXAMPLES" section.
--- 100,107 ----
other password required pam_dhkeys.so.1
other password requisite pam_authtok_get.so.1
other password requisite pam_authtok_check.so.1
! other password sufficient pam_authtok_store.so.1
! other password required pam_ldap.so.1
#
# Support for Kerberos V5 authentication and example configurations can
# be found in the pam_krb5(5) man page under the "EXAMPLES" section.
//-------------------------------------------------------------------------
*GUI でのデータ閲覧 [#tb7da0be]
GQ を使えば,GUI にて LDAP のデータ操作ができる.
(Debian にはパッケージがある.要 GTK+)