2014年4月23日水曜日

Linux SSHログイン認証をOpenLDAPで一元管理


■概要
複数のユーザが複数のサーバにSSHでログインして作業する場合、各サーバごとにID/Passwordを準備して認証することも可能ですが、アカウント管理としては煩雑になっていしまいます。
LDAPサーバを導入してユーザのID/Passwordを一元管理することで、どのサーバにも同じPasswrodでログインでき、また、どこかのサーバでPasswordを変更しても他のサーバにログインする場合は変更後のPasswordでログインできるようになります。

OS: CentOS 6.4 (64-bit)
openldap: 2.4.23
nss-pam-ldapd: 0.7.5



■LinuxOSへのSSHログイン認証を一元管理するまでの流れ

LDAPサーバに登録したユーザでのSSHログインおよびパスワード変更をアプリ系サーバで
実現するための流れを、下記のパートに分けて記載していきます。

(1) OpenLDAPのインストールと起動 (⇒詳細ページ)
openldap-servers、openldap-clients、nss-pam-ldapdのインストールおよびslapd.confの
設定と変更方法、slapdサービスの起動およびLDAPサーバへの接続確認方法についてまとめます。
特に、CentOS 6系からslapdの設定はslapd.dディレクトリ以下のファイルで定義される方式に変更と
なっているので注意が必要です。今回はDB_CONFIGを使用し、旧来のslapd.confに設定した内容を
slapd.dディレクトリに出力する手順をまとめます。

(2) LDIFによるLDAPサーバへのデータ登録 (⇒詳細ページ)
LinuxのOSユーザは最低1つのグループに属しているので、それを踏襲したDIT
(Directory Information Tree)をLDAP上に定義して、ユーザを登録する手順をまとめます。
LDAPサーバへデータを登録するにはLDIFファイルの利用が便利です。登録したユーザの削除や
パスワード変更、一連作業時によくあるエラーのメッセージもまとめてみます。

(3) LDAP登録ユーザでのSSHログイン認証とパスワード変更 (⇒詳細ページ)
アプリ系サーバにLDAP認証モジュール(nss-pam-ldapd)を追加してLDAPサーバに接続します。
idコマンドでLDAPに登録したユーザを確認できるものの、ログインすることができません。
認証クライアントモジュールをsssdからnslcdに変更にすることで、SSHログインできるようになります。
homeDirectoryもLDAPサーバからNFSマウントする方式にした方が一元管理レベル感が高まります。

ここまで出来ればLDAPユーザのパスワードをアプリ系サーバから変更したいところですが、またしても
エラーに出くわします。slapd.confをさらに修正することでLDAPサーバ上のパスワードも変更できる
ようなります。こちらの手順もまとめてみたいと思います。

(4) OpenLDAPのログ出力設定 (⇒詳細ページ)
OpenLDAPサーバはデフォルト設定ではログを出力しません。
slapd.confにログレベルを記述すると、シスログ経由でログを出力します。
ログレベルおよびログの出力先の設定についての手順を記載します。

概要へ戻る

0 件のコメント:

コメントを投稿