IPA ve Active Directory Arasında Güven Nasıl Kurulur?


Dizin hizmetleri, kullanıcılar, bilgisayarlar, yazıcılar, uygulamalar ve diğer ağ cihazları gibi ağ kaynakları hakkında merkezi bir bilgi veritabanı sağlayan yazılım uygulamalarını veya hizmetlerini ifade eder. Microsoft Active Directory, Novell eDirectory, LDAP, Apple Open Directory, IBM Tivoli Directory Server, IPA vb. dahil olmak üzere çeşitli dizin hizmetleri örnekleri vardır.

Active Directory (AD), ağ ortamındaki kaynaklar hakkındaki bilgileri yönetmek ve depolamak için kullanılan bir dizin hizmetidir. Microsoft Windows sunucu işletim sisteminin bir bileşenidir ve kuruluşlar tarafından kullanıcıları, bilgisayarları ve diğer kaynakları merkezi olarak yönetmek için kullanılır. Kullanıcılar, gruplar, bilgisayarlar ve diğer ağ aygıtları gibi kaynakları düzenlemek için hiyerarşik bir yapı sağlar ve yöneticilerin, kullanıcının rolüne veya grup üyeliğine dayalı olarak kaynaklara izinler ve erişim hakları atamasına olanak tanır.

IPA (Kimlik Politikası ve Denetimi), Unix ve Linux sistemleri için merkezi kimlik doğrulama, yetkilendirme ve erişim kontrolü sağlayan bir dizin hizmetidir. 389 Dizin Sunucusu, MIT Kerberos ve Dogtag Sertifika Sistemi dahil olmak üzere birçok açık kaynak teknolojisini birleştiren FreeIPA projesine dayanan açık kaynaklı bir çözümdür. IPA, bir dizin hizmeti sağlamanın yanı sıra, ana bilgisayar tabanlı erişim kontrolünün merkezi yönetimi, politika uygulama ve denetim gibi diğer özellikleri de içerir.

IPA ve AD birlikte çalışacak şekilde entegre edilebilir. Bu, iki dizin hizmeti arasında, kullanıcı ve grup bilgilerini paylaşmalarına ve her iki sistemdeki kullanıcıların kimliklerini doğrulamalarına olanak tanıyan bir ilişki kurarak IPA ile Active Directory arasında güven oluşturulmasını içerir.

Bu süreç genellikle iki dizin hizmeti arasında alanlar arası güvenin yapılandırılmasını içerir. Bölgeler arası güven, bir etki alanı veya bölgedeki kullanıcıların başka bir etki alanı veya bölgedeki kaynaklara erişmesine olanak tanıyan bir mekanizmadır. Bu durumda, IPA ve Active Directory etki alanları, alanlar arası bir güven ilişkisi kuracak ve bu, her iki etki alanındaki kullanıcıların diğer etki alanındaki kaynaklara erişmesine olanak tanıyacaktır.

IPA (Kimlik, Politika ve Denetim) ile Active Directory (AD) arasında güven oluşturmanın faydaları şunları içerir:

  • Merkezi yönetim: Güven sağlandığında, hem IPA hem de AD etki alanlarındaki kullanıcılar ve kaynaklar merkezi olarak yönetilebilir; bu da yönetim yükünü azaltır ve erişim yönetimini basitleştirir.
  • Kusursuz kimlik doğrulama: Güven, bir etki alanındaki kullanıcıların, ayrı oturum açma kimlik bilgileri girmeye gerek kalmadan diğer etki alanındaki kaynaklara erişmesine olanak tanır. Bu kusursuz kimlik doğrulama, kullanıcı deneyimini geliştirir ve her etki alanında ayrı kullanıcı hesapları bulundurma ihtiyacını ortadan kaldırır.
  • Geliştirilmiş güvenlik: IPA ile AD arasındaki güven, erişim politikalarının ve kullanıcı izinlerinin merkezi yönetimine izin vererek güvenliği artırabilir. Bu, kaynaklara erişimin yalnızca yetkili kullanıcılara verilmesini sağlar ve yetkisiz erişimi önler.
  • Esnek geçiş: Bir kuruluş AD'den IPA'ya geçiş yapıyorsa, sorunsuz bir geçişe izin vermek, kullanıcılardaki kesintiyi en aza indirmek ve kesinti süresini azaltmak için güven oluşturulabilir.
  • Birlikte Çalışabilirlik: IPA ile AD arasındaki güven, iki alan arasındaki hizmetlerin ve uygulamaların birlikte çalışabilirliğine olanak tanıyarak kullanıcıların her iki alandaki hizmetlere ve kaynaklara sorunsuz bir şekilde erişmesine olanak tanır.

