1) Sunucu Hostname Ayarları

İlk olarak, sunucunuzun hostname’ini (FQDN – Tam Nitelikli Alan Adı) ayarlamanız gerekiyor. Bu örnekte, sunucunun hostname’ini ldap.foxhound ve IP adresini 192.168.1.20 olarak ayarlayacağız.

Aşağıdaki komutu root kullanıcısı olarak çalıştırın. ldap.foxhound yerine kendi tercih ettiğiniz domain ve hostname’i yazabilirsiniz.


hostnamectl set-hostname ldap.foxhound
exec bash

Ardından, /etc/hosts dosyasını sunucunun hostname'i ve IP adresi ile güncelleyin. Bu, ağ içinde hostname çözümlemesi yapabilmek için gereklidir.


echo '192.168.1.20 ldap.foxhound' >> /etc/hosts

Sunucunun hostname'ini pingleyerek doğru bir şekilde ayarlandığını kontrol edin.


ping -c 3 ldap.foxhound

2) OpenLDAP Paketlerinin Kurulumu

Bir sonraki adım, OpenLDAP paketlerini kurmaktır. Aşağıdaki komutu çalıştırarak OpenLDAP paketlerini yükleyin.


sudo apt install slapd ldap-utils -y

3) OpenLDAP Sunucusunun Yapılandırılması


sudo dpkg-reconfigure slapd
  • Bu komut, terminalinizde bir dizi soru oluşturacaktır. İlk olarak, OpenLDAP sunucusu yapılandırmasını başlatmak için ilk soruda 'Omit OpenLDAP server configuration?' No seçeneğini seçin.
  • Ardından, DNS domain adını girin. Bu, LDAP dizininin temel DN'sini oluşturmak için kullanılacaktır. Bu örnekte, foxhound.com domain adını kullanacağız. Bu nedenle, DN dc=foxhound,dc=com olarak temsil edilecektir. ENTER tuşuna basın.
  • Daha sonra, organizasyonunuzun adını girin. Bu da temel DN'nin bir parçası olacaktır. Bu örnekte, foxhound.com domain adını kullanacağız.
  • LDAP dizini için yönetici şifresini girin ve ENTER tuşuna basın.
  • Şifreyi tekrar girerek onaylayın ve ENTER tuşuna basın.
  • slapd paketi kaldırıldığında veritabanının silinip silinmeyeceği sorulduğunda, ' Do you want the database to be removed when slapd is purged?' No seçeneğini seçin.
  • Son olarak, eski veritabanını kaldırmak ve yeni bir veritabanı oluşturmak için 'Move old database' Yes seçeneğini seçin.

4) OpenLDAP Yapılandırma Dosyasının Düzenlenmesi

OpenLDAP ana yapılandırma dosyasında değişiklikler yapmanız gerekiyor. Dosyayı bir metin düzenleyici ile açın. Bu örnekte vim kullanıyoruz.


sudo vim /etc/ldap/ldap.conf

BASE ve URI ile başlayan satırları bulun ve yorum satırı işaretlerini kaldırın. OpenLDAP sunucunuzun domain adını girin. Bu örnekte, BASE dc=foxhound,dc=com ve URI ldap://ldap.foxhound olacaktır.


BASE dc=foxhound,dc=com
URI  ldap://ldap.foxhound

Değişiklikleri kaydedin ve dosyadan çıkın. Ardından, slapd servisini yeniden başlatın ve durumunu kontrol edin.


systemctl restart slapd
systemctl status slapd

OpenLDAP temel yapılandırmasını doğrulamak için aşağıdaki komutu çalıştırın.


ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///

dn: dc=foxhound,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: foxhound.com
dc: foxhound
ou: groups

5) phpldapadmin Kurulumu

ilk önce .deb paktini indiriyoruz ve kuruyoruz.


wget https://launchpad.net/ubuntu/+archive/primary/+files/phpldapadmin_1.2.6.7-1_all.deb
sudo apt -y install apache2 php php-cgi libapache2-mod-php php-mbstring php-common php-pear
sudo dpkg -i phpldapadmin_1.2.6.7-1_all.deb
sudo apt --fix-broken install

Yapılandırma dosyasında yapılması gerekenler.


sudo vim /etc/phpldapadmin/config.php

