環境
▼LDAPサーバ
centos 6.4
openldap-2.4.23-32
▼LDAPクライアント
centos 6.4
LDAPサーバ側作業
データイメージ
example.com
|_ cm=Manager
|_ ou=a
|_ ou=a_1
|_ cn=test
|_ uid=test
|
ディレクトリを作成
vi /etc/openldap/base.ldif
dn: ou=a,dc=example,dc=com
objectClass: organizationalUnit
ou: a
dn: ou=a_1,ou=a,dc=example,dc=com
objectClass: organizationalUnit
ou: a_1
|
適応
ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f base.ldif
|
グループを作成
vi /etc/openldap/group.ldif
dn: cn=test,ou=a_1,ou=a,dc=example,dc=com
objectClass: top
objectClass: posixGroup
cn: test
gidNumber: 501
|
適応
ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f group.ldif
|
ユーザを作成
vi /etc/openldap/user.ldif
dn: uid=test,ou=a_1,ou=a,dc=example,dc=com
uid: test
cn: test
objectClass: account
objectClass: posixAccount
objectClass: top
userPassword: test
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
homeDirectory: /home/test
|
適応
ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f user.ldif
|
LDAPクライアント側作業
LDAPで名前解決(認証)ができるよう設定を行う。
モジュールをインストール
yum install nss-pam-ldapd
|
nslcdの設定
これはLDAPに問い合わせを行うデーモンプログラムです。
vi /etc/nslcd.conf
・
・
・
base dc=example,dc=com
base group ou=a_1,ou=a,dc=example,dc=com
base passwd ou=a_1,ou=a,dc=example,dc=com
base shadow ou=a_1,ou=a,dc=example,dc=com
|
起動
chkconfig nslcd on
/etc/init.d/nslcd start
|
NSS(nsswitch.conf)がLDAPを利用するように設定
vi /etc/nsswitch.conf
・
・
・
passwd: files ldap ← ldapを追加
shadow: files ldap ←
group: files ldap ←
・
・
・
|
PAMの設定
PAM(Pluggable Authentication Module)とは、個々のサービスに必要な認証機能を提供してくれます。
/etc/pam_ldap.conf 設定
vi /etc/pam_ldap.conf
・
・
・
#host 127.0.0.1
host 192.168.**.**
base dc=example,dc=com
・
・
・
|
/etc/pam.d/system-auth 設定
vi /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth sufficient pam_ldap.so use_first_pass ←追加
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so ←追加
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok ←追加
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so ←追加
session optional pam_mkhomedir.so skel=/etc/skel umask=077
|
ssh 設定
/etc/pam.d/password-auth 設定
vi /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth sufficient pam_ldap.so use_first_pass ←追加
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account [default=bad success=ok user_unknown=ignore authinfo_unavail=ignore] pam_ldap.so ←追加
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok ←追加
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so ←追加
session sufficient pam_mkhomedir.so skel=/etc/skel/ umask=0022
|
これでssh ログインできるようになります。
sshログインするとディレクトリが作成されます。