しばいぬびより

しばいぬとかしばいぬとか技術とか

CentOS6+OpenLDAP2.4でADサーバ構築してみた

下記サイトにお世話になりました。
OpenLDAPの構築 | Blog on fuketch.net

OpenLDAPをCentOS6にインストール。

$ sudo yum install openldap-servers
(略)
インストール: openldap-servers.x86_64 0:2.4.40-16.el6
依存性関連をインストールしました: libtool-ltdl.x86_64 0:2.2.6-15.5.el6 portreserve.x86_64 0:0.0.4-11.el6
完了しました!
$ sudo yum install openldap-clients
(略)
インストール: openldap-clients.x86_64 0:2.4.40-16.el6
完了しました!

バッファキャッシュ設定(DB_CONFIG)ファイル作成。

$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

slapdのログを専用ファイルに出力するため、rsyslogの設定を変更する。

$ sudo vi /etc/rsyslog.conf
以下を末尾に追加する
# Log slapd local4.* /var/log/slapd.log
$ sudo service rsyslog restart Shutting down system logger: [ OK ]
Starting system logger: [ OK ]

OpenLDAP起動。

$ sudo service slapd start Starting slapd: [ OK ]

作業用ディレクトリを作成。

$ mkdir ./ldap_work

作業用ディレクトリ内にrootPW設定用のldifファイルを作成。

$ sudo vi ./ldap_work/add_rootPw.ldif
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: rootP@ssword

設定反映。

$ sudo ldapadd -Y EXTERNAL -H ldapi:// -f ./ldap_work/add_rootPw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

設定反映を確認。

$ sudo ldapsearch -x -LLL -D "cn=config" -W -b "cn=config" '(objectClass=*)'
Enter LDAP Password: rootP@ssword(表示されない)
dn: cn=config
objectClass: olcGlobal
cn: config
(略)
パスワードを間違えると以下のメッセージが出る。
ldap_bind: Invalid credentials (49)

DN設定ファイルを修正する。

$sudo vi ./ldap_work/change-domain.ldif
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none
dn: olcDatabase={2}bdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=example,dc=com
dn: olcDatabase={2}bdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=example,dc=com
dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcRootPW olcRootPW: managerP@ssword

設定反映。

$ sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./ldap_work/base.ldif
Enter LDAP Password: rootP@ssword(表示されない)
adding new entry "dc=example,dc=com"

adding new entry "cn=Manager,dc=example,dc=com"

adding new entry "ou=People,dc=example,dc=com"

adding new entry "ou=Group,dc=example,dc=com"

adding new entry "ou=Machines,dc=example,dc=com"

設定反映を確認。

$ sudo ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example Inc.

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group

dn: ou=Machines,dc=example,dc=com
objectClass: organizationalUnit
ou: Machines

グループ設定。

$ sudo vi ./ldap_work/GroupName.ldif
dn: cn=GroupName2,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: GroupName1
gidNumber: 20001
memberUid: testUser01
memberUid: testUser02

dn: cn=GroupName2,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: sub1
cn: GroupName2
gidNumber: 20002
memberUid: testUser03

設定反映。

$ sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./ldap_work/GroupName.ldif
Enter LDAP Password: managerP@ssword(表示されない)
adding new entry "cn=GroupName,ou=Group,dc=example,dc=com"

ユーザのパスワードを生成。

$ slappasswd
New password: (パスワードを入力。表示されない)
Re-enter new password: (パスワードを入力。表示されない)
{SSHA}hogehoge...←この文字列が生成されたパスワード

ユーザ設定。

$ sudo vi ./ldap_work/UserName.ldif
dn: uid=testUser01,ou=People,dc=example,dc=com
uid: testUser01
cn: ほげ太郎
objectClass: account
objectClass: posixAccount
userPassword: {SSHA}hogehoge...
loginShell: /bin/bash
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/testUser01

dn: uid=testUser02,ou=People,dc=example,dc=com
uid: testUser02
cn: ふが子
objectClass: account
objectClass: posixAccount
userPassword: {SSHA}fugafuga...
loginShell: /bin/bash
uidNumber: 10002
gidNumber: 10002
homeDirectory: /home/testUser02

dn: uid=testUser03,ou=People,dc=example,dc=com
uid: testUser03
cn: ピヨ乃助
objectClass: account
objectClass: posixAccount
userPassword: {SSHA}piyopiyo...
loginShell: /bin/bash
uidNumber: 10003
gidNumber: 10003
homeDirectory: /home/testUser03

設定反映。

$ sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./ldap_work/UserName.ldif
Enter LDAP Password: managerP@ssword(表示されない)
adding new entry "uid=testUser01,ou=People,dc=example,dc=com"

adding new entry "uid=testUser02,ou=People,dc=example,dc=com"

adding new entry "uid=testUser03,ou=People,dc=example,dc=com"

設定反映を確認。

$ ldapwhoami -x -D uid=testUser02,ou=People,dc=example,dc=com -H ldap://localhost/ -W
Enter LDAP Password: managerP@ssword(表示されない)
dn:uid=testUser02,ou=People,dc=example,dc=com