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+)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS