Linux Ana Bilgisayarlarını SSSD ve realmd ile Active Directory Etki Alanına Katma


Linux işletim sistemi, Linux Torvalds tarafından özgür bir işletim sistemi olarak ilk kez tanıtıldığı 1991 yılından bu yana çok yol kat etti. Bugün, üst düzey sunuculardan sanal makinelere, IoT cihazlarına ve gömülü cihazlara kadar her şeyde bir tür Linux kullanılıyor. Çoğunlukla Oracle, PostgreSQL, MySQL ve MongoDB gibi yaygın veritabanı platformları Linux çalıştıran sunuculara kurulur.

Dikkate değer bir istisna Microsoft SQL Server'dı. Microsoft, SQL Server 2017'den başlayarak Linux desteğini duyurduğunda bu durum değişti. Ancak Microsoft, Linux ana bilgisayarlarını Active Directory'ye (AD) entegre etmenin basit bir yolunu sunmuyor ve bu da bunların yönetilmesini zorlaştırıyor.

Neyse ki, bulut ve şirket içi Windows sistemleri için Linux'u AD ile entegre etmenin realmd ve System Security Services Daemon'u (SSSD) kullanarak kolay bir yolu var.

Linux'u Active Directory ile nasıl entegre edeceğinizi öğrenmek için bu kılavuzu okuyun. Ayrıca realmd kullanarak AD'ye nasıl katılacağınızı, SSSD kullanmanın nasıl bir şey olduğunu ve Linux benzersiz tanımlayıcılarının (UID'ler) ve grup kimliklerinin (GID'ler) AD'deki site tanımlayıcılarıyla (SID'ler) nasıl eşleneceğini de ele alacağız.

Active Directory ile Linux Etkileşiminin Kısa Özeti

Giriş olarak Linux'un AD ile nasıl etkileşime girdiğinin kısa bir özetini burada bulabilirsiniz.

Bir Linux makinesini Windows AD gibi Basit Dizin Erişim Protokolü (LDAP) tabanlı bir dizin hizmetine bağlamanın ana nedenleri şunlardır:

  • İş politikaları
  • Erişim kontrolü
  • Merkezi kimlik yönetimi

Bir Linux ana bilgisayarını Active Directory'ye (AD) bağlarken iki bileşen gereklidir:

  • Merkezi kimlik ve kimlik doğrulama kaynağını (Active Directory) yönetmek için bir tane
  • Etki alanı keşfini gerçekleştirecek ve ilk bileşen ile kimlik kaynağı arasında aracı görevi görecek biri

Yıllar geçtikçe, bir Linux makinesini AD'ye bağlamak için birkaç yapılandırma seçeneği ortaya çıktı. Çoğunun yapılandırılması zahmetlidir ve etki alanlarına katılmak için SSSD'yi manuel olarak ayarlamanızı gerektirir. Ancak realmd paketi, zahmetli yapılandırma dosyası düzenlemesi olmadan görevi tamamlamanıza olanak tanır.

Linux Ana Bilgisayarını Windows AD Etki Alanına Entegre Etme

Şimdi CentOS 8 üzerinde çalışan bir Linux ana bilgisayarını Windows 2012 R2 Server Standard Edition'da yapılandırılmış bir Windows Active Directory (AD) etki alanına entegre etme adımlarını inceleyelim. (Linux dağıtımının ve Windows Server'ın sürümlerini ve türlerini belirtmemizin nedeni, Linux ve Windows sürümleri arasında ince farklar bulunmasıdır. Örneğin, CentOS/RHEL 8'de Ağ Zaman Protokolü (NTP) istemci ve sunucu etkinlikleri yönetiliyordu. ntp arka plan programını kullanıyor, ancak CentOS/RHEL 8'de chrony arka plan programıyla değiştirildi.)

Adım 1: Ana bilgisayar adının ve FQDN'nin belirtildiğinden emin olun.

/etc/hosts dosyasında ana bilgisayar adının ve tam etki alanı adının (FQDN) belirtildiğinden emin olun. Ana bilgisayar adı, geri döngü bağdaştırıcısı 127.0.0.1 ile eşlendiğinden localhost olamaz. Mevcut ana bilgisayar adını değiştirmeniz gerekiyorsa, bunu istediğiniz adla değiştirmek için aşağıdaki komutu kullanın. Ana bilgisayar adının bir parçası olarak FQDN'yi belirtmenize gerek yoktur.

