Pardus 25 Kurumsal Active Directory Entegrasyonu ve Merkezi Kimlik Doğrulama Rehberi

Modern kurumsal bilgi işlem altyapılarında Pardus 25 (Debian 13 Trixie tabanlı) istemcilerin merkezi dizin servisleriyle (Microsoft Active Directory / Samba4 AD DC) konuşması; kimlik doğrulama, yetkilendirme, grup tabanlı rol dağıtımı ve parola politikalarının tek merkezden yönetilmesi için kritik bir gereksinimdir. Bu rehber; eski ve hantal winbind mimarisini geride bırakarak, endüstri standardı SSSD (System Security Services Daemon) ve Realmd ikilisiyle sıfır hata ve yüksek güvenlik prensibiyle hazırlanmıştır.

1. Mimari Tasarım ve Ön Gereksinimler

SSSD mimarisi; çevrimdışı kimlik doğrulama önbelleklemesi (offline credentials caching), Kerberos anahtar yönetimi ve PAM modülerliğiyle kurumsal ortamların vazgeçilmezidir. Sağlıklı bir etki alanı entegrasyonu için şu üç temel parametrenin sağlanması zorunludur:

  • İki Yönlü DNS Çözümlemesi: İstemci, etki alanı denetleyicisinin (Domain Controller) _ldap._tcp ve _kerberos._udp SRV kayıtlarını tam olarak çözebilmelidir.
  • NTP Tabanlı Zaman Senkronizasyonu: Kerberos v5 bilet mekanizması gereği, istemci ile AD DC arasındaki saat farkı en fazla 5 dakika (300 saniye) olabilir. Üretim ortamlarında bu sapma milisaniye düzeyinde tutulmalıdır.
  • DNS Güncelleme Yetkisi (Dynamic DNS): DHCP üzerinden IP değiştiğinde makinenin etki alanındaki güven ilişkisini (trust relationship) koruyabilmesi için dinamik DNS güncellemesi açık olmalıdır.
Parametre Örnek Değer Açıklama
Etki Alanı (FQDN) KURUM.LOCAL Kerberos Realm adı (Büyük harfle yazılması zorunludur)
Domain Controller IP 192.168.1.10 Birincil Active Directory ve DNS sunucusu
İstemci FQDN pardus-node01.kurum.local Pardus 25 kurulu makinenin tam ağ adı
Yönetici Hesabı etki_alani_yoneticisi Makineyi etki alanına ekleme yetkisine sahip hesap

2. Ağ, DNS ve Saat Senkronizasyonu (Chrony)

2.1. Hostname ve Hosts Yapılandırması

İstemcinin yerel FQDN adresi sistemde sabitlenmeli ve loopback IP ile eşleştirilmelidir:

# FQDN adını sisteme tanımlayın sudo hostnamectl set-hostname pardus-node01.kurum.local

/etc/hosts dosyasını açarak aşağıdaki eşleşmeyi ekleyin veya doğrulayın:

127.0.0.1 localhost 127.0.1.1 pardus-node01.kurum.local pardus-node01

2.2. DNS Yapılandırması (systemd-resolved)

Sistemin DNS sorgularını doğrudan Active Directory DC üzerinden çözmesi için /etc/systemd/resolved.conf dosyasını düzenleyin:

[Resolve] DNS=192.168.1.10 FallbackDNS=192.168.1.11 Domains=kurum.local DNSSEC=no

Servisi yeniden başlatıp SRV kayıtlarını sorgulayarak teyit edin:

sudo systemctl restart systemd-resolved sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf # SRV kayıt çözümleme kontrolü host -t SRV _ldap._tcp.kurum.local host -t SRV _kerberos._udp.kurum.local

2.3. Chrony ile Mikro-Saniye Seviyesinde Zaman Eşitleme

Kerberos kaymalarını önlemek için chrony paketini kurun:

sudo apt update && sudo apt install -y chrony

/etc/chrony/chrony.conf dosyasındaki varsayılan genel havuzları (pool satırlarını) kapatıp AD DC'yi tekil zaman kaynağı olarak ekleyin:

server 192.168.1.10 iburst prefer makestep 1.0 3 rtcsync

Servisi devreye alın ve eşitleme durumunu izleyin:

sudo systemctl restart chrony chronyc tracking

3. Gerekli Paketlerin Kurulumu

Realmd, SSSD çekirdek modülleri, Kerberos istemcisi ve PAM kütüphanelerini kurun:

sudo apt install -y realmd sssd sssd-tools adcli krb5-user \ packagekit samba-common-bin samba-libs libpam-sss libnss-sss
Not: Kurulum sırasında Kerberos Realm sorulursa, etki alanı adınızı mutlaka BÜYÜK harflerle (örn: KURUM.LOCAL) girin.

4. Etki Alanı Keşfi ve Katılım (Domain Join)

Öncelikle etki alanı servislerinin doğruluğunu kontrol edin:

realm discover kurum.local

Çıktıda configured: no ve server-software: active-directory satırları görüldükten sonra makineyi belirlenen OU altına ekleyin:

sudo realm join --verbose --user=etki_alani_yoneticisi \ --computer-ou="OU=BilgiIslem,OU=PardusIstemciler,DC=kurum,DC=local" \ kurum.local

İşlem bittiğinde makine Kerberos anahtar tablosunun (keytab) başarıyla oluşturulduğunu teyit edin:

sudo klist -k /etc/krb5.keytab

5. Üretim Seviyesi SSSD Optimizasyonu

