FreeBSDでLDAPを使ってユーザ認証する

LDAPでユーザ認証/認可できるようにします。

前提条件

dn: cn=PAM,ou=groups,dc=next-hop,dc=net
objectClass: groupOfUniqueNames
cn: PAM
uniqueMember: uid=hiraga,ou=user,dc=next-hop,dc=net
description: PAM User

NSSの設定

必要なパッケージのインストール

# pkg install nss_ldap

/usr/local/etc/nss_ldap.conf

base           dc=next-hop,dc=net
uri            ldap://ldap1.next-hop.net/ ldap://ldap2.next-hop.net/
binddn         cn=ldapuser,dc=next-hop,dc=net
bindpw         secret
bind_policy    soft
pam_filter     objectclass=posixAccount
pam_groupdn    cn=PAM,ou=groups,dc=next-hop,dc=net
pam_min_uid    1001
pam_password   exop
nss_base_passwd ou=user,dc=next-hop,dc=net?one
nss_base_shadow ou=user,dc=next-hop,dc=net?one
nss_base_group  ou=group,dc=next-hop,dc=net?one
ssl            start_tls
tls_cacertfile /etc/cert/cert.pem
tls_cacertdir  /etc/cert
tls_cert       /usr/local/etc/cert/ldapclient1.next-hop.net.pem
tls_key        /usr/local/etc/cert/ldapclient1.next-hop.net.key

/etc/nsswitch.conf

NISの検索方法を踏襲します。

- group_compat: nis
- passwd_compat: nis
+ group_compat: ldap
+ passwd_compat: ldap

/etc/passwd

+:*::::0:0:::

/etc/group

+:*::

動作確認

ユーザが検索できればOKです。

% id hiraga
uid=XXXX(hiraga) gid=XXXX(YYYY) groups=XXXX(YYYY)

PAMの設定

必要なパッケージのインストール

# pkg install pam_ldap

/usr/local/etc/ldap.conf

# ln -s /usr/local/etc/nss_ldap.conf /usr/local/etc/ldap.conf

/etc/pam.d/sshd

+ auth            sufficient      pam_ldap.so      no_warn try_first_pass
+ account         required        pam_ldap.so

動作確認

SSHでリモートログインできればOKです。

% ssh SERVER1

参考