[root@oldhostname ~]# hostnamectl set-hostname <new_host_name>

[root@newhostname~]# echo 192.168.44.9 sblinmssql2019 >> /etc/hosts

Adım 2: AD etki alanı denetleyicisini belirtin.

Aşağıdaki komutu kullanarak /etc/hosts dosyasında AD etki alanı denetleyicisini (DC) belirtin:

[root@newhostname~]# echo 192.168.xx.x sbad.sbits.net sbad >> /etc/hosts

[root@newhostname~]# ping sbad.sbits.net

Adım 3: AD etki alanı denetleyicisine ping işlemi uygulayın.

2. Adımda belirtilen AD alan denetleyicisine ping atın ve bir ping yanıtı aldığınızdan emin olun.

Adım 4: DNS sunucusunu AD etki alanı denetleyicisine yönlendirin.

Benim durumumda, DNS sunucusunun AD etki alanı denetleyicisine yönlendirilmesi gerekiyor çünkü DC'm aynı zamanda etki alanım olan sbits.net'in DNS sunucusudur.

Adım 5: Gerekirse NTP sunucusunu yapılandırın.

NTP sunucusu olarak kullanmayı planladığınız birincil DC'de NTP sunucusu yapılandırılmış değilse, birincil DC'de NTP sunucusunu yapılandırmak ve etkinleştirmek için ekran görüntüsündeki adımları izleyin.

Adım 6: Chrony'yi kurun ve DC kullanacak şekilde yapılandırın.

Linux ana bilgisayarının, AD etki alanındaki DC'lerden biriyle zamanı senkronize etmesi gerekir. Benim durumumda yalnızca bir etki alanı denetleyicisi var, bu nedenle Linux ana bilgisayarı zamanı onunla senkronize edecek.

Chrony henüz kurulmamışsa kurun ve saati senkronize etmek için DC'yi kullanacak şekilde yapılandırın. (Zaten kuruluysa, bunu bildiren bir mesaj alacaksınız.)

[root@newhostname~]# vi /etc/resolv.conf

[root@newhostname~]# systemctl restart NetworkManager

[root@sblinmssql2019~]# vi /etc/chrony.conf

  [root@sblinmssql2019~]# systemctl enable chronyd

  [root@sblinmssql2019~]# systemctl restart chronyd

  [root@sblinmssql2019~]# systemctl enable chronyd 

Chrony zaten kuruluysa, thechrony.conf yapılandırma dosyasını düzenleyip zaman sunucusunu AD etki alanı denetleyicisine ayarlayıp chronyd hizmetini yeniden başlatmamız gerekir. Hizmet önceden yüklenmemişse yeniden başlatıldığında başlatılmasını etkinleştirin ve güvenlik duvarının kurulumdan sonra NTP trafiğine izin verecek şekilde yapılandırıldığından emin olun.

Chronyd yapılandırılıp etkinleştirildikten sonra timedatectl komutu, NTP hizmetinin etkin olup olmadığını gösterecektir. NTP hizmetinin etkin olduğunu doğruladıktan sonra, aşağıda gösterildiği gibi zaman sunucusu olarak etki alanı denetleyicilerini kullandığını doğrulamak için chronyc Resources komutunu çalıştırın.

Adım 7: Samba paketini Linux'a yükleyin.

Daha sonra, winbind de dahil olmak üzere Samba paketini Linux ana bilgisayarına yükleyin. Winbind hizmeti, Linux ana bilgisayarının bir Windows ana bilgisayarı gibi AD etki alanıyla etkileşime girmesini sağlar. Kurulum tamamlandıktan sonra aşağıdaki ekran görüntüsünde gösterilen paketlerin kurulu olduğunu onaylayın.

Adım 8: /etc/samba/smb.conf dosyasını bölge değerini yansıtacak şekilde değiştirin.

Ardından, /etc/samba/smb.conf dosyasını bölge değerini tam etki alanı adına yansıtacak şekilde değiştirin ve aşağıdaki ekran görüntüsünde gösterildiği gibi çalışma grubu değerini etki alanının adıyla değiştirin. .

[root@sblinmssql2019~]# yum -y install samba samba-client

[root@sblinmssql2019~]# yum -y install samba-winbind samba-winbind-clients

Adım 9: Sistem yeniden başlatıldığında winbind arka plan programını etkinleştirin.

Aşağıdaki ekran görüntüsünde gösterildiği gibi systemctl komutunu kullanarak sistem yeniden başlatıldığında winbind arka plan programını etkinleştirin. Windows ana bilgisayarlarının aksine, Linux ana bilgisayarını yeniden başlatmanın hiçbir nedeni olmadığını lütfen unutmayın.

Not: bölge parametresi alan adınızın adıdır. Bu örnekte "sbits.net"tir ve workgroup parametresi "sbits" olarak ayarlanmıştır. İsterseniz çalışma grubu parametresi bunun yerine Windows varsayılanı olan “WORKGROUP”a ayarlanabilir. Güvenlik=ADS, bu ana bilgisayarın AD alanının bir parçası olduğunu belirtir. winbind separator =+, alan adı ile kullanıcı adını ayırmak için artı işaretinin (+) kullanılacağını belirtir. Geleneksel Windows ayırıcısı Linux ile uyumlu değildir ve etki alanı önekiyle birlikte bir kullanıcı adı her belirtildiğinde bir kaçış karakterinin kullanılması gerekir.

Adım 10: Kerberos bölgeleri paketini yükleyin.

yum komutunu kullanarak Kerberos bölgeleri paketini yükleyin:

[root@sblinmssql2019~]# yum -y install krb5-workstation

Adım 11: Linux ana bilgisayarını AD etki alanına ekleyin.

Şimdi aşağıdaki komutu kullanarak Linux ana bilgisayarını AD etki alanına ekleyin. “DNS güncellemesi başarısız oldu: NT_STATUS_INVALID_PARAMETER” hatasını almanız kuvvetle muhtemeldir.

Benim durumumda hatayı almama rağmen Linux ana bilgisayarı AD etki alanına eklendi. Komutu -no-dns-updates işaretiyle yeniden yayınladım ve hata ortaya çıkmadı.

Adım 12: DNS Manager'ı kullanarak güvenlik ayarını değiştirin.

Hatayla karşılaşmak istemiyorsanız ve DNS'nin yeni Linux ana bilgisayarlarına ilişkin bilgileri güncellemesini istiyorsanız, DNS Yöneticisi'ni kullanarak güvenlik ayarını aşağıda gösterildiği gibi değiştirin.

Adım 13: Linux bilgisayar nesnesinin eklendiğini doğrulayın.

Birincil etki alanı denetleyicisinde, Linux bilgisayar nesnesinin Active Directory Kullanıcıları ve Bilgisayarları aracı kullanılarak eklendiğini doğrulayın.

Adım 14: Winbind hizmetinin çalıştığını doğrulayın.

Winbind hizmetinin Linux ana bilgisayarında çalıştığını doğrulayın.

Adım 15: Linux ana bilgisayarının AD alanının bir parçası olduğunu doğrulayın.

Linux ana bilgisayarının aslında AD etki alanının bir parçası olduğunu ve DC'ye şifreli RPC çağrıları çalıştırmak için wbinfo paketini kullanarak DC ile iletişim kurabildiğini doğrulayın:

[root@sblinmssql2019~]# wbinfo -t    # verifies if encrypted RPC are supported

[root@sblinmssql2019~]# wbinfo – u  # enumerates AD the list of users

[root@sblinmssql2019~]# wbinfo – g  # enumerates AD the list of groups

Adım 16: Yetkilendirme sağlayıcısı olarak winbind'in seçildiğinden emin olun.

Daha sonra aşağıda gösterildiği gibi authselect select winbind -force komutunu kullanarak winbind'in yetkilendirme sağlayıcısı olarak seçildiğinden emin olmamız gerekiyor. -force bayrağı, /etc/nsswitch'teki girişlerin üzerine yazacaktır. confdosyası.

