nsscache を使用した Linux での Foxpass キャッシュ

すべてのユーザデータとsshキーをローカルにキャッシュするためのnsscacheの設定方法について説明します。パスワードは引き継がれないので、パスワードなしのsudoを設定してください。

 
 
1. nsscache 用の LDAP バインダー ユーザーをセットアップします。

このページに移動し、[LDAP バインダーの追加] をクリックします。ユーザー名 nsscache を入力し、生成されたパスワードをメモします。

 
 
2. apt-get をアップデートする
Text
sudo apt-get update
 
 
3. libnss-cache をインストールします

その他、必要なものがいくつかあります

Text
sudo apt-get install -y libnss-cache wget unzip
 
 
4. 古い nsscache を削除する

libnss-cache には nsscache が含まれますが、古すぎて役に立ちません。削除しましょう。

Text
sudo apt-get remove -y nsscache
 
 
5. 更新された nsscache をダウンロードしてインストールします

github から最新のものを取得し、解凍してインストールしましょう。

Text
wget https://github.com/google/nsscache/archive/master.zip
unzip master.zip
cd nsscache-master
sudo python setup.py install
sudo cp examples/authorized-keys-command.py /usr/sbin
 
 
6.nsscache を構成する
Text
sudo chmod 0600 /etc/nsscache.conf
sudo vi /etc/nsscache.conf

 

nsscache.conf の内容を以下に設定します。dc=EXAMPLE,dc=COM を独自のベース DN に置き換えてください。

Text
[DEFAULT]
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)
 
 
7.nsswitch.conf を設定します

/etc/nsswitch.conf の次の行を編集します (残りはそのままにしておきます)。

Text

passwd:         cache compat
group:          cache compat
shadow:         cache compat

 
 
8.sshd の構成

/etc/ssh/sshd_config を編集して、次の行を追加します

Text
AuthorizedKeysCommand /usr/sbin/authorized-keys-command.py
#AuthorizedKeysCommandUser nobody

次に、sshdを再起動します

Text
sudo service ssh restart
 
 
9.手動で実行する

手動で実行して、すべてが機能することを確認します。何か問題があれば文句を言います。

Text
sudo /usr/local/bin/nsscache update --full
 
 
10. cron を設定する
Text
sudo vi /etc/cron.d/nsscache

内容を次のように設定します。

Text

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))'`

  
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています