CentOS 5 で OpenLDAP によって LDAP ユーザーサービスを提供する

May 6, 2009

CentOS 5.3 で環境構築にあたってのメモ。

openldap パッケージをインストール

# yum install openldap-clients
# yum install openldap-servers

/etc/openldap/slapd.conf の設定

suffix “dc=tilfin,dc=local”
rootdn “cn=Manager,dc=tilfin,dc=local”
rootpw secret

パスワード属性に対する制限を追記

########################################################
#
# Set Permisson “userPassword”
#
access to attrs=userPassword
by self write
by anonymous auth
by * none
#
# Set Permission except “userPassword”
#
access to *
by self write
by * read

DB パラメータの配置

# cd /var/lib/ldap
# cp /etc/openldap/DB_CONFIG.example DB_CONFIG
# chgrp ldap DB_CONFIG

認証方法の設定

# authconfig-tui

[LDAPを使用], [LDAP認証を使用] を選択し [Next]
Server URI ) ldap://127.0.0.1
Base DN ) dc=tilfin,dc=local

LDAP, NSCD サービスを自動起動するように設定する

# chkconfig ldap on
# chkconfig nscd on

LDAP, NSCD サービスを起動する

# service ldap start
# service nscd start

LDAP クライアントの設定

/etc/ldap.conf

base dc=tilfin,dc=local
uri ldap://127.0.0.1/

LDAP に情報を追加する

ドメイン, OU の People, Group を追加

dn: dc=tilfin,dc=local
dc: tilfin
objectClass: top
objectClass: domain
dn: ou=People,dc=tilfin,dc=local
objectClass: organizationalUnit
objectClass: top
ou: People
dn: ou=Group,dc=tilfin,dc=local
objectClass: organizationalUnit
objectClass: top
ou: Group

を base.ldif として保存し、下記を実行する。

# ldapadd -x -w secret -D “cn=Manager,dc=tilfin,dc=local” -f base.ldif
adding new entry “ou=People,dc=tilfin,dc=local”
adding new entry “ou=Group,dc=tilfin,dc=local”

グループ tilfin の追加

dn: cn=tilfin,ou=Group,dc=tilfin,dc=local
objectClass: posixGroup
objectClass: top
cn: tilfin
userPassword: {crypt}x
gidNumber: 1001

を tilfin.ldif として保存し、下記を実行する。

# ldapadd -x -w secret -D “cn=Manager,dc=tilfin,dc=local” -f tilfin.ldif
adding new entry “cn=tilfin,ou=Group,dc=tilfin,dc=local”

ユーザー tosshi の追加

dn: uid=tosshi,ou=People,dc=tilfin,dc=local
uid: tosshi
cn: Tosshi
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: {crypt}x
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/tosshi
gecos: Tosshi

を user.ldif として保存し、下記を実行する。

# ldapadd -x -w secret -D “cn=Manager,dc=tilfin,dc=local” -f user.ldif
adding new entry “uid=tosshi,ou=People,dc=tilfin,dc=local”

LDAP 情報の確認

$ ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# tilfin.local
dn: dc=tilfin,dc=local
dc: tilfin
objectClass: top
objectClass: domain
# People, tilfin.local
dn: ou=People,dc=tilfin,dc=local
objectClass: organizationalUnit
objectClass: top
ou: People
# Group, tilfin.local
dn: ou=Group,dc=tilfin,dc=local
objectClass: organizationalUnit
objectClass: top
ou: Group
# tilfin, Group, tilfin.local
dn: cn=tilfin,ou=Group,dc=tilfin,dc=local
objectClass: posixGroup
objectClass: top
cn: tilfin
gidNumber: 1001
# tosshi, People, tilfin.local
dn: uid=tosshi,ou=People,dc=tilfin,dc=local
uid: tosshi
cn: Tosshi
objectClass: account
objectClass: posixAccount
objectClass: top
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/tosshi
gecos: Tosshi
# search result
search: 2
result: 0 Success
# numResponses: 6
# numEntries: 5

root ユーザーのパスワードを暗号化する

ハッシュを生成する

# slappasswd -s rootpassword -h {SSHA}
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxx

/etc/openldap/slapd.conf を修正する

rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxx

tilfin freelance software engineer