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.