IPA ve Active Directory arasında Güven Oluşturun

Genel olarak, IPA ile AD arasında güven oluşturmak verimliliği, güvenliği ve kullanıcı deneyimini artırır ve birden fazla etki alanındaki kaynakların ve kullanıcıların yönetimini kolaylaştırır.

Bu test için ortamımı aşağıdaki gibi ayarladım:

IPA:

IPA server IP address IPA server hostname IPA domain IPA NetBIOS IPA Kerberos realm
192.168.205.12 ipa.master.computingforgeeks.com master.computingforgeeks.com MASTER MASTER.COMPUTINGFORGEEKS.COM

REKLAM:

AD DC IP address AD DC hostname AD domain AD NetBIOS AD admins group SID
192.168.205.20 windows ad.computingforgeks.com GEEKS ad_admins_sid (e.g. S-1-5-21-16904141-148189700-2149043814-512)

1. IPA Sunucusunu Kurun ve Yapılandırın

Bu kılavuz için FreeIPA 3.3.3 veya üzeri önerilir. Başlamadan önce sisteminizin ana bilgisayar adını ayarlayın:

sudo hostnamectl set-hostname ipa.master.computingforgeeks.com

Ayrıca IPA sunucusunda Samba için IPv6 yığınını da devre dışı bırakmanız gerekir. Bu, aşağıdaki dosyayı oluşturarak/değiştirerek yapılabilir:

$ sudo vim /etc/sysctl.d/ipv6.conf
 # Disable IPv6
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.<interface0>.disable_ipv6 = 1

Arayüzü özel arayüzünüzle değiştirin. Bu, IPv6 yığınını işlevsel tutacak ancak ağ aygıtlarınızın hiçbirine IPv6 adresi atamayacaktır.

IPA sunucu paketlerini Rhel tabanlı sistemlere şu komutu kullanarak yükleyebilirsiniz:

sudo yum install -y "*ipa-server" "*ipa-server-trust-ad" ipa-server-dns bind bind-dyndb-ldap

IPA sunucusunu kurarken ipa-server-trust-ad modülünün kurulu olduğundan emin olun.

Şimdi IPA sunucusunu aşağıdaki komutla kurun:

sudo ipa-server-install --domain master.computingforgeeks.com --realm MASTER.COMPUTINGFORGEEKS.COM \
    --reverse-zone=205.168.192.in-addr.arpa. \
    --no-forwarders \
    --no-ntp \
    --setup-dns \
    --ds-password StrongDMPassw0rd \
    --admin-password StrongDMPassw0rd \
    --unattended

Şimdi yönetici kullanıcı olarak oturum açın. Öncelikle bilet alın

kinit admin

Aşağıdaki komutu kullanarak yönetici kullanıcının sisteminizde mevcut olduğundan emin olun:

$ id admin
uid=1634400000(admin) gid=1634400000(admins) groups=1634400000(admins)

$ getent passwd admin
admin:*:1634400000:1634400000:Administrator:/home/admin:/bin/bash