...
$servers->setValue('server','name','FoxHound LDAP Server');
$servers->setValue('server','host','192.168.1.20');
$servers->setValue('server','base',array('dc=foxhound,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=foxhound,dc=com');
...

config.php dosayasında bu bölümler de ki 'example' değerlerini sizin LDAP sunucu ayarlarına göre değiştirip apache server restartlamanız gerekmekte.

6) Apache Ayarları

normalde url 'http://192.168.1.20/phpldapadmin/' fakat redirect ederek direkt bu sayfanın gelmesini sağlacağız.


sudo vim /etc/apache2/sites-available/000-default.conf
RedirectMatch ^/$ /phpldapadmin/

değişikliklerin geçerli olabilmesi için apache servisini restartlıyoruz.


sudo systemctl restart apache2.service && sudo systemctl status apache2.service

'RedirectMatch ^/$ /phpldapadmin/' bu satırı ekledikten sonra sorunsuz bir şekilde snucu ip adresinden ulaşabilirsiniz.

7 ) Örnek Kullanıcı

ilk önce kullanıcılar ve grublar için alan oluşturuyoruz. Bunun için 'base-groups.ldif' adında bir dosya oluşturuyoruz ve aşşağıda ki içine kopyalıyoruz.


dn: ou=people,dc=foxhound,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=foxhound,dc=com
objectClass: organizationalUnit
ou: groups

Ardından bunu 'ldapadd' komutu ile aktif ediyoruz.


ldapadd -x -D cn=admin,dc=foxhound,dc=com -W -f base-groups.ldif

Sysadmin grubu ve bigboss adında bir kullanıcı oluşturacağız. Bunun için 'create-sysadmin.ldif' adında bir dosya oluşturuyor ve aşşağıda ki komutları içine kopyalıyoruz.

Bu değişiklikleri aktif hale getirmek için 'ldapadd' komutunu kullanuyoruz.


ldapadd -x -D cn=admin,dc=foxhound,dc=com -W -f create-sysadmin.ldif

# sysadmin grubunu oluştur
dn: cn=sysadmin,ou=groups,dc=foxhound,dc=com
objectClass: top
objectClass: posixGroup
cn: sysadmin
gidNumber: 5000

# bigboss kullanıcısını oluştur
dn: uid=bigboss,ou=people,dc=foxhound,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uid: bigboss
cn: Big
sn: Boss
userPassword: {SSHA}hashed_password
loginShell: /bin/bash
uidNumber: 5001
gidNumber: 5000
homeDirectory: /home/bigboss

# bigboss kullanıcısını sysadmin grubuna ekle
dn: cn=sysadmin,ou=groups,dc=foxhound,dc=com
changetype: modify
add: memberUid
memberUid: bigboss

Bu Terimler Nedir?

  1. ou=people,dc=foxhound,dc=com

  2. Bu OU, genellikle kullanıcı hesaplarını (user accounts) içermek için
    kullanılır. Örneğin, bir şirkette çalışanların kullanıcı hesapları
    burada saklanabilir. Her bir kullanıcı, bu OU altında bir "entry" olarak
    temsil edilir.

  3. ou=groups,dc=foxhound,dc=com
  4. Bu OU, genellikle grupları (groups) içermek için kullanılır. Gruplar,
    kullanıcıları bir araya getirmek ve onlara belirli izinler veya erişim
    hakları atamak için kullanılır. Örneğin, "IT" grubu, "Finance" grubu
    gibi gruplar burada saklanabilir.

Neden Bunu Oluşturuyoruz?

  1. Organizasyon ve Yönetim Kolaylığı:

  2. Kullanıcıları ve grupları farklı OU'lar altında tutmak, yönetimi kolaylaştırır. Örneğin, tüm kullanıcı hesaplarını ou=people altında toplamak, kullanıcıları daha kolay bulmayı ve yönetmeyi sağlar.

  3. Yetkilendirme ve Erişim Kontrolü:
  4. Gruplar,
    kullanıcılara belirli izinler atamak için kullanılır. Örneğin, bir
    dizin servisindeki belirli kaynaklara erişim izni vermek için gruplar
    kullanılabilir. ou=groups altında tanımlanan gruplar, bu tür yetkilendirmeleri kolaylaştırır.

Kategori: