Sun 関係覚え書き

Solaris10 を OpenLDAP クライアントにする. Solaris 10 x86 と Debian Linux にて実験.

ldapclient

Solaris を LDAP クライアントとして設定するには ldapclient コマンドを用いる.

# /usr/sbin/ldapclient
使用法: ldapclient [-v | -q] init | manual | mod | list | uninit [<args>]

サーバーまたはワークステーションを LDAP 名前空間のクライアントとして
設定します。
<args> は '-a attrName=attrVal' の形式を取ります。
マニュアルのページ:ldapclient(1M) に説明があります。

サーバ名に名前や FQDN を指定するときは, 名前解決がちゃんとできていることを確認すること.

構成成功例(ldap:/// を開放した場合)

# /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 を調整する.

構成成功例(ldaps: の場合)

(*)ldaps で認証を行う場合は, きちんと CA やら証明書を作成しておくこと. 特に,LDAP サーバのキーを作成する場合に, CN 属性にはサーバの FQDN を設定し, クライアント側から見える FQDN と一致させておかないと 接続ができないので注意. (OpenSSL 独自認証局の構築 参照)

また,なぜか ldap:///(port 389) と ldaps:///(port 636)の両方を接続可能にしておかないと Soalris はダメみたい.

1)/var/ldap に証明書データベースを作成する.

証明書は,独自 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 クライアントとして設定

# 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 を調整する.

復元例(LDAP クライアントから外す)

#  /usr/sbin/ldapclient uninit
システムは正常に復元されました

動作確認

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

pam.conf の調整

# 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 でのデータ閲覧

GQ を使えば,GUI にて LDAP のデータ操作ができる. (Debian にはパッケージがある.要 GTK+)


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-26 (水) 10:38:32