ページへ戻る

+ Links

 印刷 

Gentoo Linuxな生活​/Linuxログイン認証 のソース :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/Linuxログイン認証のソース

« Prev  
*LDAPデータベースのアカウントで認証をする [#m0d08782]
LDAPのデータベースに、先ほどLinuxアカウントのデータをインポートしてやりました。こいつを用いてLinuxで認証を行います。
以下の設定を、全てのLinuxクライアントで実行しておくと、全マシンのユーザアカウント管理が一括でできるようになりますね。
また、passwdコマンドで、LDAPのパスワード(userPasswd)が変更されるようになります。
*準備 [#r4e089b9]
以下のパッケージをインストールしてやります。
 # emerge pam_ldap nss_ldap

*設定 [#b4a2c778]
**/etc/ldap.conf [#z413ff38]
/etc/openldap配下にも同じ名称のものがありますが、/etc配下のは、nss_ldap用の設定ファイルです。つまり、Linuxの認証基盤がLDAPサーバを参照する際の設定です。誤解なきように~…
 host  foo.example.com
 uri   ldap://foo.example.com
 base  dc=example,dc=com
 
 ldap_version 3
 ssl start_tls
 
 binddn cn=syncuser,dc=example,dc=com
 bindpw secret
 
 scope sub
 bind_policy soft
 
 pam_password exop
 
 pam_filter objectclass=posixAccount
 pam_login_attribute uid
 pam_member_attribute memberUid
 pam_check_host_attr yes
 
 nss_base_passwd ou=People,dc=example,dc=com
 nss_base_shadow ou=People,dc=example,dc=com
 nss_base_group  ou=Group,dc=example,dc=com
ファイル内にコメントがありますので、大体はわかると思いますが~、この程度を設定しておけばOK。ssl start_tlsを指定すると、暗号化してトランスポートレイヤが作成されます。uriにldaps://指定してもOK。

**nsswitch.conf [#f389539c]
認証用に使用する場合は、以下の部分を変更するだけで十分。
 passwd:    files ldap
 shadow:    files ldap
 group:     files ldap
passwdファイル、shadowファイル、groupファイルは、/etcにあるそれぞれのファイルを参照後、見つからない場合はldapを見に行く、という設定。nsswitch.conf見ると、他のファイルの設定もいっぱいあります。これらのファイルが、それぞれ参照設定が可能ってことね。hostsとかnetworkとかも、LDAPにいれておけば参照可能になったりします。う~ん、あまりメリットないけど…hostsぐらいですかねぇ?いれておくとメリットあるのって。
で、うまくLDAPから引けているかどうかを以下のコマンドで確認してみてください。
 # getent passwd
 # getent shadow
 # getent group

これで、LDAPに登録されているユーザやグループが表示されればOK。また、passwdファイルにもLDAPにも同じユーザが登録されている場合は、2つエントリが表示されるとOKになります(passwdファイルのエントリと、LDAP側のエントリの2個)

**PAM [#a5c65c93]
この設定によって、本格的にLinuxの認証基盤がLDAPを参照しに行きます。ログインできなくなったりするので、rootアカウントのコンソールを一つ残しておいて、うまくユーザ認証が通るようになるまで残しておくのが吉。

さて、/etc/pam.d/system-authを以下の用に変更します。もしも駄目だった時用に、元々のsystem-authファイルはバックアップしておいたほうが吉です。

 auth            required        pam_env.so
 auth            sufficient      pam_unix.so try_first_pass likeauth nullok
 auth            sufficient      pam_ldap.so use_first_pass
 auth            required        pam_deny.so
 
 account         sufficient      pam_ldap.so
 account         required        pam_unix.so
 
 password        required        pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
 password        sufficient      pam_unix.so try_first_pass use_authtok nullok sha512 shadow
 password        sufficient      pam_ldap.so use_authtok use_first_pass
 password        required        pam_deny.so
 
 session         required        pam_limits.so
 session         required        pam_env.so
 session         required        pam_unix.so
 session         optional        pam_ldap.so

さて、どうでしょう。ログインできるようになりましたか~ね?もしもうまく行かない場合は以下を疑ってみると良い…
:パスワード認証されない|system-authがまずい。見なおしてみて
:コマンドプロンプトにユーザIDが表示されない|/etc/ldap.confの設定がまずい。情報がうまく引けてない可能性大。
:やたらコマンド応答が遅くなったりする|/etc/ldap.confの設定がまずい。情報がうまく引けてない可能性大。

***便利な追加設定 [#xd56b92e]
先程のsystem-authに、以下のような設定を追加すると、初回ログイン時にホームディレクトリがない場合、自動作成してくれたりします。
 session         required        pam_mkhomedir.so skel=/etc/skel umask=0022
ホームディレクトリの大元を持っているサーバなどで追加しておくと便利かもね!

« Prev