Back to page

− Links

 Print 

Backup diff of Gentoo Linuxな生活​/Linuxログイン認証 (No. 1) :: Nest Of Hawk

Backup diff of xpwiki:Gentoo Linuxな生活/Linuxログイン認証(No. 1)

  Next »[4]
1: 2011-01-07 (Fri) 02:21:04 maruo[5] source[6]
Line 1: Line 1:
 +*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
 +ホームディレクトリの大元を持っているサーバなどで追加しておくと便利かもね!
  Next »[4]