Merkezi Kimlik Doğrulama için OpenLDAP Sunucusu Nasıl Kurulur


Hafif Dizin Erişim Protokolü (kısaca LDAP), dizin hizmetlerine erişim için endüstri standardı, hafif ve yaygın olarak kullanılan bir protokol kümesidir. Dizin hizmeti, kullanıcılar, gruplar, cihazlar, e-posta adresleri, telefon numaraları, ciltler ve diğer birçok nesne gibi günlük öğelere ve ağ kaynaklarına erişmek, bunları yönetmek, düzenlemek ve güncellemek için kullanılan paylaşılan bir bilgi altyapısıdır.

LDAP bilgi modeli girişlere dayanmaktadır. LDAP dizinindeki bir giriş, tek bir birimi veya bilgiyi temsil eder ve Ayırt Edici Ad (DN) olarak adlandırılan şeyle benzersiz bir şekilde tanımlanır. Girişin niteliklerinin her birinin bir türü ve bir veya daha fazla değeri vardır.

Nitelik, bir girişle ilişkili bir bilgi parçasıdır. Türler genellikle anımsatıcı dizelerdir; örneğin ortak ad için "cn" veya e-posta adresi için "mail". Her özniteliğe, boşluklarla ayrılmış bir listeden oluşan bir veya daha fazla değer atanır.

Aşağıda LDAP dizininde bilgilerin nasıl düzenlendiğini gösteren bir örnek yer almaktadır.

Bu makalede, Ubuntu 16.04/18.04 ve CentOS 7'de merkezi kimlik doğrulama için OpenLDAP sunucusunun nasıl kurulacağını ve yapılandırılacağını göstereceğiz.

Adım 1: LDAP Sunucusunu Yükleme

1. İlk olarak LDAP'in açık kaynak uygulaması olan OpenLDAP'i ve aşağıdaki komutları kullanarak bazı geleneksel LDAP yönetim yardımcı programlarını yükleyerek başlayın.

yum install openldap openldap-servers	    #CentOS 7
sudo apt install slapd ldap-utils	    #Ubuntu 16.04/18.04

Ubuntu'da paket kurulumu sırasında LDAP dizininizdeki yönetici girişi için şifreyi girmeniz, güvenli bir şifre belirlemeniz ve bunu onaylamanız istenecektir.

Kurulum tamamlandığında, daha sonra anlatıldığı gibi hizmeti başlatabilirsiniz.

2. CentOS 7'de, openldap sunucu arka plan programını başlatmak için aşağıdaki komutları çalıştırın, önyükleme sırasında otomatik olarak başlatılmasını etkinleştirin ve olup olmadığını kontrol edin. çalışır durumdadır (Ubuntu'da hizmetin systemd altında otomatik olarak başlatılması gerekir; durumunu kontrol etmeniz yeterlidir):

sudo systemctl start slapd
sudo systemctl enable slapd
sudo systemctl status slapd

3. Ardından, gösterildiği gibi güvenlik duvarı üzerinden LDAP sunucu arka plan programına yapılan isteklere izin verin.

firewall-cmd --add-service=ldap    #CentOS 7
sudo ufw allow ldap                #Ubuntu 16.04/18.04

Adım 2: LDAP Sunucusunu Yapılandırma

Not: LDAP yapılandırmasını manuel olarak düzenlemeniz önerilmez; yapılandırmaları bir dosyaya eklemeniz ve ldapadd veya < komutunu kullanmanız gerekir. Bunları aşağıda gösterildiği gibi LDAP dizinine yüklemek için Strong>ldapmodify komutunu kullanın.

4. Şimdi bir OpenLDAP yönetici kullanıcısı oluşturun ve bu kullanıcıya bir şifre atayın. Aşağıdaki komutta verilen şifreye hash değeri oluşturuluyor, bunu not alın, LDAP konfigürasyon dosyasında kullanacaksınız.

slappasswd

5. Ardından, LDAP dizinine bir giriş eklemek için kullanılacak bir LDIF dosyası (ldaprootpasswd.ldif) oluşturun.

sudo vim ldaprootpasswd.ldif

İçine aşağıdaki içerikleri ekleyin:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD_CREATED

