sssd + LDAP

必要なパッケージの導入

1
2
% sudo apt update
% sudo apt install sssd

/etc/sssd/sssd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[sssd]
domains = example.com
services = nss, pam, ssh
config_file_version = 2
debug_level=5

[nss]
filter_groups = root
filter_users = root

[pam]
offline_credentials_expiration = 365

[ssh]

[domain/example.com]
id_provider = ldap
ldap_tls_reqcert = demand
ldap_tls_cacert  = /etc/ldap/ca.crt
ldap_uri = ldaps://LDAP_SERVER01:PORT, ldaps://LDAP_SERVER02:PORT
ldap_search_base = dc=example,dc=com
auth_provider = ldap

cache_credentials = true
account_cache_expiration = 365
entry_cache_timeout = 3600

min_id = 10000
max_id = 99999
enumerate = True
override_shell = /bin/zsh

sssd.confのアクセス権限を600にしておかないと、 原因が非常に分かりづらいエラーがログに出力されてコケるので注意。

1
2
% chmod 600 /etc/sssd/sssd.conf
% systemctl enable --now sssd

/etc/ldap/ca.crt

LDAPサーバのCA証明書を置いておく。

1
2
3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

/etc/ssh/sshd_config

ssh用公開鍵をLDAPサーバから持ってくるようにする。 (当然ながらLDAPサーバ側のスキーマ設定が必要)

1
2
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody

LDAPユーザをローカルグループへ追加

/usr/share/pam-configs/my_groups

1
2
3
4
5
6
7
Name: activate /etc/security/group.conf
Default: yes

Priority: 900
Auth-Type: Primary
Auth:
        required                        pam_group.so use_first_pass
1
% sudo pam-auth-update

/etc/security/groups.conf

trainersグループに所属するユーザは、 0時から24時までdialoutとvideoグループに所属していることにする。

1
*;*;%trainers;Al0000-2400;dialout,video