realm join komutu /etc/sssd/sssd.conf dosyasını temel düzeyde oluşturur. Ancak kurumsal ortamlarda binlerce kullanıcının sorgulanması sırasında sistemin kilitlenmemesi, büyük/küçük harf duyarsızlığı ve dinamik IP güncellemeleri için dosyanın optimize edilmesi şarttır.

/etc/sssd/sssd.conf dosyasını açıp aşağıdaki üretim parametreleriyle güncelleyin:

[sssd] domains = kurum.local config_file_version = 2 services = nss, pam [domain/kurum.local] default_shell = /bin/bash krb5_store_password_if_offline = true cache_credentials = true krb5_realm = KURUM.LOCAL realmd_tags = manages-system joined-with-adcli id_provider = ad fallback_homedir = /home/%u@%d ad_domain = kurum.local # Kullanıcı adı ve çözümleme kritik ayarları use_fully_qualified_names = false case_sensitive = false # Dinamik DNS kaydı güncellemesi (DHCP değişikliklerine karşı zorunlu) dyndns_update = true dyndns_refresh_interval = 86400 # Performans & Ağ Optimizasyonu (Büyük yapılar için zorunlu) enumerate = false ldap_id_mapping = true access_provider = ad ldap_schema = ad ldap_use_tokengroups = true ldap_referrals = false ldap_deref_threshold = 0 # Çevrimdışı oturum toleransı (gün) offline_credentials_expiration = 14

Kritik Güvenlik Kuralı: SSSD yapılandırma dosyası izinleri 0600 ve sahibi root:root olmak zorundadır. Aksi halde servis güvenlik protokolü gereği başlamaz:

sudo chmod 0600 /etc/sssd/sssd.conf sudo chown root:root /etc/sssd/sssd.conf sudo systemctl restart sssd

6. PAM ve Otomatik Ev Dizini (mkhomedir)

Domain kullanıcıları ilk kez oturum açtığında ev dizinlerinin (/home/kullaniciadi@kurum.local) otomatik olarak şablon dizinden (/etc/skel) türetilmesi için PAM profilini etkinleştirin:

sudo pam-auth-update --enable mkhomedir

7. Masaüstü Oturum Açma Ekranı (Display Manager) Yapılandırması

Büyük Active Directory yapılarında enumerate = false ayarı nedeniyle kullanıcı listesi giriş ekranına dökülmez. Pardus masaüstü arayüzünde (LightDM veya SDDM) kullanıcı adı ve parolanın elle girilebilmesi için manuel giriş desteğinin açılması gerekir.

LightDM (Pardus XFCE) için:

/etc/lightdm/lightdm.conf.d/50-ad-login.conf dosyasını oluşturun:

[Seat:*] greeter-show-manual-login=true greeter-hide-users=true

SDDM (Pardus KDE Plasma) için:

/etc/sddm.conf.d/10-ad-login.conf dosyasını oluşturun:

[Users] HideUsers=true RememberLastUser=false

8. Yetkilendirme & Güvenlik Politikaları

8.1. Oturum Açma İzinlerini Kısıtlama

Tüm etki alanı kullanıcılarının makineye girmesini engelleyip sadece yetkili AD güvenlik gruplarına izin verin:

# Tüm etki alanı erişimini kapatın sudo realm deny --all # Belirlenen güvenlik grubuna oturum izni tanımlayın sudo realm permit -g "Pardus_Kullanicilari@kurum.local"

8.2. Yönetici (Sudoer) Yetkilendirmesi ve Sözdizimi Denetimi

Active Directory yöneticilerine yerel sudo hakkı tanımlamak için /etc/sudoers.d/ad_admins dosyasını oluşturun. Grup adında boşluk varsa ters bölü (\) ile kaçırılmalıdır:

sudo nano /etc/sudoers.d/ad_admins

Dosyaya şu satırı ekleyin:

# Boşluksuz grup örneği %Pardus_Yoneticileri@kurum.local ALL=(ALL:ALL) ALL # Boşluklu AD grubu örneği (örn: Domain Admins) # %Domain\ Admins@kurum.local ALL=(ALL:ALL) ALL

Dosya sahipliğini ve izinlerini sıkılaştırın, ardından kesinlikle sözdizimi kontrolü (syntax check) yapın:

sudo chown root:root /etc/sudoers.d/ad_admins sudo chmod 0440 /etc/sudoers.d/ad_admins # Hatalı sözdizimi durumunda sudo kilitlenmesini önlemek için kritik test: sudo visudo -cf /etc/sudoers.d/ad_admins

Çıktıda parsed OK ibaresini görmeden oturumu kapatmayın.

9. Teşhis ve Doğrulama Adımları

Entegrasyonun kusursuz çalıştığını doğrulamak için aşağıdaki komut zincirini uygulayın:

# Kullanıcı ve grup çözümleme kontrolü id ahmet.yilmaz getent group "Pardus_Kullanicilari" # Kerberos bilet alma testi kinit ahmet.yilmaz@KURUM.LOCAL klist kdestroy # SSSD çalışma durumu ve dinamik önbellek sıfırlama sudo sssctl domain-status kurum.local sudo sssctl cache-expire -E

10. Geri Alma ve Etki Alanından Ayrılma (Rollback Planı)

İstemciyi sistemden düşürmeniz ve eski haline döndürmeniz gerektiğinde:

sudo realm leave -v --user=etki_alani_yoneticisi kurum.local sudo systemctl stop sssd sudo systemctl disable sssd sudo pam-auth-update --force