안녕리눅스 3 User Guide
  • Introduction
  • Chapter 1. 안녕 리눅스 3 \/ CentOS 7.2 차이점
  • Chapter 2. Access Control
    • 안녕 리눅스 방화벽 설정
      • 기본 설정
      • Inbound 제어
      • Outbound 제어
      • brute force attack 제어
      • User defined rule 제어
      • 특정 국가에서의 접속 제어
      • oops-firewall 실행 방법
    • Shell login Control (with PAM)
      • login 가능한 account 제한
      • login account chroot
      • Google OTP를 이용한 2 factor 인증
    • 인증 통합 (Authentification\/Authorization Intergrate)
      • Openldap
        • Master Server 설정
        • SSL 설정
        • Slave Server 설정
        • Replication 설정
        • LDAP 클라이언트 인증 연동 설정
        • LDAP data 관리
        • Sudo LDAP 연동
      • NIS
      • Active Directory
  • Chapter 3. Web control
    • httpd
    • nginx
    • lighttpd
    • PHP
    • Web Access Control
      • Apache 2.4
      • Nginx
      • lighttpd
    • Web Monitor agent
  • Chapter 4. JVM 운영
  • Chapter 5. DNS 운영
    • 기본 설정
    • 신규 도메인 설정
    • Slave DNS 구성
    • Inverse Domain 설정
    • DNSSEC 설정
    • GeoDNS 설정
    • Domain 위임
    • IDN
    • Troble Shooting
  • Chapter 6. Time Server 운영
    • Chrony
    • NTP
  • Chapter 7. VPN 운영
  • Chapter 8. SMTP 운영
  • 안녕 리눅스 White Paper
    • Disk Partition Aligment
  • 안녕 리눅스 알려진 버그
  • 안녕 리눅스 3 패키지 일람
    • [AN:core]
      • annyung-release
      • byspam
      • check-utils
      • genpasswd
      • httpd-conf
      • httpd-krisp
      • httpd-nis
      • httpd-url
      • kmod-geoip
      • l4vip
      • ldap-auth-utils
      • libchardet
      • libimginfo
      • libipcalc
      • libkrisp
      • mariadb-aes256
      • olibc
      • oops-firewall
      • perl-KRISP
      • perl-ModuleList
      • php-chardet
      • php56-chardet
      • php71-chardet
      • php-common
      • php56-common
      • php71-common
      • php-fpm-conf
      • php56-fpm-conf
      • php71-fpm-conf
      • php-geoip
      • php56-geoip
      • php71-geoip
      • php-korean
      • php56-korean
      • php71-korean
      • php-krisp
      • php56-krisp
      • php71-krisp
      • php-nis
      • php56-nis
      • php71-nis
      • php-pear-KSC5601
      • php-pear-ipcalc
      • php-pear-krisp
      • php-pear-oops-key
      • procdump
      • python-chardet
      • python-krisp
      • remount
      • utf8-profile
      • whois
      • yum-annyung
    • [AN:base]
      • apr
      • authconfig
      • bash
      • bind
      • chrony
      • coreutils
      • ctags
      • cvs
      • ecj
      • filesystem
      • GeoIP
      • gperftools
      • httpd
      • initscrtips
      • iptables
      • java-1.8.0-openjdk
      • javapacakges-tools
      • linuxdoc-tools
      • mariadb
      • memcached
      • net-tools
      • ntp
      • openssh
      • openssl
      • pam
      • php
      • procmail
      • procps-ng
      • redhat-rpm-config
      • rootfiles
      • rsyslog
      • sendmail
      • setup
      • shadow-utils
      • sudo
      • systemd
      • sysvinit-tools
      • tomcat
      • traceroute
      • unzip
      • util-linux
      • vim
      • xinted
    • [AN:xless]
    • [AN:addon]
      • authbind
      • cronolog
      • google-authenticator
      • hping3
      • httpd-fcgid
      • imap
      • jfbterm
      • jlint
      • libevent14
      • libnet
      • libnetfilter_acct
      • lighttpd
      • mhash
      • mimetex
      • mm
      • netdata
      • netperf
      • nginx
      • openvpn
      • pdnsd
      • perl-CSS-DOM
      • php-pecl-apcu
      • php56-pecl-apcu
      • php71-pecl-apcu
      • php-pecl-memcache
      • php56-pecl-memcache
      • php71-pecl-memcache
      • php-pecl-oauth
      • php56-pecl-oauth
      • php71-pecl-oauth
      • php-pecl-xdebug
      • php56-pecl-xdebug
      • php71-pecl-xdebug
      • php56
      • php71
      • proftpd
      • python-Mako
      • python-MarkupSafe
      • python-mcrypt
      • python-openpyxl
      • python-xlrd
      • re2c
      • redis
      • rudiments
      • splint
      • sqlite32
      • sqlrelay
      • tomcat-native
    • [AN:plus]
  • 안녕 리눅스 Upgrade Guide