Adım 17: Winbind'i kullanmak için parola ve grup girişlerinin listelendiğinden emin olun.

Linux'un, yerel Linux kimlik doğrulamasından önce kullanıcı kimlik doğrulaması için winbind'i kullanacağından emin olmak için, /etc/ dosyasında passwd ve group girişlerinin winbind kullanacak şekilde listelendiğinden emin olun. nsswitch.conf dosyası.

Adım 18: Kerberos TGT almak için kinit kullanın.

Son olarak, Kerberos Bilet Verme Biletini (TGT) almak için kinit'i kullanın:

[root@sblinmssql2019~]# wbinfo -t    # kinit skumar@sbits.net

[root@sblinmssql2019~]# wbinfo – u  # klist

Muhtemelen yukarıdaki ekran görüntüsünde gösterilen hatayla karşılaşacaksınız. Öyleyse, /etc/krb5.conf dosyasını düzenleyin ve ayarı aşağıda gösterildiği gibi değiştirin:

Dosya değiştirildiğinde, Linux ana bilgisayarında herhangi bir hizmeti başlatmak için hiçbir neden kalmaz ve bilet isteğinin düzgün çalışması gerekir.

Bunu aşağıda gösterildiği gibi AD etki alanı denetleyicisinde de doğrulayabilirsiniz:

Tebrikler! Windows AD etki alanına bir Linux ana bilgisayarı eklediniz.

realmd kullanarak AD Etki Alanlarına katılma

Artık Linux'u Active Directory etki alanıyla nasıl entegre edeceğinizi bildiğinize göre, AD etki alanına katılmaya geçelim. Zahmetli yapılandırma dosyası düzenlemeye gerek kalmadan alan adlarına katılmak üzere SSSD'yi kurmanın hızlı ve kolay bir yolu vardır: realmd paketi. Bu komut satırı aracı, Active Directory etki alanları veya IPA etki alanları gibi Kerberos alanlarına kaydı yönetmek için kullanılabilir. realmd sistemi, doğrudan etki alanı entegrasyonunu sağlamak için kimlik etki alanlarını keşfetmenin ve birleştirmenin açık ve basit bir yolunu sağlar. Realmd, SSSD veya winbind gibi karmaşık temel Linux sistem hizmetlerinin yapılandırmasını ele aldığından, bu da çok fazla bir artış değil.

Realmd aynı zamanda erişim yönetimi, etkinlik yönetimi, etki alanı üyeliğini yapılandırma, entegre bir doğrudan etki alanı elde etme ve ağ ve kullanıcı SSH kimlik doğrulaması için de harika bir araçtır. Birçok kurumsal siber güvenlik ekibi, kimin neye erişimi olduğunu kontrol ederek saldırı yüzeyini azaltmak için realmd'yi kullanır.

Realmd Masaüstü Veri Yolu (D-Bus) aracını kullanarak Active Directory sunucusuna katılmak için bu adımları izleyin. Bu talimatlar Fedora ve Ubuntu dahil tüm Linux dağıtımları için geçerlidir.

  1. Linux'u bir Active Directory etki alanına eklemek için Linux ana makinenizin ağ üzerinden DC ile iletişim kurabildiğinden emin olun. Bu işlem için uygun DNS ve ana bilgisayar adı çözümlemesi çok önemlidir.
  2. Daha sonra, bilgisayar hesabınıza root erişimini kullanarak realmd'yi yükleyin ve zaten bir alan adına üye olup olmadığımızı kontrol edin.
sudo apt install realmd

realm list

realmd daha önce kurulmamışsa çıktının boş olması gerekir; bu şunu gösterir:

  • Ana makine AD'ye veya diğer etki alanı hizmetlerine bağlı değil
  • Herhangi bir alan adı üyeliğimiz bulunmamaktadır.

Çıktıda ayrılmak istediğiniz bir alan adı listeleniyorsa, başlangıçta alana katılmak için kullanılan alan adı yöneticisi kullanıcı hesabı olarak aşağıdakini çalıştırın:

sudo bölgesi example.com'dan ayrıl -U user@example.com

3. Daha sonra alanımızı keşfetmek isteyeceğiz:

