7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LDAP環境を簡単にローカルへ構築する

Last updated at Posted at 2015-12-02

要件

  • Ubuntu13
  • ldapi:///dev01.hoge.local:389,dc=hoge,dc=local

インストール

$ apt-get install ldap-utils slapd ldapvi libnss-ldapd libpam-ldapd nscd

※LDAPAdministorator Passwordは「p0o9i8」
※libnss-ldap libpam-ldapという名のパッケージもあるがこちらは古いらしい。紛らわしい。

LDAP

  • DN表記(コマンドラインでオブジェクトを指定する際に利用する)

    • 識別名(DN)
      • CN=...で始まる。
      • 組織単位(OU)
      • 組織(O)
      • ドメイン(DC)
      • 国(C)
  • olcDatabase(DBの箱)

ルートスキーマの作成

  • 適当なディレクトリでldifファイルを作成

    base.ldif

dn:ou=People,dc=hoge,dc=local
objectClass: organizationalUnit
ou: People


- 作成したldifファイルを読み込み	

	```
$ ldapadd -x -D cn=admin,dc=hoge,dc=local -W -f base.ldif

  -x シンプルな認証
  -D LDAPにバインドするのに使用するDN。行う操作に必要な権限をもったDNを指定する必要がある。これ無しだとanonymousバインドになる。
  -W プロンプトでパスワードを要求
  -f ファイルを指定

  • 追加した内容を確認

$ ldapsearch -x -D cn=admin,dc=hoge,dc=local -W -LLL -b dc=hoge,dc=local dn
Enter LDAP Password:
dn: dc=hoge,dc=local
dn: cn=admin,dc=hoge,dc=local
dn: ou=People,dc=hoge,dc=local



# スキーマの追加
- 現状読み込まれているスキーマの確認

	```
$ ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
  • 必要なスキーマの追加

$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/openssh-lpk.ldif
$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif



# ユーザーの追加

- 適当なディレクトリでldifファイルを作成

	```a123456.ldif
dn: uid=a123456,ou=People,dc=hoge,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: ldapPublicKey
sn: hoge
cn: foo
uid: a123456
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/a123456
userPassword: {SSHA}9yfE3ENwK0oaC/zo4tFPnu3LpXTwAsnH
mail: hoge_foo@xxx.co.jp
loginShell: /bin/bash
dn 追加する識別名
objectClass 継承するオブジェクトクラスの指定
 - inetOrgPerson 組織に属する人間の属性[参考](http://docs.oracle.com/cd/E19225-01/821-0779/bzapc/index.html)
 - posixAccount POSIX抽象化の属性
 - shadowAccount(shadowPasswordの追加属性)
 - ldapPublicKey(公開鍵の追加属性)

sn (Sir Name:姓)
cn (Common Name:名)
uid (ユーザー名)
uidNumber (ユーザーID)
gidNumber (グループID)
homeDirectory (まんま)
userPassword (まんま)※slappasswordコマンドで生成
mail: (まんま)
loginShell: (まんま)
description: (まんま)
  • 作成したldifファイルの読み込み

$ ldapadd -x -D cn=admin,dc=hoge,dc=local -W -H ldapi:// -f a123456.lidf

	-H 対象ホスト  
 
- 追加したユーザーが存在するか確認

	```
	$ ldapsearch -x -D cn=admin,dc=hoge,dc=local -W -LLL -b dc=hoge,dc=local dn
	Enter LDAP Password:
	dn: dc=hoge,dc=local
	dn: cn=admin,dc=hoge,dc=local
	dn: ou=People,dc=hoge,dc=local
	dn: uid=a123456,ou=People,dc=hoge,dc=local
	```


# 設定 

```/etc/nslcd.conf
uid nslcd
gid nslcd
uri ldap://xxx.xxx.xxx.xxx
base ou=People,dc=hoge,dc=local
ldap_version 3
nss_initgroups_ignoreusers root
pam_authz_search (&(objectClass=posixAccount)(uid=$username))
/etc/ldap/ldap.conf
URI ldap://xxx.xxx.xxx.xxx
BASE ou=People,dc=hoge,dc=local
TIMELIMIT 120
TIMEOUT 120
NETWORK_TIMEOUT 120

起動

$ /etc/init.d/nscd restart
$ /etc/init.d/nslcd restart
$ /etc/init.d/slapd restart

参考

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?