ldapでsshログインできるようにする

ldapの構築メモです。

■やりたいこと
ldapサーバを立ててユーザを作成し、
sshでログインできるようにする。

■環境
OS:Cent6.7
openldap:openldap-2.4.40-5.el6.x86_64


参考にしたサイト
サーバ:

https://genchan.net/server/1670
http://www.unix-power.net/centos7/openldap.html

クライアント:
namihira.hatenablog.com






slappasswd<適当なパスワード>

ldapサーバ<適当なパスワード>

ldifファイル保存場所
/etc/openldap/ldap_data
ドメイン設定

database bdb
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"

■サーバ編
ldapサーバ設定

#rootユーザで操作

Configuration Backendで管理しない場合、以下をやっておくといいかも

vi /etc/sysconfig/slapd
SLAPD_OPTIONS="-f /etc/openldap/slapd.conf"

設定ファイルのテンプレートをコピー

cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf

管理パスワードを設定、暗号化された部分をコピー

slappasswd -s <パスワード>
{SSHA}G0mrY8fyCKqEqHlLerSIf2CPyKiipMXI3

データベースファイルのテンプレートをコピー

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

設定ファイルの変換実施

slaptest -u -f /etc/openldap/slapd.conf -v

所有者の変更

chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/slapd.d

slapdの起動

service slapd start
slapd を起動中: [ OK ]

■クライアント編
#rootユーザにて実施

ldapのクライアントが入っているか確認する。無い場合はいれておく

# rpm -qa |grep openldap
openldap-2.4.40-5.el6.x86_64
openldap-clients-2.4.40-5.el6.x86_64
compat-openldap-2.3.43-2.el6.x86_64
openldap-devel-2.4.40-5.el6.x86_64
openldap-servers-2.4.40-5.el6.x86_64

以下のコマンドを実施、認証関係の設定を実施

# authconfig-tui

必要な項目を[スペースキー]を使って[*]を入れていく
ldapサーバのIPアドレスを入力、ベースDNにドメイン名と入れる(192.168.1.xx/dc=my-domain,dc=comと設定)

pam関連、nsswitchの設定ファイルをいじる
/etc/pam.d/system-authを編集、「sss」部分を「ldap」に。

#%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 requisite pam_succeed_if.so uid >= 500 quiet
#auth sufficient pam_sss.so use_first_pass
> auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
#account [default=bad success=ok user_unknown=ignore] pam_sss.so
> account [default=bad success=ok user_unknown=ignore] pam_ldap.so
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_sss.so 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_sss.so
> session optional pam_ldap.so

同じようにpassword-auth-acも編集、いじる箇所は上記と同じ

/etc/nsswitch.confも編集「sss」を「ldap」へ
nslscdサービスを起動
自動起動設定も設定

# service nslcd start
Starting nslcd: [ OK ]
# chkconfig nslcd on

ログインできるか確認

# ssh user@192.168.1.xx
Could not chdir to home directory /home/user: No such file or directory
-bash-4.1$ hostname
-bash-4.1$ whoami

→一応成功

homeディレクトリが無いので、ログインした時に作成する設定を入れる
system-auth、password-authを修正
ファイル末尾に以下を追加

session optional pam_oddjob_mkhomedir.so skel=/etc/skel umask=022

oddjobdサービスを起動

# service oddjobd start
Starting oddjobd: [ OK ]

一通りはこれで完了。