openldap ssh linuxuser連携

環境

▼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://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ログインするとディレクトリが作成されます。

このブログの人気の投稿

RAC環境でimpdpをパラレルで実行するとき

ctrl+s 操作が不能に

TrustedInstaller.exe メモリリーク