IPA kurulumunun ayrıntılı gösterimi için aşağıdaki kılavuzları da takip edebilirsiniz.

  • FreeIPA Sunucusunu Rocky Linux 9/AlmaLinux 9'a Kurun
  • FreeIPA Sunucusunu Rocky Linux 8'e Kurun ve Yapılandırın
  • FreeIPA Sunucusunu CentOS 7/RHEL 7'ye Yükleme
  • FreeIPA Sunucusunu Ubuntu'ya Kurun ve Yapılandırın

2. AD DS'yi Yükleyin ve Yapılandırın

Windows Server 2008 R2 veya üzeri yapılandırılmış, Active Directory DC ve DNS'nin DC'de yerel olarak yüklü olması gerekir. Bu, aşağıdaki kılavuzlar kullanılarak gerçekleştirilebilir:

  • Windows Server 2022'de Active Directory Etki Alanı Hizmetlerini Yükleme
  • Windows Server 2019'da Active Directory Etki Alanı Hizmetlerini Yükleme

3. Ormanlar Arası Güven için AD ve IPA'yı hazırlayın

IPA istemcilerindeki AD kullanıcılarına erişmeyi planlarken, IPA sunucusunu ormanlar arası güvenler için yapılandırmanız gerekir. Ancak bundan önce aşağıdakilerden emin olmanız gerekir:

  • Tarih/saat senkronizasyonu

Hem IPA'nın hem de AD'nin saat dilimi ayarlarına ve tarih/saat eşleşmesine sahip olması gerekir.

IPA'da saat diliminizi şu komutla ayarlayın:

sudo timedatectl set-timezone Africa/Nairobi

Örnek Çıktı:

Ayrıca AD'de benzer bir Saat Diliminin yapılandırıldığından emin olun.

  • Güvenlik duvarı yapılandırması

Güvenlik duvarı üzerinden aşağıdaki bağlantı noktalarına izin vermeniz yararlı olacaktır:

##TCP ports: 
80, 88, 443, 389, 636, 464, 53, 135, 138, 139, 445, 1024-1300

##UDP ports: 
88, 464, 53, 123, 138, 139, 389, 445

Tüm bu bağlantı noktalarına şu komutla izin verilebilir:

sudo firewall-cmd --add-service={dns,http,https,ntp,freeipa-ldap,freeipa-ldaps,freeipa-trust} --permanent
sudo firewall-cmd --reload
  • DNS yapılandırması

Ayrıca AD ile IPA arasında iletişim kurmanız gerekir. Şimdi FreeIPA Alan Adını Windows Active Directory Sunucusundaki Bölgelere ekleyin. Bunun için komut aşağıdaki sözdizimine sahiptir:

AD'de CMD'de aşağıdaki komutları çalıştırın:

C:\> dnscmd 127.0.0.1 /ResetForwarders ipa_ip_address /Slave
C:\> dnscmd 127.0.0.1 /ZoneAdd ipa_domain /Secondary ipa_ip_address

Örneğin:

dnscmd 127.0.0.1 /ResetForwarders 192.168.205.12 /Slave
dnscmd 127.0.0.1 /ZoneAdd master.computingforgeeks.com /Secondary 192.168.205.12

Örnek Çıktı:

IPA'da aşağıdaki sözdizimine sahip komutları kullanın:

#IPA v3.x:
ipa dnszone-add ad_domain --name-server=ad_hostname.ad_domain --admin-email='hostmaster@ad_domain' --force --forwarder=ad_ip_address --forward-policy=only --ip-address=ad_ip_address
ipa dnszone-mod [IPA domain name] --allow-transfer=[AD IP address]

##IPA v4.x:
ipa dnsforwardzone-add ad_domain --forwarder=ad_ip_address --forward-policy=only
ipa dnszone-mod [IPA domain name] --allow-transfer=[AD IP address]

Örneğin:

sudo ipa dnsforwardzone-add ad.computingforgeeks.com --forwarder=192.168.205.20  --forward-policy=only
ipa dnszone-mod  master.computingforgeeks.com --allow-transfer=192.168.205.20

Örnek Çıktı:

