CentOS-6.xでのLDAP認証環境の構築 [CentOS]
今回の手順は、下記の方針で作成したものである。
・取り敢えず使用できる環境を構築するための手順である(改善の余地がある)。
・LDAP サーバー、LDAP クライアントは同じノード上に構築する。
・OS は CentOS 6.4 を使用する。
1. パッケージのインストール
# yum install openldap-servers openldap-clients
2. LDAP 管理者のパスワードの作成
# slappasswd (パスワードの入力を求められる。) (実行例) # slappasswd New password: secret … 実際にはパスワードは表示されない Re-enter new password: secret … 実際にはパスワードは表示されない {SSHA}O9i1P6yxbfMqm14xjrA00oGhqgNNvwFn … 暗号化パスワードが出力される
標準出力された暗号化パスワードをメモする。
(今回は、パスワードにはすべてこの値を使用する。)
3. LDAP サーバーの設定
(1) db の設定
# cd /var/lib/ldap # cp -p /usr/share/openldap-servers/DB_CONFIG.example DB_CONFIG
(2) /etc/openldap/slapd.d の初期化
# cd /etc/openldap # cp -pR slapd.d slapd.d.org # rm -fr slapd.d/*
(3) /etc/openldap/slapd.conf の作成
# cp -p /usr/share/openldap-servers/slapd.conf.obsolete \ /etc/openldap/slapd.conf /etc/openldap/slapd.conf の編集を行う。 ・suffix の変更 ("dc=example,dc=com") ・rootdn の変更 ("cn=Manager,dc=example,dc=com") ・rootpw の設定 (上記で作成した LDAP 管理者パスワードを設定) ・アクセス制御の追加 (なくても問題ないかも知れない) access to attrs=userPassword by self write by anonymous auth by * none access to * by self write by * read
(4) /etc/openldap/slapd.conf のチェック
# slaptest -u -f /etc/openldap/slapd.conf -v
(5) /etc/openldap/slapd.d の更新
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
(6) ファイルの所有者とグループの変更
# chown -R ldap:ldap /var/lib/ldap # chown -R ldap:ldap /etc/openldap/slapd.d
(7) LDAP サーバーの起動
# /etc/init.d/slapd start
(8) LDAP サーバーへのアクセスの確認
# ldapsearch -x -D "cn=Manager,dc=example,dc=com" -W (LDAP 管理者のパスワードの入力を求められる。)
(9) LDAP サーバーへのデータの登録
# cd /work # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./base.ldif # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./group.ldif # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./user.ldif (注1) *.ldif については、備考を参照。 (注2) 登録済みの特定のデータの削除(実行例) # ldapdelete -x -D "cn=Manager,dc=example,dc=com" -x -W \ 'uid=user01,ou=People,dc=example,dc=com' (注3) 登録済みの全データの削除 # rm -fr /var/lib/ldap/*
4. ユーザーのホームディレクトリの作成
# mkdir -p /work/home/user01 # mkdir -p /work/home/user02 # mkdir -p /work/home/user03
5. 認証機能として使用するための設定
(1) パッケージのインストール
# yum install pam_ldap # yum install nscd nss-pam-ldapd
(2) LDAP クライアントの設定
# authconfig-tui 【認証の設定】 ・[Use LDAP] にチェックを入れる。 ・[Use LDAP Authentication] にチェックを入れる。 ・[Next] を選択する。 【LDAP 設定】 ・[OK] を選択する。
CentOS 6.x では、設定ファイルの編集ではなく、上記のコマンドで設定する。
また、設定が終了すると、nslcd が起動される。
6. LDAP を使用した認証のテスト
% telnet localhost ... (user01, user02, user03 でログインできることを確認する。)
7. 備考
7-1. LDIF(LDAP Data Interchange Format) ファイル
(1) base.ldif
# cat base.ldif dn: dc=example,dc=com objectClass: dcObject objectClass: organization dc: example o: example dn: cn=Manager,dc=example,dc=com objectclass: organizationalRole cn: Manager dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=example,dc=com objectClass: organizationalUnit ou: Group
(2) group.ldif
# cat group.ldif dn: cn=member01,ou=group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: member01 gidNumber: 3001 dn: cn=member02,ou=group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: member02 gidNumber: 3002 dn: cn=member03,ou=group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: member03 gidNumber: 3003
(3) user.ldif
# cat user.ldif dn: uid=user01,ou=People,dc=example,dc=com uid: user01 cn: Test User 01 objectClass: account objectClass: posixAccount objectClass: top userPassword: {SSHA}O9i1P6yxbfMqm14xjrA00oGhqgNNvwFn … メモした値 loginShell: /bin/bash uidNumber: 5001 gidNumber: 3001 homeDirectory: /work/home/user01 dn: uid=user02,ou=People,dc=example,dc=com uid: user02 cn: Test User 02 objectClass: account objectClass: posixAccount objectClass: top userPassword: {SSHA}O9i1P6yxbfMqm14xjrA00oGhqgNNvwFn … メモした値 loginShell: /bin/bash uidNumber: 5002 gidNumber: 3002 homeDirectory: /work/home/user02 dn: uid=user03,ou=People,dc=example,dc=com uid: user03 cn: Test User 03 objectClass: account objectClass: posixAccount objectClass: top userPassword: {SSHA}O9i1P6yxbfMqm14xjrA00oGhqgNNvwFn … メモした値 loginShell: /bin/bash uidNumber: 5003 gidNumber: 3003 homeDirectory: /work/home/user03
7-2. /etc/openldap/slapd.conf
# diff slapd.conf /usr/share/openldap-servers/slapd.conf.obsolete 110,117d109 < access to attrs=userPassword < by self write < by anonymous auth < by * none < access to * < by self write < by * read < 123c115 < suffix "dc=example,dc=com" --- > suffix "dc=my-domain,dc=com" 125c117 < rootdn "cn=Manager,dc=example,dc=com" --- > rootdn "cn=Manager,dc=my-domain,dc=com" 131d122 < rootpw {SSHA}O9i1P6yxbfMqm14xjrA00oGhqgNNvwFn … メモした値
8. 追記
8-1. LDAP クライアントの追加
LDAP クライアントのみのノードでは、上記の手順のうち、下記のみを実施する。
(1) パッケージのインストール
openldap-clients のみをインストールする。
# yum install openldap-clients
(2) ホームディレクトリの作成
ホームディレクトリを共有しないため、localhost 上にホームディレクトリを作成する。
手順は、上記の [4. ユーザーのホームディレクトリの作成] と同じである。
(3) 認証機能として使用するための設定
手順は、上記の [5. 認証機能として使用するための設定] と同様である。
ただし、【LDAP設定】の Server のアドレスに LDAP サーバーのアドレスを設定する
コメント 0