Powered by GitBook
On this page
  • 1. Relication 설정
  • 2. replication 확인
  • 3. Multi-Msater Replication 유의 사항

Was this helpful?

  1. Chapter 2. Access Control
  2. 인증 통합 (Authentification\/Authorization Intergrate)
  3. Openldap

Replication 설정

목차 1. Replication 설정 2. replication 확인 3. Multi-Msater Replication 유의 사항

여기서의 replication 설정은 multi master 설정을 하게 됩니다. 즉, replication으로 구성된 모든 서버가 master이자 slave가 된다는 의미 입니다.

그러므로, 설정 자체는 동일하게 되며, target server만 달라지게 됩니다.

1. Relication 설정

"2.3.1.1 Master Server 설정" 문서에서 ldap_auth_init를 이용하여 초기화 했을 때, 이미 repliaction을 위하여 replica(uid=replica,ou=Admin,dc=oops,dc=org)라는 account를 생성해 놓았며, 암호 설정을 해 놓았습니다.

replica account는 ldapROusers Group에 포함이 되어 있기 때문에, ldap 전체 database에 대한 읽기 권한을 가지게 됩니다.

이미 account는 준비가 되었고, replcation 설정을 위하여 ldap_replica라는 명령을 이용합니다.

[root@an3 ~]$ ldap_replica
이 서버는 replication 설정이 되어 있지 않습니다!
[root@an3 ~]$

아무런 옵션 없이 ldap_replica를 실행하면 replication 설정을 보여주게 됩니다. 현재는 설정이 안되어 있기 때문에 위 처럼 메시지가 나와야 합니다.

replication 설정은 -a 옵션을 이용하며, 제거는 -r 옵션을 이용합니다.

위에서 설명을 했듯이 master, slave 구분이 의미가 없지만, 여기서는 서버의 구분을 위하여 master를 ldap1.oops.org, slave를 ldap2.oops.org라고 호칭하면서 설명을 진행하도록 합니다.

master(ldap1.oops.org)에서 slave(ldap2.oops.org)의 변경 사항을 반영하도록 설정 합니다.

[root@ldap1 ~]$ ldap_replica -a -i 0 -u uid=replica,ou=Admin,dc=oops,dc=org ldap2.oops.org
Input replica password : ********* [replica account 계정 암호 입력]
설정 정보:

    Replica Account         : uid=replica,ou=admin,dc=oops,dc=org
    Replica BIND DN         : dc=oops,dc=org
    Replica Pre Test        : OK
    Replica Server ID       : 0
    Replica Provider        : ldap2.oops.org

이 정보가 맞습니까? [Y/N] : y

 * 1. sync 모듈 등록 ...  OK
 * 2. Set Server ID ... OK
 * 3. 리플리케이션 서버 설정 ... OK
 * 4. Mirror 모드 설정 ... OK
 * 5. 리플리케이션 오버레이 설정 ... OK

설정 완료

[root@ldap1 ~]$

다음, slave(ldap2.oops.org)에서 master(ldap1.oops.org)의 변경 사항을 반영하도록 설정 합니다. 주의할 것은 master(ldap1.oops.org)와 Replica Server ID(-i 옵션) 값을 다르게 설정 하십시오.

[root@ldap2 ~]$ ldap_replica -a -i 1 -u uid=replica,ou=Admin,dc=oops,dc=org ldap1.oops.org
Input replica password : ********* [replica account 계정 암호 입력]
설정 정보:

    Replica Account         : uid=replica,ou=admin,dc=oops,dc=org
    Replica BIND DN         : dc=oops,dc=org
    Replica Pre Test        : OK
    Replica Server ID       : 1
    Replica Provider        : ldap1.oops.org

이 정보가 맞습니까? [Y/N] : y

 * 1. sync 모듈 등록 ...  OK
 * 2. Set Server ID ... OK
 * 3. 리플리케이션 서버 설정 ... OK
 * 4. Mirror 모드 설정 ... OK
 * 5. 리플리케이션 오버레이 설정 ... OK

설정 완료

[root@ldap2 ~]$

2. replication 확인

ssoamanager account의 암호를 변경해 보도록 합니다.

먼저 ldap_auth 명령을 이용하여 master에서 ssomanager의 정보를 확인 합니다.

