Bu yazımızda Pardus Sunucu 21.5 üzerinde Samba-AD-DC sunucu hizmetini kurarak, nasıl etki alanı (domain) özelliklerini kullanmaya hazır hale getirildiğini anlatacağız.

Etki Alanı Sunucusu ( Domain Controller) , bir ağdaki kullanıcı hesaplarını, bilgisayar hesaplarını, güvenlik politikalarını ve diğer kaynakları yöneten bir sunucudur. Bu sunucu aşağıdaki temel özelliklere sahiptir:

  • Kullanıcı Yönetimi
  • Bilgisayar Yönetimi
  • Güvenlik Politikaları
  • Grup Yönetimi
  • DNS Hizmeti

Bu yazımızda kullanılacak kaynaklar ve ön isterler ise:

  • Pardus 21.5 Sunucu versiyonu yüklü bir sistem
  • Sudo yetkisine sahip bir kullanıcı
  • Sunucu sistemi için rezerve edilmiş bir IP

Samba Servisleri Windows AD benzeri özellikler gösterdiğinden, sunucu kurulum diliniz Türkçe ise, küçük i harfinin büyük halinin ingilizce I olması sebebiyle sorun yaşayabilirsiniz. Bu sebeple eğer kurulumda İngilizce kurulum yapılmadı ise lokalizasyon ayarlarınızın yapılması gerekmektedir.

#Lokalizasyon ayarlanması
sudo dpkg-reconfigure locales

Açılan menüden en_US seçilir ve devam edilir, daha sonraki ekranda da en_US seçilir.

Eğer bu aşamayı yaptıysanız veya kurulumda ingilizce seçtiyseniz , Pardus Sunucu sistemimiz üzerinde root hesabı ile hostname dosyası düzenlenir. ( bu örnekte dc01 seçilmiştir.)

# Hostname tanimlanmasi
hostnamectl set-hostname dc01

/etc/hosts dosyanıza sabitlenmiş ip ve kurmak istediğiniz domain infosunu yazınız.
Bu örnekte domain adı pardus.gonullu, IP adresi 172.16.102.191 olarak ayarlanmıştır.

# FQDN dc01.pardus.gonullu olarak ayarlanır.
172.16.102.191 dc01.pardus.gonullu dc01

FQDN kayıtları doğrulanır.

user@dc01:~$ sudo hostname -f
dc01
user@dc01:~$ sudo ping -c3 pardus.gonullu
PING pardus.gonullu (172.16.102.191) 56(84) bytes of data.
64 bytes from dc01.pardus.gonullu (172.16.102.191): icmp_seq=1 ttl=64 time=0.011 ms
64 bytes from dc01.pardus.gonullu (172.16.102.191): icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from dc01.pardus.gonullu (172.16.102.191): icmp_seq=3 ttl=64 time=0.065 ms

--- pardus.gonullu ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2036ms
rtt min/avg/max/mdev = 0.011/0.043/0.065/0.023 ms

/etc/resolv.conf dosyası, modeminiz tarafınızda DHCP sunucusundan gelen ayarları içermektedir. Bu dosyadaki ayarların değiştirilmesi ve dosyanın değiştirilemez hale getirilmesi gerekmektedir. Bu sebeple

# Resolv.conf dosyasının baştan oluşturulması
sudo unlink /etc/resolv.conf
touch /etc/resolv.conf

/etc/resolv.conf dosyası içerisine de sunucu ipniz, domain isminiz ve dns sorgularının ileri aktarımı(dns forwarders) için ISP dns sunucusu girilir.

nameserver 172.16.102.191
#TTNet DNS adresi, kendi ISP sunucunuzun DNS adresini de yazabilirsiniz
nameserver 195.175.39.39
search pardus.gonullu

Son olarak /etc/resolv.conf dosyanız değiştirilemez olarak işaretlenir.

# /etc/resolv.conf dosyasının değişmez hale getirilmesi
sudo chattr +i /etc/resolv.conf

Samba-AD-DC paketlerinin kurulumu

