- - PR -
ldapを利用したsshでのログイン
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-27 13:04
LDAP 2.3.32 を Redhat4.0でテストしているのですが、リソースの関係上、サーバとクライアントは共存しています。目的として、ユーザがsshログインしている時に、/etc/passwdそしてLDAPという順番に認証とします。できるだけマニュアルに書かれる通りにシンプルな設定したのですが、今一うまくいきません。
以下は設定通りです。 1. slapd.conf を変更し、slapdをスタート。 -----------../slapd.conf---------------------------------------------------------------- include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema pidfile /usr/local/var/run/slapd.pid argsfile /usr/local/var/run/slapd.args access to attrs=userPassword by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none access to dn.base="" by * read access to * by dn="cn=Manager,dc=example,dc=com" write by * read database bdb suffix "dc=example,dc=com" rootdn "cn=Manager,dc=example,dc=com" rootpw secret directory /usr/local/var/openldap-data1 index objectClass ---------------------------------------------------------------------------------------------- 2. example.ldif を作成し、ldapaddを使ってユーザー登録します。 ----------example.ldif--------------------- dn: dc=example,dc=com objectclass: dcObject objectclass: organization o: Example Company dc: example #test user of developer dn: uid=user01,dc=example,dc=com objectClass: inetOrgPerson cn: testuser01 sn: developer uid: user01 mail: user01@example.com userPassword: pass01 ------------------------------------------------ 3. ldapsearch (ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)') を使用してユーザ登録できたのを確認します。 -------- return of ldapsearch----------------------------------- # extended LDIF # # LDAPv3 # base <dc=example,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # example.com dn: dc=example,dc=com objectClass: dcObject objectClass: organization o: Example Company dc: example # user01, example.com dn: uid=user01,dc=example,dc=com objectClass: inetOrgPerson cn: testuser01 sn: developer uid: user01 mail: user01@example.com -------------------------------------------------------------------------- 4. authconfig を実行し、LDAPを使う以下のオプションをチェックします。 ------- Use LDAP Use LDAP Authentication ------ 5. /etc/ldap.conf, /etc/nsswitch.conf, /etc/pam.d/system-auth 三つのファイルが変更されるのを確認します。内容は以下になります。 ----/etc/ldap.conf---------------------- host 127.0.0.1 base dc=example,dc=com uri ldap://127.0.0.1/ ssl no pam_password md5 ------------------------------------------- ----/etc/nsswitch---------------------- bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files ldap rpc: files services: files ldap netgroup: files ldap publickey: nisplus automount: files ldap aliases: files nisplus -------------------------------------------------------------------- --------/etc/pam.d/system-auth--------------------- auth required /lib/security/$ISA/pam_env.so auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass auth required /lib/security/$ISA/pam_deny.so account required /lib/security/$ISA/pam_unix.so broken_shadow account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so account required /lib/security/$ISA/pam_permit.so password requisite /lib/security/$ISA/pam_cracklib.so retry=3 password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow password sufficient /lib/security/$ISA/pam_ldap.so use_authtok password required /lib/security/$ISA/pam_deny.so session required /lib/security/$ISA/pam_limits.so session required /lib/security/$ISA/pam_unix.so session optional /lib/security/$ISA/pam_ldap.so -------------------------------------------------------------- 5. コマンド"getent passwd | grep user01"を実行すると、ldapに登録されるuser01を返すはずが、返してくれません。予想通り、sshでuser01でログインしようとする、まったく見にいかず、Permission Denied と返されます。 Can someone advice what I did wrong? Any advice would be greatly appreciated. Thanks! Angie C | ||||
|
投稿日時: 2007-07-27 15:35
ここの部分はどうしてこういう構成になったのでしょうか? ↓の http://www.linux.or.jp/JF/JFdocs/LDAP-Implementation-HOWTO/pamnss.html 2.1.3. Lightweight Directory Access Protocolに記述がありますが pam_ldapとnss_ldapは、RFC2307のスキーマ使うんじゃ? inetOrgPersonってRFC2798でしたっけ。 /etc/syslog.confに local4.* /var/log/ldap.log とか追加して # service syslog restart あとは、ldap.log眺めながらどんなfilter使っているのか 確かめればより確実かと。 filterにattributeだけじゃなくてobjectclassも使ってるはず。 もっと細かく処理を追いたいならslapd.confでloglevel変えて下さい。 _________________ 桃李不言 下自成蹊 | ||||
|
投稿日時: 2007-07-27 15:39
ども。
ユーザを作成する際の ldif ファイル内の objectClass に posixAccount の指定が必要だったりするのでは? fedorasrv.com こちらを参考にされては? [ メッセージ編集済み 編集者: うっちー 編集日時 2007-07-27 15:41 ] | ||||
|
投稿日時: 2007-07-31 11:13
ベテラン、うっちーご返答ありがとうございます。
アドバイスをいただいて、MigrationToolというの使って、/etc/passwdをコンバートして、objectClassをPoxisAccount にしてから、"getent"できるようになりました。 どうもありがとうございました。 Angie |
1