RHEL 8 veya CentOS 8 ile Windows Active Directory Entegrasyonu

Kuruluşların çoğunda, kullanıcılar ve gruplar Windows Active Directory üzerinde oluşturulur ve yönetilir. Kimlik doğrulama amacıyla RHEL 8 ve CentOS 8 linux sunucularımızı AD (Active Directory) ile entegre edebiliriz, entegrasyon sonrası Active Directory üzerinde bulunan kullanıcılarımızla ilgili linux sunuclarda oturum açabiliyor olacağız. Bu sayede merkezden kimlik yönetimi işlemi yapmış olacağız. Bu yazıda ilgili linux sistemlerin realmd ile kimlik doğrulama isteklerini Active Directory üzerinden yapabilmesi için yapılandırma adımlarından bahsediyor olacağım.

 

Centos & RHEL Windows Active Directory Entegrasyonu

Centos & RHEL Windows Active Directory Entegrasyonu

Adım 1: Gerekli Paketlerin Kurulması

CentOS 8 / RHEL 8 AD entegrasyonu için bir dizi paket gereklidir. Aşağıdaki komutla kurulumuna başlayabiliriz:

$ sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat

 

Paket kurulumlarını  “y”  tuşu ile onaylıyoruz ve kurulumlarımız tamamlanıyor.

Last metadata expiration check: 0:19:18 ago on Fri 27 Sep 2019 09:45:40 PM EAT.
Package realmd-0.16.3-16.el8.x86_64 is already installed.
Package sssd-2.0.0-43.el8_0.3.x86_64 is already installed.
Package adcli-0.8.2-2.el8.x86_64 is already installed.
Package samba-common-4.9.1-8.el8.noarch is already installed.
Dependencies resolved.
===================================================================================================================================================
 Package                                  Arch                         Version                               Repository                       Size
===================================================================================================================================================
Installing:
 oddjob                                   x86_64                       0.34.4-7.el8                          AppStream                        83 k
 oddjob-mkhomedir                         x86_64                       0.34.4-7.el8                          AppStream                        52 k
 samba-common-tools                       x86_64                       4.9.1-8.el8                           BaseOS                          461 k
Installing dependencies:
 samba-libs                               x86_64                       4.9.1-8.el8                           BaseOS                          177 k

Transaction Summary
===================================================================================================================================================
Install  4 Packages

Total download size: 773 k
Installed size: 1.7 M
Is this ok [y/N]: y

 

Adım 2: CentOS 8 / RHEL 8’de Active Directory Etki Alanını Keşfetmek

AD entegrasyonu yapmadan önce, CentOS / RHEL 8 sunucularının AD alanını ait FQDN/Hostname’ini çözebildiğinden emin olmalıyız.

Sırasıyla aşağıdaki dosyaları inceleyerek DNS ayarlarımızı doğruluyoruz. Hosts dosyasında görüleceği üzere Domain Controller’ımın IP’si 10.61.61.34, FQDN’i dcsk.acme.local ve hostname’i ise dcsk olarak girdim ve kayıt ediyorum. Resolv.conf dosyasında da search karşılığına acme.local ve nameserver alanına ise DC IP’sini girdim. Siz de kendi ortam bilgilerinize göre iki dosyayı düzenleyiniz.

$ nano /etc/hosts
10.61.61.34 dcsk.acme.local dcsk

$ nano /etc/resolv.conf
search acme.local
nameserver 10.61.61.34


 

Yukarıdaki yapılandırma ayarlarımız doğru ise artık testimizi yapabiliriz. Aşağıdaki komutu çalıştırıyoruz:

$ realm  discover acme.local

 

Çıktısı buna benzer birşey ise yapılandırma ayarlarımız doğru gözükmektedir.

ACME.LOCAL
  type: kerberos
  realm-name: ACME.LOCAL
  domain-name: acme.local
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools
  login-formats: %[email protected]
  login-policy: allow-realm-logins
acme.local
  type: kerberos
  realm-name: ACME.LOCAL
  domain-name: acme.local
  configured: no

 

Adım 3: Active Directory Etki Alanına Katılmak

CentOS 8 / RHEL 8 makinesini Windows Active Directory etki alanıyla tümleştirmek için bir AD yönetici kullanıcı hesabı gereklidir.

Yönetici kullanıcı adı ve şifrenizin olduğundan emin olun. Ardından, CentOS 8 / RHEL 8 Linux sistemini bir Active Directory etki alanına katmak için aşağıdaki komutu çalıştırın. Ben burada Doman Admin grubuna üye olan Administrator hesabını kullandım siz Domain Admin grubuna üye başka bir hesap kullanabilirsiniz:

$ realm join acme.local -U Administrator

 

Bizden entegrasyın için kullanmış olduğumuz hesabın şifresini isteyecek. Şifremizi girdikten sonra etki alanına katılma işleminin başarılı ya da başarısız olduğunu anlamak için aşağıdaki komutu çalıştırıyoruz:

$ sudo realm list

#Aşağıdaki çıktıya göre etki alanına katılma işlemi başarı ile tamamlanmıştır.
ACME.LOCAL
  type: kerberos
  realm-name: ACME.LOCAL
  domain-name: acme.local
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools
  login-formats: %[email protected]
  login-policy: allow-realm-logins

 

Bir kereye mahsus aşağıdaki komutlar çalıştırılır.

sudo authselect select sssd
sudo authselect select sssd with-mkhomedir

 

sssd.conf yapılandırma dosyamız aşağıdaki gibi görünmelidir:

$ cat /etc/sssd/sssd.conf 

[sssd]
domains = ACME.LOCAL
config_file_version = 2
services = nss, pam

[domain/ACME.LOCAL]
ad_server = dcsk.acme.local
ad_domain = ACME.LOCAL
krb5_realm = ACME.LOCAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d
access_provider = ad

 

Eğer yapılandırma dosyasında herhangi bir değişiklik yapılırsa, değişikliğin geçerli olması için sssd servisi yeniden başlatılmalıdır.

sudo systemctl restart sssd

 

Servisin son durumu aşağıdaki gibi olmalıdır:

$ systemctl status sssd
 ● sssd.service - System Security Services Daemon
    Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
    Active: active (running) since Fri 2019-09-27 22:30:25 EAT; 37min ago
  Main PID: 32474 (sssd)
    CGroup: /system.slice/sssd.service
            ├─32474 /usr/sbin/sssd -i --logger=files
            ├─32478 /usr/libexec/sssd/sssd_be --domain acme.local --uid 0 --gid 0 --logger=files
            ├─32479 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
            └─32480 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
................................................................

 

Yapılan işlemlerin doğruluğunu ve entegrasyonun çalıştığını anlamak için Active Directory’de bulunan herhangi bir hesabın detaylarını çekmeye çalışabiliriz:

$ id [email protected]
uid=1239401181([email protected]) gid=1239400512(domain [email protected]) groups=1239400512(domain [email protected]),1239400572(denied rodc password replication [email protected]),1239401205([email protected]),1239401183([email protected]),1239401111([email protected])

 

Not: Eğer kullanıcyı  [email protected]  formatında kullanmak yerine direkt kullanıcıadi formatına çekmek isterseniz.  /etc/sssd/sssd.conf  dosyası içerisinde bulunan

use_fully_qualified_names = True
fallback_homedir = /home/%[email protected]%d

parametreleri

use_fully_qualified_names = False
fallback_homedir = /home/%u olarak

 

değiştirilmeli ve sssd servisi yeniden başlatılmalıdır.

sudo systemctl restart sssd

 

4. Adım: Erişimi Kontrol Edin – Kullanıcı / grupla sınırlandırın

Kayıtlı sunucuya erişim, yalnızca belirli kullanıcılara / gruplara izin verilerek sınırlandırılabilir.

Kullanıcıya erişim izni

SSH ve konsol aracılığıyla bir kullanıcının erişimine izin vermek için şu komutu kullanın:

$ realm permit [email protected]
$ realm permit [email protected] [email protected]

 

Gruba erişim izni – Örnekler

$ ream permit -g sysadmins
$ realm permit -g 'Security Users'
$ realm permit 'Domain Users' 'admin users'

 

Eğer yukarıdaki yetkilendirmenin yerine bütün domain kullanıcılarına erişim izni vermek istiyorsanız:

$ sudo realm permit --all

 

Ya da bütün domain kullanıcıların erişim iznini iptal etmek isterseniz:

$ sudo realm  deny --all

 

Adım 5: Sudo Erişimini Yapılandırın

Normal şartlarda ilk entegrasyon işleminden sonra domain kullanıcılarının kendilerini root haklarına yükseltme yetkisi olmayacaktır. Eğer domain kullanıcılarının gerek gördükleri zaman root haklarına sahip olmasını isterseniz, sudo izinlerinin tanımlanması gerekecektir.

Öncelikle sudo izinleri için ilgili dosyayı oluşturalım:

$ sudo vi /etc/sudoers.d/domain_admins

 

Tek kullanıcı için aşağıdaki gibi ilgili dosyada değişiklik yapmamız gerekecektir:

[email protected]        ALL=(ALL)       ALL

 

Bir kullanıcı daha ekleyelim:

[email protected]     ALL=(ALL)   ALL
[email protected]     ALL=(ALL)   ALL

 

Grup olarak tanımlama yapmak istendiği takdirde:

%[email protected]     ALL=(ALL)   ALL

 

İki veya üç adla grup eklemek:

%guvenlik\ [email protected]       ALL=(ALL)       ALL
%sistem\ super\ [email protected]      ALL=(ALL)       ALL

 

realmd


Abone ol
Bildir
guest
0 Yorum
Satır İçi Geri Bildirimler
Tüm yorumları görüntüle