realm discover <domain_controller_hostname_or_ip_address>

Çıktı, etki alanına katılmak için yüklenmesi gereken paketlerin bir listesidir:

example.com

  type: kerberos

  realm-name: EXAMPLE.COM

  domain-name: example.com

  configured: no

  server-software: active-directory

  client-software: sssd

  required-package: sssd-tools

  required-package: sssd

  required-package: libnss-sss

  required-package: libpam-sss

  required-package: adcli

  required-package: samba-common-bin

Bölge bulma çıktısı, özel ana makine ve etki alanı denetleyicisi kurulumunuza bağlı olarak farklılık gösterebilir.

realmd'nin varsayılan Active Directory istemci yazılımı olarak SSSD'yi kullandığını unutmayın. SSSD, yerel hizmetlerin SSSD'deki yerel kullanıcı ve kimlik bilgisi önbelleklerini kontrol etmesine olanak tanır, ancak bu önbellekler AD, bir LDAP dizini, bir kimlik yönetimi etki alanı veya bir Kerberos bölgesi dahil olmak üzere herhangi bir uzak kimlik kanıtlayıcıdan alınabilir.

SSSD kullanmak istemiyorsanız Samba Winbind'i kullanmak için winbind'i belirtebilirsiniz.

4. Windows sunucusunun ve Linux'un aynı ağda olduğunu doğrulayın. Aksi takdirde Linux ana bilgisayarlarınız Active Directory'ye katılamayacaktır. Etki alanı denetleyicisi için statik bir IP adresine sahip olmanızı kesinlikle öneririz.

5. Her şey onaylandıktan sonra devam edin ve listelenen gerekli paketleri (yukarıda gösterilen) yükleyin ve ardından realm join komutunu kullanın. Bu, yerel makineyi belirli bir etki alanıyla kullanmak üzere ayarlamak ve /etc/krb5.keytab konumunda bir ana bilgisayar keytab dosyası oluşturmak dahil olmak üzere çeşitli şeyler yapacaktır. Ayrıca, AD Etki Alanı Yönetici izinlerine sahip kimlik bilgilerini kullanarak Linux'u Windows etki alanına katacaktır:

sudo apt install sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin

sudo realm join --client-software=sssd <domain_controller_hostname_or_ip> -U <domain_admin>

Etki Alanı Yöneticisini belirtirken, zaten komutta bir etki alanı denetleyicisi belirttiğimiz için example.comuser biçimini kullanmak yerine yalnızca kullanıcı adını kullanabiliriz.

