0

slapd.confとslurpdを使用してマスター/スレーブを構成しました。

問題は、マスターサーバーが停止している場合、スレーブサーバーからクライアントパスワードを変更できないことです。

マスターサーバー-

[root@lr5dir01 ~]# service ldap stop
Stopping slapd:                                            [  OK  ]
Stopping slurpd:                                           [  OK  ]
[root@lr5dir01 ~]#

スレーブサーバー-

[root@lr5dir02 ldap]# service ldap restart
Stopping slapd:                                            [  OK  ]
Checking configuration files for slapd:  config file testing succeeded
                                                           [  OK  ]
Starting slapd:                                            [  OK  ]
[root@lr5dir02 ldap]#

クライアント -

[root@lr5dir02 ldap]# ssh ldaptest@10.40.109.94
ldaptest@10.40.109.94's password:
Last login: Tue Feb 19 21:14:27 2013 from lr5dir02.hk.intraxa
Could not chdir to home directory /home/ldaptest: No such file or directory
-bash-3.2$

-bash-3.2$ passwd
Changing password for user ldaptest.
Enter login(LDAP) password:
'New UNIX password:
Retype new UNIX password:
LDAP password information update failed: Referral

passwd: Permission denied
-bash-3.2$

マスターサーバー-slapd.conf

access to attrs=shadowLastChange,userPassword
      by self write
      by * auth

access to *
      by * read

replica host=10.40.101.231:389
        binddn="cn=Manager,dc=hk,dc=intraxa"
        credentials=secret
        bindmethod=simple
        tls=no

スレーブサーバーslapd.conf-マスターのみと同じ

updatedn "cn=Manager,dc=hk,dc=intraxa"
updateref ldap://10.40.101.230:389/

クライアントパム-

[root@lr6tst01 ~]# more /etc/pam.d/passwd
#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   include      system-auth

[root@lr6tst01 ~]#


Log - Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: read active on 14
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NULL
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=4 BIND dn="uid=ldaptest,ou=People,dc=hk,dc=intraxa" method=128
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=4 BIND dn="uid=ldaptest,ou=People,dc=hk,dc=intraxa" mech=SIMPLE ssf=0
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=4 RESULT tag=97 err=0 text=
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on 1 descriptor
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on:
Feb 19 21:43:54 lr5dir02 slapd[7147]:
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NULL
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on 1 descriptor
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on:
Feb 19 21:43:54 lr5dir02 slapd[7147]:  14r
Feb 19 21:43:54 lr5dir02 slapd[7147]:
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: read active on 14
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NULL
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on 1 descriptor
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: activity on:
Feb 19 21:43:54 lr5dir02 slapd[7147]:
Feb 19 21:43:54 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NULL
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=5 MOD dn="uid=ldaptest,ou=People,dc=hk,dc=intraxa"
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=5 MOD attr=userPassword
Feb 19 21:43:54 lr5dir02 slapd[7147]: conn=2 op=5 RESULT tag=103 err=10 text=
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: activity on 1 descriptor
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: activity on:
Feb 19 21:43:56 lr5dir02 slapd[7147]:  14r
Feb 19 21:43:56 lr5dir02 slapd[7147]:
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: read active on 14
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NULL
Feb 19 21:43:56 lr5dir02 slapd[7147]: connection_read(14): input error=-2 id=2, closing.
Feb 19 21:43:56 lr5dir02 slapd[7147]: conn=2 op=6 UNBIND
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: removing 14
Feb 19 21:43:56 lr5dir02 slapd[7147]: conn=2 fd=14 closed
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: activity on 1 descriptor
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: activity on:
Feb 19 21:43:56 lr5dir02 slapd[7147]:
Feb 19 21:43:56 lr5dir02 slapd[7147]: daemon: epoll: listen=7 active_threads=0 tvp=NUL
4

1 に答える 1

1

を使用している場合はslurpd、古いバージョンの OpenLDAP を使用している必要があります。サポートされているレプリケーション構成は、読み取り専用レプリカ ノードを使用する厳密なシングル マスター (RW) です。slurpdは、このモードしかサポートできないため、サポートされなくなりました。

何が起こっているかというと、読み取り専用ノードは (マスターから以外の) 書き込み要求を受け入れることができないことを知っているため、クライアントに参照updaterefを与え、書き込み可能なノード (つまり、構成内の URI)に送信しています。

OpenLDAP 2.4 にアップグレードし、レプリケーションにsyncreplプロトコルを使用する必要があります。これにより、次の 3 つのレプリケーション シナリオが可能になります。

  1. 単一の RW マスター、複数の RO レプリカ ノード
  2. 完全なマルチマスター RW (注意事項あり)
  3. ミラーモードハイブリッド (アクティブ ホットスタンバイ)、バランサーまたはプロキシを使用

OpenLDAP 2.3 で syncrepl を使用できますが、アップグレードすることを強くお勧めします (または、使用しているパッケージや修正がバックポートされているかどうかによっては、最大 5 年間の syncrepl の機能強化とパッチを利用できない可能性があります)。

現在のセットアップでの唯一のオプションは、RO ノードの構成を手動で変更して、マスターがオフラインになったときに RO ノードをマスターに昇格させることです。

于 2013-03-04T18:05:27.147 に答える