OpenLDAP Master/Slave Kurulum Adımları

Published 08-08-2018 00:00:00

Kamu kurumlarında OpenLDAP bileşeninin Master/Slave yapısında kurulum ihtiyacını karşılamak amacıyla hazırlanmıştır. Kurulum;

  • Ortak Adımlar(OpenLDAP Kurulumu)
    
  • Master Sunucu Ayarları
    
  • Slave Sunucu Ayarları
    
  • Kurulum Testi
    

adımlarından oluşmaktadır.

NOT: Kurulumlar Pardus 17.3 üzerinde OpenLDAO(slapd) 2.4.44+dfsg-5+deb9u2 versiyonu ile yapılmıştır. ##Ortak Adımlar(OpenLDAP Kurulumu)##

Aşağıdaki adımlar her iki ldap sunucusunda uygulanacak adımlardır;

  • Uçbirimde;

    sudo apt install slapd ldap-utils -y

komutu ile ldap paketi ve ldap komutlarını getiren ldap-utils paketi yüklenir. Kurulum esnasında ldap admin kullanıcısı için parola( Yönetici parolası-Parolayı doğrulayınız ) tanımlanır. Paket kurulumları tamamlandıktan sonra slapd paketi konfigüre edilir. Uçbirimde;

dpkg-reconfigure slapd

aşağıda örnek değerleri tanımlanan alanlar konfigüre esnasında girilir.

Alan Değer
OpenLDAP sunucu yapılandırması atlansın mı? Hayır
DNS alan adı: **liderahenk.org **
Örgüt adı: LiderAhenk
Yönetici parolası: ssifre
Parolayı doğrulayınız: ssifre
Kullanılacak veritabanı arka ucu: MDB
* slapd paketi tamamen kaldırıldığında veritabanının da kaldırılmasını ister misiniz? Hayır
** Eski veritabanı taşınsın mı? Evet

Yukarıdaki değerlerden * ve ** içerenleri farklı bir şekilde tanımlayabilirsiniz.

##Master Sunucu Ayarları##

Bu adımlar master olarak belirlenen ldap sunucusunda uygulanır.

İlk olarak uçbirimde;

pico syncmod.ldif

komutu ile syncmod.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov.la

Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f syncmod.ldif

komutu ile syncmod.ldif dosyası ldap,‘a yüklenir. Yükleme sonrası uçbirim çıktısı aşağıdaki şekilde olmalıdır;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=module{0},cn=config
  • Uçbirimde;

    pico index.ldif

komutu ile index.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryUUID,entryCSN eq

Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f index.ldif

komutu ile index.ldif dosyası ldap,‘a yüklenir. Yükleme sonrası uçbirim çıktısı aşağıdaki şekilde olmalıdır;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"

Uçbirimde;

pico sync.ldif

komutu ile sync.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f sync.ldif

komutu ile sync.ldif dosyası ldap,‘a yüklenir. Yükleme sonrası uçbirim çıktısı aşağıdaki şekilde olmalıdır;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={1}mdb,cn=config"

##Slave Sunucu Ayarları##

Bu adımlar slave olarak belirlenen ldap sunucusunda uygulanır.

  • İlk olarak uçbirimde;

    pico syncmod.ldif

komutu ile syncmod.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov.la

Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f syncmod.ldif

komutu ile syncmod.ldif dosyası ldap,‘a yüklenir. Yükleme sonrası uçbirim çıktısı aşağıdaki şekilde olmalıdır;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=module{0},cn=config
  • Uçbirimde;

    pico index.ldif

komutu ile index.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryUUID,entryCSN eq

Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f index.ldif

komutu ile index.ldif dosyası ldap,‘a yüklenir. Yükleme sonrası uçbirim çıktısı aşağıdaki şekilde olmalıdır;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"
  • Uçbirimde;

    pico sync.ldif

komutu ile sync.ldif dosyası oluşturulur. İçine aşağıdaki veriler girilir.

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
  provider=ldap://ldap-master-ip
  bindmethod=simple
  binddn="cn=admin,dc=liderahenk,dc=org"
  credentials=ssifre
  searchbase="dc=liderahenk,dc=org"
  scope=sub
  schemachecking=on
  type=refreshAndPersist
  retry="30 5 300 3"
  interval=00:00:00:30
  starttls=yes
  tls_reqcert=allow

Oluşturulan sync.ldif dosyasındaki;

provider=ldap://ldap-master-ip
binddn="cn=admin,dc=liderahenk,dc=org"
credentials=ssifre
searchbase="dc=liderahenk,dc=org"

değerler yukarıda ortak ayarlarda girilen bilgiler ile doldurulmalıdır. Daha sonra;

ldapadd -Y EXTERNAL -H ldapi:/// -f sync.ldif

komutu çalıştırılmalı, sync.ldif dosyası ldap,‘a yüklenmelidir. Sonuç aşağıdaki şekilde dönmelidir;

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={1}mdb,cn=config"

##Kurulum Testi##

Son olarak yapılan kurulumun testi iiçn örnek bir kullanıcıyı sisteme ekleyelim;

pico user.ldif

komutu ile user.ldif dosyası açılır ve;

dn: uid=test-user,dc=liderahenk,dc=org
objectClass: simpleSecurityObject
objectclass: account 
uid: test-user
description: Test  User
userPassword: Test1234

satırları isteğe göre düzenlenir. Daha sonra;

ldapadd -x -W -D "cn=admin,dc=liderahenk,dc=org" -f user.ldif

“Enter LDAP Password” sorusuna yukarıda tanımlanan admin parolası girilir, çıkan sonuç;

adding new entry "uid=test-user,dc=liderahenk,dc=org  "

şeklinde olmalıdır.

ldapsearch -x uid=test-user -b dc=liderahenk,dc=org

komutu ile kullanıcının eklendiği kontrol edilebilir, çıkan sonuç aşağıdaki şekilde olmalıdır;

# extended LDIF
#
# LDAPv3
# base <dc=liderahenk,dc=org> with scope subtree
# filter: uid=test-user
# requesting: ALL
#
 
# test-user, liderahenk.org
dn: uid=test-user,dc=liderahenk,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: test-user
description: Test  User
 
# search result
search: 2
result: 0 Success
 
# numResponses: 2
# numEntries: 1