yukarıdaki nitelik-değer çiftlerini açıklayarak:

  • olcDatabase: belirli bir veritabanı örneği adını belirtir ve genellikle /etc/openldap/slapd.d/cn=config içinde bulunabilir.
  • cn=config: genel yapılandırma seçeneklerini gösterir.
  • ŞİFRE: Yönetici kullanıcıyı oluştururken elde edilen karma dizedir.

6. Ardından, yukarıdaki ldap sunucusuna ve dosyaya atıfta bulunan URI'yi belirterek karşılık gelen LDAP girişini ekleyin.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif  

Adım 3: LDAP Veritabanını Yapılandırma

7. Şimdi slapd için örnek veritabanı yapılandırma dosyasını /var/lib/ldap dizinine kopyalayın ve dosyada doğru izinleri ayarlayın .

sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
sudo systemctl restart slapd

8. Ardından, bazı temel LDAP şemalarını /etc/openldap/schema dizininden aşağıdaki gibi içe aktarın.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif 
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

9. Şimdi alanınızı LDAP veritabanına ekleyin ve alanınız için ldapdomain.ldif adlı bir dosya oluşturun.

sudo vim ldapdomain.ldif 

İçine aşağıdaki içeriği ekleyin (örneği etki alanınızla ve ŞİFRE'yi daha önce elde edilen karma değerle değiştirin):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=example,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

10. Daha sonra yukarıdaki konfigürasyonu aşağıdaki komutla LDAP veritabanına ekleyin.

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif

11. Bu adımda LDAP dizinimize bazı girişler eklememiz gerekiyor. Aşağıdaki içeriğe sahip baseldapdomain.ldif adlı başka bir dosya oluşturun.

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example com
dc: example

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group 

Dosyayı kaydedin ve ardından girişleri LDAP dizinine ekleyin.

sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif

12. Bir sonraki adım, example, tecmint için bir LDAP kullanıcısı oluşturmak ve bu kullanıcı için aşağıdaki gibi bir şifre belirlemektir.

sudo useradd tecmint
sudo passwd tecmint

13. Ardından, aşağıdaki içeriğe sahip ldapgroup.ldif adlı bir dosyada bir LDAP grubu için tanımları oluşturun.

dn: cn=Manager,ou=Group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1005

Yukarıdaki yapılandırmada, gidNumber, tecmint için /etc/group içindeki GID'dir ve bunu OpenLDAP'ye ekleyin dizin.

sudo ldapadd -Y EXTERNAL -x  -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif

14. Ardından, ldapuser.ldif adında başka bir LDIF dosyası oluşturun ve tecmint kullanıcısının tanımlarını ekleyin.

dn: uid=tecmint,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tecmint
uid: tecmint
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/tecmint
userPassword: {SSHA}PASSWORD_HERE
loginShell: /bin/bash
gecos: tecmint
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

daha sonra yapılandırmayı LDAP dizinine yükleyin.

ldapadd -Y EXTERNAL  -x -D cn=Manager,dc=example,dc=com -W -f  ldapuser.ldif

Kimlik doğrulama için merkezi bir sunucu ayarladıktan sonra son kısım, bu kılavuzda açıklandığı gibi istemcinin LDAP kullanarak kimlik doğrulaması yapmasını sağlamaktır:

  1. LDAP İstemcisini Harici Kimlik Doğrulamaya Bağlanacak Şekilde Yapılandırma

Daha fazla bilgi için OpenLDAP Yazılımı belge kataloğundan uygun belgelere bakın; Ubuntu kullanıcıları OpenLDAP sunucu kılavuzuna başvurabilir.

Özet

OpenLDAP, LDAP'nin Linux'ta açık kaynaklı bir uygulamasıdır. Bu yazımızda Ubuntu 16.04/18.04 ve CentOS 7'de merkezi kimlik doğrulama için OpenLDAP sunucusunun nasıl kurulacağını ve yapılandırılacağını gösterdik. Paylaşmak istediğiniz bir sorunuz veya düşünceleriniz varsa aşağıdaki yorum formunu kullanarak bize ulaşmaktan çekinmeyin.