Ayrıca, ayırt edici ad biçimini kullanarak (örneğin, # realm join -computer-ou=) birleştirilecek bilgisayarın kuruluş birimini belirtmek için -computer-ou parametresini kullanabiliriz. ”ou=Linux Bilgisayarlar,dc=example,dc=com”). -computer-ou'nun belirtilmesi, varsayılan olmayan konumlarda dizin bilgisayarı hesapları oluşturmak için de harikadır.

Bir ana bilgisayar adı doğru formatta ayarlanmamışsa geçersiz bir ana bilgisayar adı hatasının oluşabileceğini unutmayın. Bunu çözmek için ana bilgisayar adını doğru şekilde ayarlamanız yeterlidir:

sudo hostnamectl set-hostname '<new_hostname>'

6. Etki alanına katıldıktan sonra, başarıyı onaylamak ve etki alanı bilgilerini incelemek için bölge listesi'ni tekrar çalıştırabiliriz:

example.com

  type: kerberos

  realm-name: EXAMPLE.COM

  domain-name: example.com

  configured: kerberos-member

  server-software: active-directory

  client-software: sssd

  required-package: sssd-tools

  required-package: sssd

  required-package: libnss-sss

  required-package: libpam-sss

  required-package: adcli

  required-package: samba-common-bin

  login-formats: %U@example.com

  login-policy: allow-realm-logins

Bu durumda, login-formats özelliği, alan adı hesaplarının bu ana makinede domainuser biçiminde belirtileceğini belirtir. > biçimi.

7. Son olarak SSSD hizmetini yeniden başlatın ve Active Directory kullanıcı bilgilerini doğrulamak için aşağıdaki komutu kullanın. Çıktı, bir etki alanı kullanıcısının UID'sini, gruplarını ve daha fazlasını göstermelidir:

sudo service sssd restart

id user@example.com

Hepsi bu kadar! Bu, hiçbir şekilde manüel olarak gerçekleştirebileceğiniz ve yapılandırabileceğiniz tüm seçenekler için kapsamlı bir kılavuz değildir; ancak bu, modern bir yaklaşım kullanarak Linux ana bilgisayarlarının Active Directory'ye katılmasını sağlamanın en hızlı yoludur.

İsteğe Bağlı Adımlar

Realmd'yi kullanarak AD'ye katıldıktan sonra, deneyiminizi özelleştirmek için realmd'nin davranışını değiştirmek ve çeşitli seçenekleri ve araçları kullanarak AD nesnelerinin özelliklerini yönetmek gibi isteğe bağlı adımları uygulayabilirsiniz. Bunlar şunları içerir:

OS sürümü

os-version ve os-name ayarları, işletim sistemi sürümünüzü ve adınızı belirtmenize olanak tanır. Özellikle, bilgisayar hesabının operatingSystemVersion ve operatingSystem niteliklerine yerleştirilen değerleri kontrol etmek için bunları kullanabilirsiniz.

AD Özellik Düzenleyicisi

Bu, bilgisayarlar, kullanıcılar ve gruplar gibi AD nesnelerinin özelliklerini yönetmek için yerleşik bir grafik araçtır. Windows Uzak Sunucu Yönetim Araçları'nın (RSAT) bir parçası olan dsa.msc ek bileşenini yükleyerek kullanabilirsiniz.

Reddet ve İzin Ver

Bölge reddi komutu, gerçek hesapların yerel giriş yapmasını reddeder. Belirli hesaplara girişleri kısıtlamak için bölge iznini kullanabilirsiniz.

Varsayılan Kullanıcı Yapılandırmasını Değiştirme

realmd sistemi, varsayılan kullanıcı ana dizini ve kabuk POSIX niteliklerini değiştirmenize olanak tanır. /etc/realmd.conf dosyasındaki [users] bölümünde aşağıdaki seçenekleri belirterek varsayılan dizini ve nitelikleri geçersiz kılabilirsiniz:

  • Varsayılan kabuk: Bu, varsayılan kullanıcı kabuğunu tanımlar; desteklenen herhangi bir sistem kabuğunu kabul eder.
  • Varsayılan-ana sayfa: Bu, açıkça ayarlanmamış bir giriş dizini olmayan hesaplar için bir giriş dizini oluşturmaya yönelik bir şablon ayarlar.

Linux UID'lerini/GID'lerini Active Directory'deki SID'lerle Eşleme

Artık Linux'u Active Directory ile nasıl entegre edeceğinizi biliyorsunuz. Ancak henüz işimiz bitmedi. Linux istemcilerinde Windows gibi bir SID kavramı bulunmadığından, POSIX UID'lerinin ve GID'lerin Active Directory'deki SID'lerle nasıl eşleştirildiğine de değinmemiz gerekiyor.

Winbind yerine SSSD kullanmanın faydaları

Daha önce de belirtildiği gibi realmd, varsayılan olarak winbind yerine SSSD'yi kullanır. Bu yaklaşımın en büyük faydalarından biri, SSSD'nin her Active Directory kullanıcısı veya grubunun SID'sini kullanarak POSIX UID/GID oluşturma işlemini otomatik olarak gerçekleştirmesidir. Etki alanına kattığınız her Linux ana bilgisayarında varsayılan SSSD ayarlarını korursanız, bu UID ve GID değerlerinin Linux ana bilgisayarları arasında tutarlı bir şekilde eşlenmesi gerekir.

Örneğin, laboratuvarımda, makineler aynı etki alanına bağlı olduğu sürece, onu hangi Linux makinesinde çalıştırırsam çalıştırayım bu sonuç tutarlıdır:

user@my-linux-host:~$ id user@example.com

uid=778006423(user@example.com) gid=778001234(domain users@example.com) groups=778001234 (domain users@example.com)

Bu yaklaşımın bir başka faydası da SSSD tarafından oluşturulan UID'lerin ve GID'lerin, kullanıcılar ve gruplar için Active Directory'deki uidNumber ve gidNumber niteliklerine de uygulanabilmesidir. Bu, bu AD özniteliklerini sorgulayan uygulamaların UID veya GID'yi SID ile eşlemesini gerçekleştirmesine olanak tanır ve sonuç olarak, bir kullanıcı veya grubun Windows veya Linux sisteminde kullanımda olup olmadığına bakılmaksızın aynı AD kullanıcılarına veya gruplarına referans verilmesiyle sonuçlanır.

uidNumber ve gidNumber Niteliklerini Görüntüleme ve Düzenleme

Windows Server'daki Active Directory Kullanıcıları ve Bilgisayarları'nda uidNumber ve gidNumber niteliklerini görüntülemek için Görünüm açılır menüsünde Gelişmiş Özelliklerin etkinleştirildiğinden emin olun:

Daha sonra bu alanları kullanıcının veya grubun Özellik Düzenleyicisi sekmesindeki Özellikler menüsünde görüntüleyip düzenleyebileceksiniz:

Tüm AD Kullanıcılarını ve Gruplarını UID'leri ve GID'leri ile Listeleme

Alanınızdaki kullanıcı ve grup sayısına bağlı olarak uidNumber ve gidNumber değerlerinin manuel olarak atanması uzun zaman alabilir. Bu alanları programlı olarak doldurma yöntemleri ortama özgü olsa da, etki alanına katılmış bir Linux ana bilgisayarından getent komutunu kullanarak en azından tüm AD kullanıcılarını ve gruplarını UID'leri ve GID'leriyle birlikte listeleyebiliriz.

Varsayılan olarak getent yalnızca yerel makinedeki kullanıcıları ve grupları listeler. Neyse ki, /etc/sssd/sssd.conf dosyanıza bir satır ekleyip SSSD'yi yeniden başlatarak bu durumu değiştirebilirsiniz. Ancak bu numaralandırma seçeneğinin etkinleştirilmesi, Active Directory sunucusunda önemli düzeyde strese neden olabilir.

Genellikle üretim saatleri dışında bu süreçten geçmeyi, sonuçları kaydetmeyi ve ardından tam numaralandırmayı devre dışı bırakmayı seviyorum. İşte bunu nasıl yapıyorum:

  1. Öncelikle sssd.conf dosyasına enumerate=True ekliyoruz ve ardından SSSD hizmetini yeniden başlatıyoruz:
echo "enumerate = True" | sudo tee -a /etc/sssd/sssd.conf &> /dev/null

sudo service sssd restart

Active Directory'nizin boyutuna bağlı olarak, yerel önbelleğe ilk numaralandırmanın tamamlanması 10 dakika kadar sürebilir. Bu süre zarfında, sırasıyla getent passwd ve getent group'un çıktılarında etki alanı kullanıcılarının ve gruplarının doldurulduğunu fark edeceksiniz.

2. Yerel kimlik bilgisi önbelleğine numaralandırma tamamlandıktan sonra, getent çıktısını biçimlendirmek için aşağıdaki komutları kullanabiliriz ('in alan adınızla değiştirilmesi gerekir):

getent passwd | awk -F: '{print $1 "," $3 "," $4}' | grep <domain>

getent group | awk -F: '{print $1 "," $3}' | grep <domain>

İlk komut, her etki alanı kullanıcısının UID'si ve GID'si ile virgülle ayrılmış biçimde çıktısını alır:

user@example.com,778006423,778001234

İkincisi, her etki alanı grubunun GID'si ile virgülle ayrılmış biçimde çıktısını alır:

domain users@example.com,778001234

3. Çıktıyı, Active Directory'nin uidNumber ve gidNumber niteliklerine ayrıştırmak için metin veya CSV dosyalarına yönlendirebilirsiniz. UID ve GID bilgilerinin CSV biçiminde olmasıyla, her CSV'yi içe aktaran ve Active Directory kullanıcıları ve grupları için uidNumber ve gidNumber'ı otomatik olarak güncelleyen bir komut dosyası oluşturabilirsiniz. Örneğin, aşağıdaki Windows PowerShell komutu belirtilen UID ve GID'yi AD'deki bu özniteliklere ekler:

Set-ADUser <ad_user> -Replace @{uidNumber="<uid>"; gidNumber="<gid>"}

Bu komutla (ve Set-ADGroup), ortamınıza uyan ve UID'leri/GID'leri AD'deki uidNumber ve gidNumber ile eşleme sürecini hızlandıran ve sonuçta Windows SID'lerle eşlenen bir komut dosyasını kolayca oluşturabilirsiniz.

4. Getent komutlarının çıktısını kaydettikten sonra, gelecekte pahalı LDAP numaralandırmasının oluşmasını önlemek için numaralandırma değerini sssd.conf'tan kaldırabilir ve SSSD hizmetini yeniden başlatabilirsiniz:

sudo sed -i '/enumerate = True/d' /etc/sssd/sssd.conf

sudo service sssd restart

Çözüm

Linux ana bilgisayarları genellikle kritik işlevler için kullanılır; bu nedenle yöneticilerin bu ana bilgisayarları izlemesi, nasıl kullanıldığını anlamaları, bunlara kimin eriştiğini gözlemlemesi ve nasıl güvenlik altına alındıklarını doğrulamaları gerekir.

Yöneticilerin Linux ana bilgisayarlarını Active Directory'ye bağlarken özellikle dikkatli olmaları gerekir. Saldırganların aşırı provizyonlu kullanıcı erişimi, zayıf şifreler ve açık SMB/NFS paylaşımları gibi sorunlardan yararlanarak alan adınızdaki yönetici haklarına yanal olarak geçmesi için güvenliği ihlal edilmiş tek bir ana bilgisayarın veya kullanıcının yeterli olduğunu unutmayın.

Siber güvenlik risklerini azaltmanın en iyi yollarından biri Netwrix Active Directory Güvenlik Çözümünü kullanmaktır. Kapsamlı ve kullanıcı dostu olan bu yazılım, Linux'un Active Directory ile entegrasyonunu stressiz ve basit hale getirir. O içerir:

  • Hem Unix/Linux hem de Active Directory'de önceden yapılandırılmış ve özelleştirilebilir denetim, günlük kaydı, analiz ve raporlama işleri
  • Google Cloud, ağ cihazları, sanallaştırılmış sistemler ve Kubernetes kapsayıcıları dahil altyapınızın diğer bölümlerini korumaya yönelik araçlar

Netwrix farkını yaşamak ister misiniz? Bugün ücretsiz deneme talebinde bulunun.

SSS

Bir Linux makinesini Active Directory'ye katabilir misiniz?

Evet. SSSD istemcisini manuel olarak bağlayarak veya realm join komutunu kullanarak herhangi bir dağıtımı bir AD etki alanına birleştirebilirsiniz.

Linux Active Directory'ye nasıl bağlanır?

Sistem Güvenliği Hizmetleri Arka Plan Programı (SSSD), Linux makinelerindeki uzak dizin hizmetlerine ve kimlik doğrulama mekanizmalarına erişimi yönetmek için bir dizi arka plan programı sağlar.

Linux'ta realmd nedir?

realmd, arayanların SSSD veya winbind hizmetleri aracılığıyla ağ kimlik doğrulamasını ve etki alanı üyeliğini yapılandırmasına olanak tanıyan bir Linux sistem hizmetidir.

Sudo systemctl komutu nedir?

Sudo systemctl komutu, başlatma sistemini kontrol etmek için ana yönetim aracıdır. Bir systemd hizmetini başlatmak için start komutunu kullanabilirsiniz.

Sudo apt-get update komutu nedir?

Sudo apt-get update komutu, yapılandırılmış tüm kaynaklardan paket bilgilerini indirmek içindir.

Sudo'lar nedir?

Linux ve Unix yöneticileri, sistem haklarını sistem kullanıcılarına tahsis etmek için sudoers dosyasını kullanabilir. Başka bir deyişle, yöneticilerin kimin ne yapacağını kontrol etmesine olanak tanır. Bu dosyayı /etc/sudoers'da bulabilirsiniz.

İlgili makaleler