LDAP設定まとめ
設定の流れはこちら。https://help.ubuntu.com/community/OpenLDAPServer
インストール
LDAPサーバ
slapdのインストールの前に、/etc/hostsの
127.0.1.1 hostname.local.domain hostname
部分を、dc=local,dc=domain
と対応するように書きかえて再起動。これはインストールが終わったあとに元に戻してもよい。
rootDNがインストール時に自動的に作成される。rootDNはslapcatで確認できる。
sudo apt-get install slapd ldap-utils
LDAPクライアント
sudo apt install -y libnss-ldapd ldap-auth-config ldap-auth-client sudo auth-client-config -t nss -p lac_ldap sudo pam-auth-update
設定を聞かれるので、適当に答える。 例えば
ldap://192.168.1.1/ dc=local,dc=domain 1 yes no cn=admin,dc=local,dc=domain ldappassword
設定に失敗した場合は、
sudo dpkg-reconfigure ldap-auth-config
とすればやり直すことができる。そして、
sudo auth-client-config -t nss -p lac_ldap
と、ただコマンドをうつ(おまじない)。次に、
sudo pam-auth-update
でデフォルトのまま(全部選ぶ)OKする。動作確認は
% ldapsearch -x -LLL -b dc=local,dc=domain -h 192.168.1.1
Ubuntu 18.04ではlibnss-ldapが原因でログインが進まなかった。この場合代わりにlabnss-ldapdを使う。 https://askubuntu.com/questions/797896/16-04-server-enabling-ldap-authentication-causes-systemd-logind-to-fail
認証がうまくいかないとき
LDAPアカウントとローカルマシンのUNIXアカウントなど、アカウントが衝突するときは、/etc/nsswitch.confにしたがって、優先順位が決まる。前に書いてある方が優先される。次の例の場合は、LDAP > ロカールファイル。
# pre_auth-client-config # passwd: compat systemd ldap passwd: ldap files # pre_auth-client-config # group: compat systemd ldap group: ldap files # pre_auth-client-config # shadow: compat ldap shadow: ldap files
これでもうまくいかない時は、uderdelでUNIXアカウントを消す。
passwdコマンドでのpasswordの変更
passwdコマンドを使うには、/etc/pam.d/common-password
の編集が必要。 use_authtokを消すと良い。
設定など
状況確認。
% ldapsearch -x -LLL -H ldap:/// -b dc=local,dc=domain dn dn: dc=local,dc=domain dn: cn=admin,dc=local,dc=domain
ユーザとグループを管理するためのpeopleとgroupsノードを作る。
dn: ou=people,dc=local,dc=domain objectClass: organizationalUnit ou: people dn: ou=groups,dc=local,dc=domain objectClass: organizationalUnit ou: groups
ldapsearch
ldapsearch -x -D "cn=admin,dc=local,dc=domain" -b "dc=local,dc=domain" "*" -w "<ldappassword>"