Değişikliklerin etkili olup olmadığını doğrulamak için şu komutları kullanın:

AD'de:

C:\> nslookup
> set type=srv
> _ldap._tcp.ad_domain
> _ldap._tcp.ipa_domain
> quit

Örnek Çıktı:

IPA'da:

dig SRV _ldap._tcp.ipa_domain
dig SRV _ldap._tcp.ad_domain

Örnek Çıktı 1:

Örnek Çıktı 2:

IPA sunucusu için herhangi bir yanıt alamıyorsanız, /etc/resolve.conf dosyasını düzenlemeniz ve AD IP'sini gösterildiği gibi eklemeniz gerekir:

$ sudo vim /etc/resolv.conf
# Generated by NetworkManager
search master.computingforgeeks.com
nameserver 192.168.205.20

Değişiklikleri kalıcı hale getirmek için dosyayı değiştirin:

$ sudo vim /etc/NetworkManager/NetworkManager.conf
[main]
#plugins=keyfile,ifcfg-rh
dns=none
rc-manager=unmanaged

Dosyayı kaydedin ve tekrar test edin.

4. Ormanlar Arası güveni oluşturun ve doğrulayın

AD kullanıcılarına IPA istemcilerine erişmek istiyorsanız, IPA istemcilerinin bağlanacağı IPA yöneticisinde ipa-adtrust-install komutunu çalıştırdığınızdan emin olmanız gerekir. Bağlanıyor:

$ sudo ipa-adtrust-install --netbios-name=MASTER -a StrongDMPassw0rd
The log file for this installation can be found in /var/log/ipaserver-adtrust-install.log
==============================================================================
This program will setup components needed to establish trust to AD domains for
the IPA Server.

This includes:
  * Configure Samba
  * Add trust related objects to IPA LDAP server

To accept the default shown in brackets, press the Enter key.

WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing samba configuration.


Do you wish to continue? [no]: yes
Do you want to enable support for trusted domains in Schema Compatibility plugin?
This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users.

Enable trusted domains support in slapi-nis? [no]: yes
.......

Bu kılavuz için, AD ve IPA sunucuları arasında iki yönlü ormanlar arası güven kuracağız.

Bunu başarmanın iki yolu vardır:

  • AD yöneticisi kimlik bilgileriyle:
ipa trust-add --two-way=true --type=ad ad_domain --admin Administrator --password

Örneğin:

ipa trust-add --two-way=true --type=ad ad.computingforgeeks.com --admin Administrator --password

Örnek Çıktı:

Komutta;

ipa Trust-add komutundaki -admin seçeneği, Domain Admins grubunun üyesi olmalıdır.

Bu noktada IPA, IPA tarafında iki yönlü bir orman vakfı oluşturacaktır. Tek yönlü bir güven için -two-way=true seçeneğinin atlanması gerekir. Bu, IPA tarafında tek yönlü orman güveni oluşturacak ve güvenin AD tarafından doğrulanmasını başlatacaktır.

  • AD yöneticisi kimlik bilgileri mevcut değil:

AD yönetici kimlik bilgilerine sahip olmadığınızda şu komutu kullanabilirsiniz:

ipa trust-add --two-way=true --type=ad "ad_domain" --trust-secret

Burada, istendiğinde güven paylaşılan sırrını girmeniz gerekir. Bu, IPA tarafında iki yönlü bir orman vakfı yaratacaktır. AD tarafındaki güveni manuel olarak doğrulamanız gerekir.

5. IPA'da Kerberos'u yapılandırın

Uygulamaların çoğu, Kerberos kütüphanesinden Kerberos sorumlusunun bazı POSIX hesaplarıyla eşlenebileceğini doğrulamasını ister. Ayrıca bazı uygulamalar, işletim sisteminden Kerberos kitaplığı tarafından döndürülen POSIX hesabının standart adını talep ederek ek kontroller gerçekleştirir. OpenSSH, asıl adı değiştirmeden karşılaştırmaya çalışır, ancak SSSD, bölge kısmını küçük harfe çevirir ve bu nedenle, SSH üzerinden Kerberos biletiyle oturum açmaya çalışırken gerçek kullanıcı adı, yönetici@bölge değil, Yönetici@bölge olur.

