家庭内でのLDAP認証環境構築

UNIX

家のLANには到底必要のないようなサーバーもなんとなく趣味で導入してしまうのはなんでなのでしょうか。数人しかユーザーが居ないしクライアントの数も限られているのに家ではLDAPが動いてUNIX系のOSには認証で使っています。一応参考までに設定について説明しておきます。

認証にLDAPを使う

一般的にLDAPとはどういったものかはGoogleで検索すれば簡単に説明を読むことができます。でもLDAP自体はあまりにも何でもできるので概念を理解しても実際に何ができるのか具体的にはわからなくなりますが、目的を認証に限るとシンプルになります。

passwdとgroupの代わりがあれば良い

認証はLDAPが無くてもできているわけで、基本的には/etc/passwdと/etc/groupがあれば認証できてしまいます。昔NISを使って統合管理していましたがあれはpasswdとかgroupとかhostsとかの行を共有しているようなものですね。サーバーが必要な情報を認証システム(クライアント側)に渡せば良いわけです。その情報を渡すのがLDAPだとLDAP認証になります。

posixAccountとposixGroupを格納しておけば良い

UNIX系の認証にはposixAccountというクラスと、posixGroupというクラスが引ければ認証に必要な情報は足ります。便宜上パスワードは保護されないといけないのでshadowAccountとかは必要になりますが、passwdとshadowの関係と同じようなものです。

OpenLDAPの設定

LDAPサーバーはOpenLDAPの一択だと思います。OpenLDAPの設定もGoogleで検索するとたくさん出てきます。その中でもServer Worldがわかりやすいし、色々なディストリビューションでまとまっています。これをベースにして設定すると良いと思います。

やることは必要なものをインストールして、管理者を作って、トップを定義してくらいはインストーラが面倒を見てくれたりもしますが、一番肝心なことはposixAccountとposixGroupを足していく作業です。といってもこの足すのがldifファイルを作って流し込んだりちょっと面倒だったりします。

PAMにつなげる

LDAPサーバーは情報を出すだけなので、クライアントとなる認証システムにつなげる必要があるのですが、PAMがあるので簡単です。

LDAPクライアントをインストール

PAMにつなげるためのLDAPクライアントをインストールしないといけませんが、これもServer Worldが参考になります。

ただデフォルトでldapiとか使っていたりして繋がらなかったり、そのままでは動かないこともあるので、そういったときは/var/log/auth.logとかのログを見ながら問題箇所を突き止めてください。

やはり趣味

ここまで来るともうLDAP認証環境ができていると思います。結構とっつきにくいし設定が面倒だし、ユーザーを追加するのもシンプルではないので誰にも勧められるようなものではないです。ただ統合認証環境を構築するとなるとNISは古臭いのでやはりLDAPしか残らなかったりします。

家庭内LDAP認証は作業が面倒な割に家庭内ネットワークのような極小規模では効果は薄く、動かす楽しみを求めながら苦労も楽しむ趣味の世界と言えると思います。

コメント