すべてのユーザデータとsshキーをローカルにキャッシュするためのnsscacheの設定方法について説明します。パスワードは引き継がれないので、パスワードなしのsudoを設定してください。
このページに移動し、[LDAP バインダーの追加] をクリックします。ユーザー名 nsscache を入力し、生成されたパスワードをメモします。
その他、必要なものがいくつかあります
libnss-cache には nsscache が含まれますが、古すぎて役に立ちません。削除しましょう。
github から最新のものを取得し、解凍してインストールしましょう。
unzip master.zip
cd nsscache-master
sudo python setup.py install
sudo cp examples/authorized-keys-command.py /usr/sbin
sudo vi /etc/nsscache.conf
nsscache.conf の内容を以下に設定します。dc=EXAMPLE,dc=COM を独自のベース DN に置き換えてください。
source = ldap
cache = files
maps = passwd, group, shadow, sshkey
timestamp_dir = /var/lib/nsscache
ldap_uri = ldaps://ldap.foxpass.com
ldap_base = ou=people,dc=EXAMPLE,dc=COM
ldap_filter = (objectclass=posixAccount)
ldap_bind_dn = "cn=nsscache,dc=EXAMPLE,dc=COM"
ldap_bind_password = "PASSWORD"
ldap_tls_require_cert = 'demand'
ldap_tls_cacertfile = '/etc/ssl/certs/ca-certificates.crt'
files_dir = /etc
files_cache_filename_suffix = cache
[group]
ldap_base = ou=groups,dc=EXAMPLE,dc=COM
ldap_filter = (objectclass=posixGroup)
/etc/nsswitch.conf の次の行を編集します (残りはそのままにしておきます)。
passwd: cache compat
group: cache compat
shadow: cache compat
/etc/ssh/sshd_config を編集して、次の行を追加します
#AuthorizedKeysCommandUser nobody
次に、sshdを再起動します
手動で実行して、すべてが機能することを確認します。何か問題があれば文句を言います。
内容を次のように設定します。
SHELL=/bin/sh
MAILTO=root
# update the cache 15 minutely
*/15 * * * * root /usr/local/bin/nsscache update --sleep `perl -e 'print int(rand(900))'`
# perform a full update once a day.
0 8 * * * root /usr/local/bin/nsscache update --full --sleep `perl -e 'print int(rand(7200))'`