Bu nedenle Kerberos ilkelerini sistem kullanıcı adlarıyla eşleştirmek için kuralları tanımlamamız gerekiyor. Kerberos kimlik doğrulamasına izin vermek için IPA sunucusundaki /etc/krb5.conf dosyasını manuel olarak düzenlememiz gerekiyor.

Bunu yapmak için aşağıdaki iki satırı AD kullanıcılarını görecek herhangi bir makineye ekleyin.

$ sudo vim /etc/krb5.conf
[realms]
IPA_DOMAIN = {
....
  auth_to_local = RULE:[1:$1@$0](^.*@AD_DOMAIN$)s/@AD_DOMAIN/@ad_domain/
  auth_to_local = DEFAULT
}

Şimdi KDC ve SSSD hizmetini yeniden başlatın:

service krb5kdc restart
service sssd restart

6. Kullanıcıların AD etki alanından korunan kaynaklara erişimine izin verin

Artık kullanıcıların güvenilir kaynaklara erişebilmesi için IPA gruplarıyla eşleştirilmesi gerekiyor. Bu iki şekilde yapılabilir:

  • Güvenilir etki alanlarındaki kullanıcıları ve grupları IPA'daki harici bir gruba ekleyin. Harici grup, güvenilen etki alanı kullanıcılarına ve gruplarına güvenlik tanımlayıcılarına göre atıfta bulunmak için bir kapsayıcı görevi görür.
  • Harici grubu IPA'daki mevcut bir POSIX grubuyla eşleyin. Bu POSIX grubuna, bu grupla eşlenen tüm gelen güvenilir etki alanı kullanıcıları için varsayılan grup olarak kullanılacak uygun bir grup kimliği (gid) atanacaktır.

Güvenilir etki alanı kullanıcıları için harici bir POSIX grubu oluşturmak için

ipa group-add --desc='AD users external map' ad_users_external --external

Harici ad_admins_external grubu için bir POSIX grubu oluşturun:

ipa group-add --desc='AD users' ad_users

Şimdi AD kullanıcılarını POSIX grubuna ekleyin

ipa group-add-member ad_users_external --external "ad.computingforgeeks.com\Domain_User"

Örneğin:

Harici IdM grubunu üye olarak POSIX IdM grubuna ekleyin.

ipa group-add-member ad_users --groups ad_users_external

Artık kullanıcılar gösterildiği gibi IPA konsolunda mevcut olmalıdır:

7. Ormanlar arası güvenin test edilmesi

Artık AD'deki herhangi bir kullanıcıyı kullanarak bir IPA istemcisine bağlanarak ormanlar arası güveni test edebiliriz. Bu test için AD sunucusunda [e-posta korumalı] bir kullanıcımız var. Bu kullanıcıyı IPA'ya bağlı herhangi bir sunucuya giriş yapmak için kullanabiliriz.

Kullanıcının var olup olmadığını doğrulayın:

Kullanıcıyla giriş yapıp yapamadığınızı test edin:

Karar

Bu, IPA ile Active Directory arasında nasıl güven oluşturulacağına ilişkin bu kılavuzun sonunu işaret ediyor. Bu entegrasyon, kuruluşunuz genelindeki kullanıcıları ve kaynakları yönetmenizi kesinlikle kolaylaştıracaktır. Umarım bu sizin için önemli olmuştur.

İlgili kılavuzlar:

  • Active Directory olmadan Windows Sistemini FreeIPA Alanına Katılın
  • Kubernetes Kubectl CLI için Active Directory Kimlik Doğrulaması
  • Kullanıcı Kimlik Doğrulaması için TrueNAS'ı LDAP/Active Directory ile entegre edin

İlgili makaleler