Samba-ad-dc paketleri aşağıdaki komutlarla kurulabilir ( bu işlem internet hızınıza ve sunucu kaynağınıza göre 3-4 dakika sürebilir.)

# samba paketlerinin kurulması
apt update
apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools

Samba bir paylaşım protokolü ve domaine katılma protokolü de içerdiğinden bu hizmetler durdurulur ve samba-ad-dc servisi aktif edilir.

#samba servislerinin durdurulması
sudo systemctl disable --now smbd nmbd winbind
# Samba-ad-dc servisinin aktive edilmesi
sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc

Samba’ya ait olan smb konfigürasyon dosyalarının silinerek Samba-ad-dc tarafından tekrar oluşturulması gerektiğinden mevcut bazı dosyalar taşınır.

# Orijinal smb.conf dosyasının yedeklenmesi
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.orig

Samba-AD-DC oluşturulması

Bu aşamada etki alanı sunucumuzu kurup konfigüre edeceğiz. Provizyon işlemi başlatılır.

# Samba-ad-dc etki alanı provizyon işlemi
sudo samba-tool domain provision

Örneğimize uygun olarak sorulara şu şekilde cevaplar verilir.

Üst resimdeki gibi bilgiler alındığında sunucu kurulumu tamamlanmış demektir. Yeni oluşan krb5.conf dosyası ilgili yere kopyalanır.

# kerberos  dosyanın kopyalanması
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Samba-ad-dc servisi çalıştırılır ve ping atılarak sunucu hizmeti kontrol edilir.

user@dc01:~$ host -t A pardus.gonullu
pardus.gonullu has address 172.16.102.191
user@dc01:~$ host -t A dc01.pardus.gonullu
dc01.pardus.gonullu has address 172.16.102.191
user@dc01:~$ host -t SRV _ldap._tcp.pardus.gonullu
_ldap._tcp.pardus.gonullu has SRV record 0 100 389 dc01.pardus.gonullu.
user@dc01:~$ host -t SRV _kerberos._udp.pardus.gonullu
_kerberos._udp.pardus.gonullu has SRV record 0 100 88 dc01.pardus.gonullu.

Son olarak kerberos ayarlarının doğruluğu için Kerberos bileti alınması kontrol edilir.

user@dc01:~$ sudo kinit administrator@PARDUS.GONULLU
Password for administrator@PARDUS.GONULLU: 
Warning: Your password will expire in 41 days on Mon 29 Jan 2024 04:36:10 PM +03
user@dc01:~$ sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@PARDUS.GONULLU

Valid starting       Expires              Service principal
12/19/2023 15:46:59  12/20/2023 01:46:59  krbtgt/PARDUS.GONULLU@PARDUS.GONULLU
	renew until 12/20/2023 15:46:55

Zaman Sunucusu Ayarları

DC sunucuları ve istemcileri arasında zaman eşitliği belli bir limit üzerinde olursa, istemciler etki alanı etkileşiminde sorun yaşayabilmektedir. Bu sebeple chrony servisini de samba-ad-dc sunucusunda aktif etmemiz gerekmektedir. Samba zaman sunucusu ayarları yapılır

# chrony zaman sunucusunun ayarlanması
sudo chown root:_chrony /var/lib/samba/ntp_signd/
sudo chmod 750 /var/lib/samba/ntp_signd/

/etc/chrony/chrony.conf dosyasının sonuna eklemeler yapılır ve chrony servisi baştan başlatılır.

# /etc/chrony/chrony.conf dosyasının düzenlenmesi
bindcmdaddress 172.16.102.191
allow 172.16.102.0/24
ntpsigndsocket /var/lib/samba/ntp_signd

# chrony servisinin başlatılması
sudo systemctl restart chronyd
sudo systemctl status chronyd

Çalışmamız nihayetinde bir adet etki alanı sunucusunu Pardus Sunucu 21.5 üzerinde hizmet verecek şekilde ayarlamış bulunuyoruz. Samba-AD-DC hizmetine Windows/Linux istemciler, Windows AD hizmetine bağlandığı şekilde bağlanabilecektir.