[root@ldap1 ~]$ ldap_auth -o Admin ssomanager@oops.org

    # extended LDIF
    #
    # LDAPv3
    # base <ou=Admin,dc=oops,dc=org> with scope subtree
    # filter: (uid=ssomanager)
    # requesting: ALL
    #
    # ssomanager, Admin, oops.org
    compatibility dn : ssomanager@oops.org
    dn               : uid=ssomanager,ou=Admin,dc=oops,dc=org
    objectClass      : posixAccount
    objectClass      : top
    objectClass      : inetOrgPerson
    objectClass      : shadowAccount
    gidNumber        : 9997
    givenName        : SSO
    sn               : Manager
    displayName      : SSO Manager
    uid              : ssomanager
    homeDirectory    : /
    gecos            : SSO Manager
    loginShell       : /sbin/nologin
    shadowFlag       : 0
    shadowMin        : 0
    shadowMax        : 99999
    shadowWarning    : 0
    shadowInactive   : 99999
    shadowLastChange : 12011
    shadowExpire     : 99999
    cn               : SSO manager
    uidNumber        : 9998
    userPassword     : {CRYPT}$6$htk01t9cUA5aFM/a$9H4.kig058cRESS6MGdjn8armHHP6IAQO9Qykr6iroW9laqugz.bIOPNzBUgk8N4H01QkeklEwQg05FBzSrfz/
    # search result
    search           : 3
    result           : 0 Success
    # numResponses: 2
    # numEntries: 1

[root@ldap1 ~]$

master(ldap1.oops.org)에서 ssomanager의 암호를 변경합니다.

[root@ldap1 ~]$ ldap_passwd -u admin ssomanager@oops.org
New password     : **************
Re-New password  : **************

Your Informations:

    * Account: ssomanager@oops.org
    * RDN : uid=ssomanager,ou=Admin,dc=oops,dc=org
    * Host: ldapi:///
    * Privilieges: -Y EXTERNAL
    * Commnad: /usr/bin/ldapmodify -H "ldapi:///" -Y EXTERNAL
    * Hash: {CRYPT}$6$qeB3N9K2FgIMds0m$tHCwJ3wS37zlDvgeza3T7ddtZN1Pc5s9qs0ROHsbPXE5MoFaQA3I8Uu.vEgcSjOSyd3/zqS.g6d/FHt2YEHf.0

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "uid=ssomanager,ou=Admin,dc=oops,dc=org"

0
Done
[root@ldap1 ~]$

slave(ldap2.oops.org)에서 ssomanager account를 확인하여 userPassword 값이 master(ldap1.oops.org)와 동일한지 확인 합니다.

[root@ldap2 ~]$ ldap_auth -o Admin ssomanager@oops.org

    # extended LDIF
    #
    # LDAPv3
    # base <ou=Admin,dc=oops,dc=org> with scope subtree
    # filter: (uid=ssomanager)
    # requesting: ALL
    #
    # ssomanager, Admin, oops.org
    compatibility dn : ssomanager@oops.org
    dn               : uid=ssomanager,ou=Admin,dc=oops,dc=org
    objectClass      : posixAccount
    objectClass      : top
    objectClass      : inetOrgPerson
    objectClass      : shadowAccount
    gidNumber        : 9997
    givenName        : SSO
    sn               : Manager
    displayName      : SSO Manager
    uid              : ssomanager
    homeDirectory    : /
    gecos            : SSO Manager
    loginShell       : /sbin/nologin
    shadowFlag       : 0
    shadowMin        : 0
    shadowMax        : 99999
    shadowWarning    : 0
    shadowInactive   : 99999
    shadowLastChange : 12011
    shadowExpire     : 99999
    cn               : SSO manager
    uidNumber        : 9998
    userPassword     : {CRYPT}$6$qeB3N9K2FgIMds0m$tHCwJ3wS37zlDvgeza3T7ddtZN1Pc5s9qs0ROHsbPXE5MoFaQA3I8Uu.vEgcSjOSyd3/zqS.g6d/FHt2YEHf.0
    # search result
    search           : 3
    result           : 0 Success
    # numResponses: 2
    # numEntries: 1

[root@ldap2 ~]$

변경사항이 반영이 확인이 되었다면, 반대로 테스트를 해 봅니다.

3. Multi-Msater Replication 유의 사항

openldap의 replication에서 주의할 점은, network 단절이나 server down이 발생할 경우, 이 동안 업데이트 된 것에 대한 양측 데이터의 정합성을 보장하지 못합니다.

즉, network 단절이나 server down이 발생할 경우, 수동으로 data를 맞추어 주든지 또는 한쪽을 기준으로 slave 설정을 다시 해야 한다는 의미 입니다.

또한, 서버의 replication 설정은 slave 설정이므로, ldap1의 변경 사항을 sync 하지 않으려면 ldap2의 replication 설정을 제거해야 합니다.

PreviousSlave Server 설정NextLDAP 클라이언트 인증 연동 설정

Last updated 5 years ago

Was this helpful?