In der heutigen IT-Welt ist die Integration von Linux-Servern in ein bestehendes Active Directory (AD) Netzwerk eine gängige Anforderung. Active Directory wird primär von Microsoft Windows-basierten Systemen verwendet, bietet aber auch Linux-Systemen zahlreiche Vorteile, wie die zentrale Authentifizierung und Verwaltung von Benutzern und Computern. Ein entscheidender Aspekt dieser Integration ist die Namensauflösung. Dieser Blog-Beitrag erklärt, wie die Namensauflösung mit Active Directory unter Linux funktioniert und welche Konfigurationen dafür nötig sind.
Was ist Namensauflösung?
Namensauflösung ist der Prozess, bei dem der Name eines Computers in eine IP-Adresse umgewandelt wird. Linux nutzt hierfür typischerweise den Domain Name System (DNS), um Netzwerkressourcen wie Server und Workstations zu identifizieren. In einem Active Directory-Umfeld ist der DNS-Dienst tief integriert, da AD selbst auf DNS angewiesen ist, um seine Komponenten wie Domain-Controller (DCs), Benutzer und Dienste zu finden.
Voraussetzungen für die Active Directory Namensauflösung unter Linux
- DNS-Server Konfiguration:
Damit ein Linux-Host mit AD korrekt funktioniert, muss er in der Lage sein, die Domänennamen des Active Directory in IP-Adressen aufzulösen. Dies erfordert eine ordnungsgemäße DNS-Konfiguration, bei der der AD-DNS-Server als primärer DNS-Server in der/etc/resolv.conf
Datei des Linux-Systems eingetragen wird.Beispiel:
nameserver 192.168.1.10 # IP-Adresse des AD-DNS-Servers
search domain.local # Die AD-Domäne
NTP (Network Time Protocol):
Active Directory erfordert eine genaue Zeitsynchronisation zwischen dem Linux-Client und den Domain-Controllern. Hierfür sollte der Linux-Host den NTP-Dienst verwenden, um die Zeit mit einem AD-Server zu synchronisieren. Dies ist wichtig, da AD-Kerberos-Authentifizierungen eine Zeitdifferenz von mehr als 5 Minuten ablehnen.
Installierte Pakete:
Um eine vollständige AD-Integration zu ermöglichen, werden einige Pakete auf dem Linux-Host benötigt. Dazu gehören:
- Samba: Ermöglicht die Teilnahme von Linux-Rechnern an einer Windows-Domäne.
- sssd (System Security Services Daemon): Bietet Authentifizierungs- und Benutzerverwaltungsdienste in einem AD-Umfeld.
- krb5 (Kerberos): Für die Authentifizierung mit dem AD-Kerberos-Protokoll.
Installieren Sie diese Pakete unter Ubuntu/Debian mit:
sudo apt-get install samba sssd krb5-user
Konfiguration der Namensauflösung
- Samba Konfiguration:
Samba ist das Kernelement für die Interaktion von Linux mit einem Windows-Server-Netzwerk. Die Konfigurationsdatei von Samba befindet sich unter/etc/samba/smb.conf
. Hier ist ein einfaches Beispiel:
[global]
workgroup = DOMAIN # Der NetBIOS-Name Ihrer AD-Domäne
realm = DOMAIN.LOCAL # Der vollständige DNS-Name Ihrer AD-Domäne
security = ads # AD-Modus für die Authentifizierung
kerberos method = secrets and keytab
[global]
workgroup = DOMAIN # Der NetBIOS-Name Ihrer AD-Domäne
realm = DOMAIN.LOCAL # Der vollständige DNS-Name Ihrer AD-Domäne
security = ads # AD-Modus für die Authentifizierung
kerberos method = secrets and keytab
Nachdem Samba konfiguriert wurde, können Sie den Linux-Host zur AD-Domäne hinzufügen:
sudo net ads join -U Administrator
DNS und SSSD Konfiguration:
Nachdem der Linux-Host erfolgreich in die AD-Domäne integriert wurde, ist es wichtig, die Konfiguration von sssd zu überprüfen. Die Datei /etc/sssd/sssd.conf
sollte wie folgt aussehen:
[sssd]
services = nss, pam
config_file_version = 2
domains = domain.local
[domain/domain.local]
id_provider = ad
access_provider = ad
auth_provider = ad
chpass_provider = ad
ad_domain = domain.local
krb5_realm = DOMAIN.LOCAL
krb5_server = dc.domain.local
Stellen Sie sicher, dass die Berechtigungen für diese Datei korrekt gesetzt sind:
sudo chmod 600 /etc/sssd/sssd.conf
DNS und Kerberos Einbindung:
Damit die Authentifizierung und Namensauflösung richtig funktioniert, muss der Linux-Host auf den DNS-Dienst des Active Directory zugreifen können. Die Datei /etc/krb5.conf
für die Kerberos-Konfiguration könnte folgendermaßen aussehen:
[libdefaults]
default_realm = DOMAIN.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
Überprüfung der Namensauflösung:
Sie können die DNS-Namensauflösung mit einfachen Befehlen überprüfen. Beispielsweise:
nslookup dc.domain.local
- Dies sollte die IP-Adresse des Domain Controllers zurückgeben, wenn die Namensauflösung korrekt funktioniert.
Test und Troubleshooting
Um sicherzustellen, dass die Namensauflösung und Authentifizierung korrekt funktionieren, können Sie testen, ob der Host die AD-Domäne und die Benutzer auflösen kann:
- Benutzerauflösung:
id benutzername@domain.local
Kerberos-Ticket erhalten:
kinit benutzername@DOMAIN.LOCAL
klist
- Dies zeigt das Kerberos-Ticket an, das für die Authentifizierung im Active Directory verwendet wird.
Fazit
Die Namensauflösung ist ein wesentlicher Bestandteil der Integration von Linux-Hosts in eine Active Directory-Umgebung. Eine korrekte DNS-Konfiguration, Kerberos-Authentifizierung und die Verwendung von Tools wie Samba und SSSD sind entscheidend, um eine reibungslose Kommunikation zwischen Linux- und Windows-Systemen zu gewährleisten. Mit den richtigen Einstellungen können Linux-Systeme effektiv in einem AD-Netzwerk betrieben und verwaltet werden.
Falls Sie Probleme oder spezifische Fragen haben, können Logdateien wie /var/log/syslog
, /var/log/sssd/sssd.log
und /var/log/samba/log.smbd
wertvolle Informationen zur Fehlersuche liefern.