- ldap(slapd)を停止する。
[root@hoge ~]# service ldap stop
slapd を停止中: [ OK ]
[root@hoge ~]#
(レプリケーションの場合は、スレーブを先に停止させる。)
- slapd.conf等の必要編集を行う。slaptestも実施しておく
- ldapデータベースを物理的に削除する。
/var/lib/ldap フォルダの中の DB_CONFIG 以外を削除する。
※こちらの設定では、/var/lib/ldap にldapデータベースが登録される設定のため。
/etc/openldap/slapd.conf で指定
[root@hoge ldap]# ls -il
合計 1208
131133 -rw-r----- 1 root root 921 1月 24 08:14 DB_CONFIG
131116 -rw------- 1 ldap ldap 24576 3月 7 10:21 __db.001
131117 -rw------- 1 ldap ldap 278528 3月 7 10:21 __db.002
131118 -rw------- 1 ldap ldap 270336 3月 7 10:21 __db.003
131119 -rw------- 1 ldap ldap 98304 3月 7 10:21 __db.004
131120 -rw------- 1 ldap ldap 352256 3月 7 10:21 __db.005
131121 -rw------- 1 ldap ldap 24576 3月 7 10:21 __db.006
131082 -rw-r--r-- 1 ldap ldap 4096 3月 7 10:21 alock
131126 -rw------- 1 ldap ldap 8192 1月 28 20:48 cn.bdb
131124 -rw------- 1 ldap ldap 8192 1月 28 20:48 dn2id.bdb
131132 -rw------- 1 ldap ldap 8192 1月 28 20:48 gidNumber.bdb
131123 -rw------- 1 ldap ldap 32768 1月 31 20:54 id2entry.bdb
131122 -rw------- 1 ldap ldap 10485760 3月 7 10:21 log.0000000001
131130 -rw------- 1 ldap ldap 8192 1月 22 20:00 loginShell.bdb
131129 -rw------- 1 ldap ldap 8192 1月 28 20:48 memberUid.bdb
131125 -rw------- 1 ldap ldap 8192 1月 28 20:48 objectClass.bdb
131127 -rw------- 1 ldap ldap 8192 1月 24 21:44 ou.bdb
131128 -rw------- 1 ldap ldap 8192 1月 22 20:00 uid.bdb
131131 -rw------- 1 ldap ldap 8192 1月 22 20:00 uidNumber.bdb
削除後の内容
[root@hoge ldap]# ls -il
合計 8
131133 -rw-r----- 1 root root 921 1月 24 08:14 DB_CONFIG
[root@hoge ldap]#
- ldap(slapd)を起動する。
[root@hoge ~]# service ldap start
slapd の設定ファイルをチェック中: config file testing succeeded
[ OK ]
slapd を起動中: [ OK ]
[root@hoge ~]#
- 初期情報を登録
■基本データ(base.ldif)
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: example
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group
dn: ou=Hosts,dc=example,dc=com
objectClass: organizationalUnit
ou: Hosts
ldapaddコマンドでLDIFファイルの内容を登録します。
# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f base.ldif
Enter LDAP Password:
adding new entry "dc=horisawa,dc=info"
adding new entry "cn=Manager,dc=horisawa,dc=info"
adding new entry "ou=People,dc=horisawa,dc=info"
adding new entry "ou=Group,dc=horisawa,dc=info"
adding new entry "ou=Hosts,dc=horisawa,dc=info"
■ユーザ/グループの登録(既存unixアカウントをそのまま移行する)
- /etc/passwdのアカウントをLDAPへ登録する。
/etc/passwdから一般ユーザのみを抽出するようuidが500番台を抽出。
[root@hoge openldap]# grep :5[0-9][0-9] /etc/passwd > users-list.txt
/migrate_passwd.pl を利用してLDIFファイルを作成。
[root@hoge openldap]# /usr/share/openldap/migration/migrate_passwd.pl users-list.txt > users.ldif
ldapaddコマンドでLDIFファイルの内容を登録します。
# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif
Enter LDAP Password:
adding new entry "uid=hoge01,ou=People,dc=example,dc=com"
adding new entry "uid=hoge02,ou=People,dc=example,dc=com"
- /etc/groupのグループをLDAPへ登録する
/etc/groupから一般グループのみを抽出するようgidが500番台を抽出。
[root@hoge openldap]# grep :5[0-9][0-9] /etc/group > groups-list.txt
/migrate_passwd.pl を利用してLDIFファイルを作成。
[root@hoge openldap]# /usr/share/openldap/migration/migrate_group.pl groups-list.txt > groups.ldif
ldapaddコマンドでLDIFファイルの内容を登録します。
# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif
Enter LDAP Password:
adding new entry "cn=hoge01,ou=Group,dc=example,dc=com"
adding new entry "cn=hoge02,ou=Group,dc=example,dc=com"
adding new entry "cn=hoge03,ou=Group,dc=example,dc=com"
adding new entry "cn=hoge04,ou=Group,dc=example,dc=com"
smbldap-toolsを利用して登録を行う。
基本データ(base.ldif)を登録した後に、smbldap-toolsを利用してユーザ・グループおよび管理者情報の登録を行う。
事前にsambaが正しく設定されているものとして下記にコマンドを実行する。
■基本データ(base.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f base.ldif
Enter LDAP Password:
adding new entry "dc=horisawa,dc=info"
adding new entry "cn=Manager,dc=example,dc=com"
adding new entry "ou=Users,dc=example,dc=com"
adding new entry "ou=Groups,dc=example,dc=com"
adding new entry "ou=Computers,dc=example,dc=com"
[root@hoge ldif]#
■グループ(groups.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f groups.ldif
■ユーザー(users.ldif)の登録
[root@hoge ldif]# ldapadd -x -D "cn=Manager,dc=horisawa,dc=info" -W -f users.ldif
■smbldap-toolsでデータを登録する。
[root@hoge ~]# smbldap-populate -a Administrator -b Guest
Populating LDAP directory for domain EXAMPLE (S-1-5-21-2725434548-1602857623-2035637331)
(using builtin directory structure)
entry dc=example,dc=com already exist.
entry ou=Users,dc=example,dc=com already exist.
entry ou=Groups,dc=example,dc=com already exist.
entry ou=Computers,dc=example,dc=com already exist.
adding new entry: ou=Idmap,dc=example,dc=com
adding new entry: uid=Administrator,ou=Users,dc=example,dc=com
adding new entry: uid=Guest,ou=Users,dc=example,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=example,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=example,dc=com
adding new entry: cn=Administrators,ou=Groups,dc=example,dc=com
adding new entry: cn=Account Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=example,dc=com
adding new entry: cn=Replicators,ou=Groups,dc=example,dc=com
adding new entry: sambaDomainName=example,dc=example,dc=com
Please provide a password for the domain Administrator:
Changing UNIX and samba passwords for Administrator
New password:
Retype new password:
[root@hoge ~]#
初期データ投入がうまくいったら、ドメイン管理者アカウント(Administrator)のパスワードを設定する。PDCマシン上でrootになり、以下を1度だけ実行すればよい。
[root@hoge ~]# smbldap-passwd Administrator
Changing UNIX and samba passwords for Administrator
New password:
Retype new password:
[root@hoge ~]#
一般ユーザーを追加する。
[root@hoge samba]# smbldap-passwd testuser
Changing UNIX password for testuser
New password:
Retype new password:
[root@hoge samba]#
SASL認証設定ファイル編集
smbldap-useraddで追加したユーザがSMTP-Authが行えるようにする
# vi /etc/sysconfig/saslauthd
MECH=shadow
↓
MECH=pam
確認事項およびエラー等の注意事項
ログを確認したら下記のようにエラーが発生していた。(/var/log/samba/log.smbd)
[2012/04/26 18:41:59.611756, 2] lib/smbldap.c:1018(smbldap_open_connection)
smbldap_open_connection: connection opened
[2012/04/26 18:41:59.611978, 0] passdb/secrets.c:350(fetch_ldap_pw)
fetch_ldap_pw: neither ldap secret retrieved!
[2012/04/26 18:41:59.612175, 0] lib/smbldap.c:1180(smbldap_connect_system)
ldap_connect_system: Failed to retrieve password from secrets.tdb
[2012/04/26 18:41:59.612359, 1] lib/smbldap.c:1409(another_ldap_try)
Connection to LDAP server failed for the 5 try!
[root@ora02 samba]#
というエラーが出されていました.secrets.tdb はそれぞれのローカルマシンで作成されるもので,そこに,LDAP のパスワードを登録しないと LDAP サーバにて認証が通りません.そこで,secrets.tdb に LDAP の管理者パスワードを登録する必要があります.次のコマンドを実行します.
[root@hoge ~]# smbpasswd -W
Setting stored password for "cn=Administrator,ou=Users,dc=example,dc=com" in secrets.tdb
New SMB password: (LDAPの管理用パスワードを入力)
Retype new SMB password: (LDAPの管理用パスワードをもう一度入力)
[root@hoge ~]#
今回の設定で関連するファイルは下記の通りです。
・/etc/openldap/slapd.conf (ldapの基本設定)
・/etc/openldap/ldif/base.ldif (作成した基本情報)
・/etc/samba/smb.conf (sambaの基本設定)
・/etc/smbldap-tools/smbldap.conf (変換を行うための基本情報が設定)
・/etc/smbldap-tools/smbldap_bind.conf (masterDNとmasterPwを設定)