環境
▼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 ・ ・ ・ #uri ldap://127.0.0.1/ uri ldap://192.168.**.**/ 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ログインするとディレクトリが作成されます。