Debian Linux in eine Active Directory Domäne integrieren
13.04.2008
19:14:14 Uhr50252 Aufrufe
21 Antworten
19:14:14 Uhr
21 Antworten
Hilfreich +5
SAMBA, WINBIND, NSSWITCH, PAM, KERBEROS, NTP
Wir wollen erreichen, dass man sich am Debian Server per SSH mit den Domänenbenutzer-Credentials anmelden kann.
Folgende Anleitung wurde mehrmals an frischen Systemen getestet - sollte also funktionieren.
Ich hoffe dem kunterbunten Internet-Anleitungs-Angebot zu diesem Thema endlich mal eine Anleitungs-Variante hinzugefügt zu haben, die wirklich auf Anhieb funktioniert ohne tagelange Fummelaktionen.
Wenn man die Anleitung Schritt für Schritt durchzieht müsste es binnen einer halben Stunde erledigt sein.
Wildes rumprobieren kann fast nur schief gehen.
Wer Formatierungsfehler findet, darf sie gerne behalten - oder aber korrigieren.
http://rapidshare.de/files/39134663/DEBIA ...
ACHTUNG! Zum Abspielen braucht man den VMware Movie Decoder!
Nach Installation des VMware Codecs lässt sich der Film z. B. im Windows Mediaplayer abspielen.
Der Debian Server muss ein Memberserver im AD werden, er braucht ein Computerkonto im AD.
Dieses legt er selbst an, es wird kein Computerkonto manuell im AD angelegt!
SAMBA ist das Linux Pendant zum Windows SMB bzw. CIFS System (Datei- und Druckerfreigabe).
SAMBA wird benötigt um den Debian Server zum Memberserver werden zu lassen.
Winbind löst AD Benutzerkonten und Gruppen auf, kann also die zu Benutzern und Gruppen gehörenden SIDs aus dem AD ziehen und in einer localen Datenbank unter /var/lib/samba/ die Zuordnung der gefundenen SIDs zu Unix UIDs und GIDs speichern. Das ist notwendig da Unix Systeme mit Active Directory SIDs nichts anzufangen wissen sondern nur UIDs und GIDs kennen die für Berechtigungen für Unix Dienste genutzt werden können.
Dabei ist wichtig dass Winbind UIDs und GIDs verwendet die bereits auf dem Unix System vorhandene Benutzer nicht schon benutzen. Welchen Range von UIDS bzw. GIDs Winbind für das Mapping verwenden soll definiert man über die Parameter "idmap uid = 10000-20000" bzw. "idmap gid = 10000-20000". Man könnte genausogut 1000000-150000 eintragen - hauptsache die verwendeten Werte sind ausserhalb der Bereiche die bereits Unix User auf dem System verwenden (siehe /etc/passwd).
Winbind wird über die SAMBA Konfigurationsdatei /etc/samba/smb.conf konfiguriert.
Net join ist ein Hilfsprogramm welches Teil der SAMBA Suite ist. Es generiert ein Computerkonto im AD für den Debian Server.
Dazu ist ein Domänenuser mit entsprechenden Berechtigungen notwendig (z. B. Domänenadministrator).
Nsswitch ist ein "Schalter" mit dem man definieren kann, welche Namensdienste genutzt werden sollen.
PAM dient dazu zu definieren, welche Authentisierungs- und Autorisierungsmechanismen Anwendungen nutzen können sollen.
NTP sorgt für eine genaue Systemzeit. Driftet die Systemzeit auf dem Windows Server und dem Debian Server auseinander, kann keine Kerberos Authentisierung funktionieren, da Kerberos ein Ticketingsystem ist das auf exakte Timestamps angewiesen ist.
Kerberos ist ein Authentisierungsprotokoll. Es ist vergleichbar mit einem "Ticketschalter" im Kino. Man bekommt eine "Eintrittskarte" die eine bestimmte Zeit gilt und für verschiedenste Dienste nutzbar ist, je nachdem wozu man berechtigt ist.
Kerberos hat den Vorteil von Single Sign-On - man muss sich nur einmal authentisieren, und hat dann automatisch Berechtigung auf alle Ressourcen zuzugreifen die von dem Kerberos Server kontrollierbar sind (Anmeldung, Dateizugriff, Druckerzugriff etc).
In aller Regel gilt z. B. bei einem Domaincontroller namens DC.FIRMA.DE
Damit die AD-Integration des Linux Servers einwandfrei funktioniert ist es wichtig dass..
einwandfrei auf beiden Servern funktionieren!
IP-Konfiguration: /etc/network/interfaces
Interface hochfahren
Man benötigt für die AD-Integration ein AD-Benutzerkonto mit entsprechenden Berechtigungen.
Dies kann ein Domänenadministrator sein. Es kann jedoch auch ein spezielles Benutzerkonto erstellt werden das die Berechtigung bekommt Objekte im AD anzulegen. Das ist notwendig da der Debian Server selbst ein Computerkonto im Active Directory anlegen muss und auch Berechtigungen braucht um Anfragen an das AD stellen zu können.
Die Anleitung bezieht sich auf folgende Testumgebung:
Das Konfigurations-Beispiel bezieht sich auf Server 2003 Standard Edition mit Servicepack 2 und Debian 4.0R3.
Domaincontroller
DNS Name: DC.FIRMA.DE
IP:192.168.178.140
Debian Server
DNS Name: DEBIAN.FIRMA.DE
IP: 192.168.178.150
/etc/krb5.conf
Hier eine detailierte Beschreibung möglicher Parameter der krb5.conf
/etc/ntp.conf
/etc/samba/smb.conf.
Hier eine detailliertere Beschreibung des winbind Dienstes
Hintergrundwissen "idmap":
Das Linux System hat auch eine lokale Benutzerverwaltung (/etc/passwd).
Jeder Benutzer und jede Gruppe benötigt eine eindeutige Kennung.
Im Active Directory sind dies die "SIDs". Die SID besteht aus dem Domänen-Identifikator und einer RID (Relative Identifier).
Jedes Benutzerkonto und jede Gruppe hat eine SID, eine eindeutige Sicherheitskennung.
Da Active Directory und Linux verschiedene Techniken für die Zuordnung von User- und Gruppennamen zu SIDs bzw. UID/GIDs benutzen, ist eine der Aufgaben von winbind, ein Mapping von Active Directory SIDs zu Linux UIDs/GIDs durchzuführen.
Diese Zuordnung (welche SID ist zu welcher UID/GID zugeordnet) wird auf dem Linux Server in einer lokalen Datenbank unter /var/lib/samba/winbindd_idmap.tib gespeichert.
Durch den Eintrag "idmap uid = 10000-20000" wird definiert, dass der Bereich von UID 10000 bis 20000 nicht von der internen Benutzerverwaltung verwendet wird, also für das Mapping von Active Directory SIDs zu Linux UIDs bzw. GIDs verwendet werden soll.
Testen der winbind Config mit
/etc/nsswitch.conf
Hier eine detailliertere Beschreibung der nsswitch Funktionalität
/etc/pam.d/common-auth
Hier eine detailliertere Beschreibung der pam.d Konfigurationsdateien
Kontrollieren ob SMBD, NMBD und WINBIND Dienste gestartet sind:
Was tun wenn es nicht funktioniert, oder wenn es "in der Regel" funktioniert und plötzlich nicht mehr funktioniert?
Es wird dann Zeit für das wofür man eigentlich bezahlt wird - Fehlersuche und Fehlerbeseitigung.
1. Teste die grundsätzliche Erreichbarkeit auf Netz- und Portebene
2. Teste die DNS Namensauflösung auf beiden Servern
Debian Server:
Windows Server:
3. Logfiles checken
Debian Server:
Windows Server:
4. Active Directory checken
5. Widerherstellung der Funktionalität
alias als Kürzel für Befehlsketten
Es gibt bestimmte Befehlsketten die man immer wieder braucht.
Zum Beispiel: Winbind Deamon beenden, Samba neu starten, Winbind Deamon wieder starten.
Um die notwendigen Befehle nicht wieder und wieder in voller Länge eintippen zu müssen, kann man sich "aliase" anlegen.
Ein alias ist ein "Verweis" auf eine Befehlskette.
Die aliase werden in die Datei /root/.bashrc eingetragen (wenn man als root arbeitet).
Beispiele
Folgende Anleitung wurde mehrmals an frischen Systemen getestet - sollte also funktionieren.
Ich hoffe dem kunterbunten Internet-Anleitungs-Angebot zu diesem Thema endlich mal eine Anleitungs-Variante hinzugefügt zu haben, die wirklich auf Anhieb funktioniert ohne tagelange Fummelaktionen.
Wenn man die Anleitung Schritt für Schritt durchzieht müsste es binnen einer halben Stunde erledigt sein.
Wildes rumprobieren kann fast nur schief gehen.
Wer Formatierungsfehler findet, darf sie gerne behalten - oder aber korrigieren.
Inhaltsverzeichnis
NEU! DEBIAN AD-INTEGRATION als Linux-Commandline HowTo Film (6MB gross)!
http://rapidshare.de/files/39134663/DEBIA ...
ACHTUNG! Zum Abspielen braucht man den VMware Movie Decoder!
Download Link VMware Codec
http://www.vmware.com/download/eula/movie ...Nach Installation des VMware Codecs lässt sich der Film z. B. im Windows Mediaplayer abspielen.
Hintergrundwissen
Der Debian Server muss ein Memberserver im AD werden, er braucht ein Computerkonto im AD.
Dieses legt er selbst an, es wird kein Computerkonto manuell im AD angelegt!
SAMBA ist das Linux Pendant zum Windows SMB bzw. CIFS System (Datei- und Druckerfreigabe).
SAMBA wird benötigt um den Debian Server zum Memberserver werden zu lassen.
Winbind löst AD Benutzerkonten und Gruppen auf, kann also die zu Benutzern und Gruppen gehörenden SIDs aus dem AD ziehen und in einer localen Datenbank unter /var/lib/samba/ die Zuordnung der gefundenen SIDs zu Unix UIDs und GIDs speichern. Das ist notwendig da Unix Systeme mit Active Directory SIDs nichts anzufangen wissen sondern nur UIDs und GIDs kennen die für Berechtigungen für Unix Dienste genutzt werden können.
Dabei ist wichtig dass Winbind UIDs und GIDs verwendet die bereits auf dem Unix System vorhandene Benutzer nicht schon benutzen. Welchen Range von UIDS bzw. GIDs Winbind für das Mapping verwenden soll definiert man über die Parameter "idmap uid = 10000-20000" bzw. "idmap gid = 10000-20000". Man könnte genausogut 1000000-150000 eintragen - hauptsache die verwendeten Werte sind ausserhalb der Bereiche die bereits Unix User auf dem System verwenden (siehe /etc/passwd).
Winbind wird über die SAMBA Konfigurationsdatei /etc/samba/smb.conf konfiguriert.
Net join ist ein Hilfsprogramm welches Teil der SAMBA Suite ist. Es generiert ein Computerkonto im AD für den Debian Server.
Dazu ist ein Domänenuser mit entsprechenden Berechtigungen notwendig (z. B. Domänenadministrator).
Nsswitch ist ein "Schalter" mit dem man definieren kann, welche Namensdienste genutzt werden sollen.
PAM dient dazu zu definieren, welche Authentisierungs- und Autorisierungsmechanismen Anwendungen nutzen können sollen.
NTP sorgt für eine genaue Systemzeit. Driftet die Systemzeit auf dem Windows Server und dem Debian Server auseinander, kann keine Kerberos Authentisierung funktionieren, da Kerberos ein Ticketingsystem ist das auf exakte Timestamps angewiesen ist.
Kerberos ist ein Authentisierungsprotokoll. Es ist vergleichbar mit einem "Ticketschalter" im Kino. Man bekommt eine "Eintrittskarte" die eine bestimmte Zeit gilt und für verschiedenste Dienste nutzbar ist, je nachdem wozu man berechtigt ist.
Kerberos hat den Vorteil von Single Sign-On - man muss sich nur einmal authentisieren, und hat dann automatisch Berechtigung auf alle Ressourcen zuzugreifen die von dem Kerberos Server kontrollierbar sind (Anmeldung, Dateizugriff, Druckerzugriff etc).
Vorraussetzungen
Zeitsynchronisation (NTP)
Da das Kerberos Protokoll, das der Debian Server nutzen soll um mit dem Active
Directory zu kommunizieren, stark von einer exakten Systemzeit abhängt, muss der
Debian Server als NTP Client und der Windows Server als NTP Client als auch NTP Server
konfiguriert sein, damit die Zeitsynchronität gewährleistet werden kann.
Der Windows Server bezieht in unserem Szenario die Systemzeit von einem externen NTP Server,
während der Debian Server als NTP Client die Systemzeit vom Windows Server bezieht.
Directory zu kommunizieren, stark von einer exakten Systemzeit abhängt, muss der
Debian Server als NTP Client und der Windows Server als NTP Client als auch NTP Server
konfiguriert sein, damit die Zeitsynchronität gewährleistet werden kann.
Der Windows Server bezieht in unserem Szenario die Systemzeit von einem externen NTP Server,
während der Debian Server als NTP Client die Systemzeit vom Windows Server bezieht.
DNS Namensauflösung (Forward Lookup und Reverse Lookup)
Ermitteln der verschiedenen Namen die der Domaincontroller trägt (Netbios, Workgroup, Domänen-Name, Kerberos-Realm)
Man kann die NETBIOS- und Workgroup Namen auf dem Server2003 ermitteln mit Befehl
Man kann die NETBIOS- und Workgroup Namen auf dem Server2003 ermitteln mit Befehl
01.
nbtstat –nDer Debian Server muss einen Reverse DNS Lookup auf den Domaincontroller
machen können, also die IP Adresse in den DNS Namen auflösen können.
Testen mit:
machen können, also die IP Adresse in den DNS Namen auflösen können.
Testen mit:
01.
host 192.168.178.140 02.
140.178.168.192.in-addr.arpa domain name pointer dc.firma.deIn aller Regel gilt z. B. bei einem Domaincontroller namens DC.FIRMA.DE
- der NETBIOS Name ist "DC"
- der Workgroup Name ist "FIRMA"
- der DNS Name ist "DC.FIRMA.DE"
- der Kerberos Realm ist "FIRMA.DE"
- der Domänen-Name ist "FIRMA.DE"
Damit die AD-Integration des Linux Servers einwandfrei funktioniert ist es wichtig dass..
- beide Server (Debian und DC) den Namen des anderen auflösen können
- Forward-Lookup (nslookup debian.firma.de bzw. nslookup dc.firma.de) als auch
- Reverse-Lookup (nslookup 192.168.178.140 bzw. nslookup 192.168.178.150)
einwandfrei auf beiden Servern funktionieren!
Debian IP Konfiguration
IP-Konfiguration: /etc/network/interfaces
01.
# The loopback network interface 02.
auto lo 03.
iface lo inet loopback 04.
# The primary network interface 05.
allow-hotplug eth0 06.
iface eth0 inet static 07.
address 192.168.178.150 08.
netmask 255.255.255.0 09.
network 192.168.178.0 10.
broadcast 192.168.178.255 11.
gateway 192.168.178.1DNS Konfiguration: /etc/resolv.conf
01.
search firma.de 02.
nameserver 192.168.178.140Interface hochfahren
01.
ifdown eth0 02.
ifup eth0Berechtigungen im Active Directory
Man benötigt für die AD-Integration ein AD-Benutzerkonto mit entsprechenden Berechtigungen.
Dies kann ein Domänenadministrator sein. Es kann jedoch auch ein spezielles Benutzerkonto erstellt werden das die Berechtigung bekommt Objekte im AD anzulegen. Das ist notwendig da der Debian Server selbst ein Computerkonto im Active Directory anlegen muss und auch Berechtigungen braucht um Anfragen an das AD stellen zu können.
Testumgebung
Die Anleitung bezieht sich auf folgende Testumgebung:
Das Konfigurations-Beispiel bezieht sich auf Server 2003 Standard Edition mit Servicepack 2 und Debian 4.0R3.
Domaincontroller
DNS Name: DC.FIRMA.DE
IP:192.168.178.140
Debian Server
DNS Name: DEBIAN.FIRMA.DE
IP: 192.168.178.150
Debian Server Konfiguration
1. Installation von SAMBA, Winbind, NTP, ntpdate, Kerberos, SSH
01.
apt-get install libkrb53 krb5-{admin-server,kdc} samba winbind ntpdate ntp sshBei der Installation die Debian CD1 bereithalten, danach wird gefragt.
TIP: Wenn die CD in der sourcelist (/etc/apt/sources.list) auskommentiert ist, dann wird sie für die Installation nicht mehr benötigt.
Download des Debian ISO Files hier:
http://cdimage.debian.org/debian-cd/4.0_r ...
Nach der Installation werden ein paar Dinge abgefragt, z. B. Netbios Name usw.
Diese Angaben kann man später in den Config-Dateien wieder ändern falls sie nicht stimmen
sollten.
TIP: Wenn die CD in der sourcelist (/etc/apt/sources.list) auskommentiert ist, dann wird sie für die Installation nicht mehr benötigt.
Download des Debian ISO Files hier:
http://cdimage.debian.org/debian-cd/4.0_r ...
Nach der Installation werden ein paar Dinge abgefragt, z. B. Netbios Name usw.
Diese Angaben kann man später in den Config-Dateien wieder ändern falls sie nicht stimmen
sollten.
2. Dienste beenden
01.
/etc/init.d/samba stop 02.
/etc/init.d/winbind stop 03.
/etc/init.d/ntp stop3. Backup der Linux Config Dateien
Es ist ratsam zunächst alle Config Dateien auf dem Debian System zu sichern
bevor man anfängt sie zu editieren. Wenn man beispielsweise bei der PAM
Konfiguration die Config zerschießt ist u. U. keine Anmeldung am System
mehr möglich.
bevor man anfängt sie zu editieren. Wenn man beispielsweise bei der PAM
Konfiguration die Config zerschießt ist u. U. keine Anmeldung am System
mehr möglich.
01.
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak 02.
cp /etc/nsswitch.conf /etc/nsswitch.conf.bak 03.
cp /etc/krb5.conf /etc/krb5.conf.bak 04.
cp –r /etc/pam.d /etc/pam.d.bak 05.
cp –r /var/lib/samba /var/lib/samba.bak4. Konfiguration der Dienste
4.1.KERBEROS
/etc/krb5.conf
Hier eine detailierte Beschreibung möglicher Parameter der krb5.conf
01.
[libdefaults] 02.
Default_realm = FIRMA.DE 03.
#The following krb5.conf variables are only for MIT Kerberos. 04.
krb4_config = /etc/krb.conf 05.
krb4_realms = /etc/krb.realms 06.
kdc_timesync = 1 07.
ccache_type = 4 08.
forwardable = true 09.
proxiable = true 10.
[realms] 11.
FIRMA.DE = { 12.
kdc = dc.firma.de 13.
admin_server = dc.firma.de 14.
} 15.
[domain_realm] 16.
.firma.de = FIRMA.DE 17.
[login] 18.
krb4_convert = true 19.
krb4_get_tickets = false 20.
4.2.NTP
/etc/ntp.conf
01.
server 192.168.178.1404.2.1 ntpdate
01.
ntpdate dc.firma.de4.2.2 NTP Dienst starten
01.
/etc/init.d/ntp start4.2.3 Zeitsynchronisation testen
01.
ntpq –p 02.
date4.2.4. Bei Bedarf Zeitzone ändern (Europe/Berlin)
01.
tzconfig4.3 WINBIND
/etc/samba/smb.conf.
Hier eine detailliertere Beschreibung des winbind Dienstes
01.
[global] 02.
workgroup = FIRMA (Arbeitsgruppen Name; in aller Regel Domänen-Name ohne Suffix) 03.
realm = FIRMA.DE (Domänen-Name) 04.
netbios name = DEBIAN (NETBIOS-Name des Debian Servers; max. 15 Zeichen lang!) 05.
security = ADS (Active Directory soll die Authentisierung stellen) 06.
idmap uid = 10000-20000 (Range der UIDs für das Mapping von AD-RIDs auf UIDs) 07.
idmap gid = 10000-20000 (Range der GIDs für das Mapping von AD-RIDs auf GIDs) 08.
template shell = /bin/bash (Shell die der Benutzer nach der Anmeldung bekommt) 09.
winbind use default domain = yes (User muss kein Prefix bei der Anmeldung angeben)Hintergrundwissen "idmap":
Das Linux System hat auch eine lokale Benutzerverwaltung (/etc/passwd).
Jeder Benutzer und jede Gruppe benötigt eine eindeutige Kennung.
Im Active Directory sind dies die "SIDs". Die SID besteht aus dem Domänen-Identifikator und einer RID (Relative Identifier).
Jedes Benutzerkonto und jede Gruppe hat eine SID, eine eindeutige Sicherheitskennung.
Da Active Directory und Linux verschiedene Techniken für die Zuordnung von User- und Gruppennamen zu SIDs bzw. UID/GIDs benutzen, ist eine der Aufgaben von winbind, ein Mapping von Active Directory SIDs zu Linux UIDs/GIDs durchzuführen.
Diese Zuordnung (welche SID ist zu welcher UID/GID zugeordnet) wird auf dem Linux Server in einer lokalen Datenbank unter /var/lib/samba/winbindd_idmap.tib gespeichert.
Durch den Eintrag "idmap uid = 10000-20000" wird definiert, dass der Bereich von UID 10000 bis 20000 nicht von der internen Benutzerverwaltung verwendet wird, also für das Mapping von Active Directory SIDs zu Linux UIDs bzw. GIDs verwendet werden soll.
Testen der winbind Config mit
01.
testparm4.4 NSSWITCH
/etc/nsswitch.conf
Hier eine detailliertere Beschreibung der nsswitch Funktionalität
01.
# Example configuration of GNU Name Service Switch functionality. 02.
# If you have the `glibc-doc-reference' and `info' packages installed, try: 03.
# `info libc "Name Service Switch"' for information about this file. 04.
passwd: compat winbind 05.
group: compat winbind 06.
shadow: compat 07.
hosts: files dns 08.
networks: files 09.
protocols: db files 10.
services: db files 11.
ethers: db files 12.
rpc: db files 13.
netgroup: nis4.5.PAM
/etc/pam.d/common-auth
Hier eine detailliertere Beschreibung der pam.d Konfigurationsdateien
01.
# /etc/pam.d/common-auth - authentication settings common to all services 02.
# This file is included from other service-specific PAM config files, 03.
# and should contain a list of the authentication modules that define 04.
# the central authentication scheme for use on the system 05.
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the 06.
# traditional Unix authentication mechanisms. 07.
# 08.
auth sufficient pam_winbind.so 09.
auth required pam_unix.so nullok_secure use_first_pass5. Debian Server in die Domäne integrieren
5.1 Checkliste
01.
host 192.168.178.140 (Funktioniert der Reverse Lookup?) 02.
nslookup dc.firma.de (Funktioniert die DNS Namensauflösung?) 03.
ping dc.firma.de (Ist der Domaincontroller erreichbar?) 04.
telnet dc.firma.de 445 (Port TCP445 erreichbar?) 05.
telnet dc.firma.de 139 (Port TCP139 erreichbar?) 06.
ntpq –p (Läuft die Zeitsynchronisation?) 07.
tzconfig (Stimmt die Zeitzone?) 08.
ps –ef | grep samba (Testen ob der Dienst läuft - wenn ja, stoppen!) 09.
ps –ef | grep winbind (Testen ob der Dienst läuft - wenn ja, stoppen!) 10.
/etc/init.d/winbind stop (winbindd stoppen!) 11.
/etc/init.d/samba stop (smbd / nmbd stoppen!) 12.
13.
rm –rf /var/lib/samba/* (eventuell vorhandene winbind cache DB löschen!)5.2 net join
01.
net ads join –U Administrator (Das ist der Domänen-Administrator oder ein Benutzerkonto das berechtigt ist Objekte im AD anzulegen)6. Dienste starten
01.
/etc/init.d/samba start 02.
/etc/init.d/winbind startKontrollieren ob SMBD, NMBD und WINBIND Dienste gestartet sind:
01.
ps –ef | grep samba 02.
ps –ef | grep winbind7. Funktionalität testen
01.
wbinfo –t (zeigt an ob das RPC trust secret passt) 02.
wbinfo -a Administrator%Passwort (zeigt an ob sich AD-User Administrator über winbind authentisieren kann) 03.
wbinfo –u (zeigt die Active Directory Benutzer an) 04.
wbinfo –g (zeigt die Active Directory Gruppen an)01.
ssh Administrator@localhost (testen ob man sich lokal per SSH als Administrator (oder andere AD-Benutzer) anmelden kann) 02.
init 6 (Debian Server neu starten und schaun ob die Dienste beim Neustart sauber starten) 03.
update-rc.d samba defaults (Dienste, die eventuell nicht automatisch starten, zu den Autostart Services hinzufügen) 04.
update-rc.d ntp defaults 05.
update-rc.d winbind defaults8. Fehlersuche
Was tun wenn es nicht funktioniert, oder wenn es "in der Regel" funktioniert und plötzlich nicht mehr funktioniert?
Es wird dann Zeit für das wofür man eigentlich bezahlt wird - Fehlersuche und Fehlerbeseitigung.
1. Teste die grundsätzliche Erreichbarkeit auf Netz- und Portebene
- ping IP-Adresse (beidseitig)
- telnet 192.168.178.140 445
- telnet 192.168.178.140 139
2. Teste die DNS Namensauflösung auf beiden Servern
Debian Server:
- host 192.168.178.140 (funktioniert Reverse-Lookup?)
- host dc.firma.de (funktioniert Forward-Lookup?)
- ping dc.firma.de (funktioniert Layer3 Konnektivität?)
Windows Server:
- nslookup 192.168.178.150
- nslookup debian.firma.de
- ping debian.firma.de
3. Logfiles checken
Debian Server:
- /var/log/samba/log.winbindd
- /var/log/messages
Windows Server:
- Ereignisanzeige
4. Active Directory checken
- Ist das Computerkonto des Debian Servers deaktiviert? Wenn ja - aktivieren.
- Ist das Computerkonto des Debian Servers gelöscht? Wenn ja - neu anlegen mit "net ads join -U Administrator" auf dem Debian-Server. Computerkonto nicht manuell auf dem DC anlegen!
5. Widerherstellung der Funktionalität
- Siehe oben in der Anleitung ab Abschnitt 5.
9. Tips & Tricks
alias als Kürzel für Befehlsketten
Es gibt bestimmte Befehlsketten die man immer wieder braucht.
Zum Beispiel: Winbind Deamon beenden, Samba neu starten, Winbind Deamon wieder starten.
Um die notwendigen Befehle nicht wieder und wieder in voller Länge eintippen zu müssen, kann man sich "aliase" anlegen.
Ein alias ist ein "Verweis" auf eine Befehlskette.
Die aliase werden in die Datei /root/.bashrc eingetragen (wenn man als root arbeitet).
Beispiele
- rs (steht für "restart") und führt zu: Stoppen des winbind deamons, neustart des samba deamons, start des winbind deamons
01.
vi /root/.bashrc 02.
alias rs="/etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start"- cleanup führt zu: Stoppen von Winbind und Samba, löschen der temp. winbind Datenbank, Anlegen von Computerkonto im AD, neustart von samba und winbind, überprüfung der AD-Benutzer Namensauflösung
01.
vi /root/.bashrc 02.
alias cleanup="/etc/init.d/winbind stop && /etc/init.d/samba stop && rm -rf /var/lib/samba/* && net ads join -U Administrator && rs && wbinfo -u"
Dani schreibt am 20.04.2008 um 22:23:45 Uhr
Moin,
endlich.....gibt es im Netz eine Anleitung wo alles beinhaltet. Bisher habe ich eine kl. Linksammlung wo die einzelnen Themen (winbind, Kerberos, etc...) beinhaltet. Die ist nun gelöscht und durch diesen Link hier ersetzt. Dank dir....
Vllt. oben im Howto das klassische Inhaltsverzeichnis hinzufügen.
Grüße
Dani
endlich.....gibt es im Netz eine Anleitung wo alles beinhaltet. Bisher habe ich eine kl. Linksammlung wo die einzelnen Themen (winbind, Kerberos, etc...) beinhaltet. Die ist nun gelöscht und durch diesen Link hier ersetzt. Dank dir....
Vllt. oben im Howto das klassische Inhaltsverzeichnis hinzufügen.
Grüße
Dani
spacyfreak schreibt am 21.04.2008 um 20:06:27 Uhr
Vllt. oben im Howto das klassische
Inhaltsverzeichnis hinzufügen.
Voila - ein Inhaltsverzeichnis machts schon übersichtlicher.Inhaltsverzeichnis hinzufügen.
riger79 schreibt am 15.05.2008 um 10:51:21 Uhr
Das HOWTO ist wirklich gelungen. Vielen Dank!
Folgende Anmerkungen bzw. Ergänzungen möchte ich noch anfügen:
ad 1. Installation von SAMBA, Winbind, NTP, ntpdate, Kerberos, SSH
wenn die cd in der sourcelist (/etc/apt/sources.list) auskommentiert ist, dann wird sie für die Installation nicht mehr benötigt.
ad 4.5. PAM
common-auth
wenn die Zeile
auth required pam_unix.so nullok_secure
noch um "use_first_pass" zu
auth required pam_unix.so nullok_secure use_first_pass
ergänzt wird, klappt die Anmeldung mit lokalen (nicht-Domänen) Konten sofort (ohne zweimalige Passworteingabe)
damit bei der ersten Anmeldung am Rechner ein lokales Home-Verzeichnis angelegt wird, kann in
common-session als erster Eintrag die Zeile
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
eingefügt werden. Jetzt muss nur noch ein Wurzelverzeichnis für die Domainuser (z.b. /home/DOMAINNAME) angelegt werden...
direkt dahinter sollte noch
session sufficient pam_winbind.so
stehen, damit der gdm bereits beim ersten Anmeldeversuch beim AD nachfragt.
Gruß
Riger
Folgende Anmerkungen bzw. Ergänzungen möchte ich noch anfügen:
ad 1. Installation von SAMBA, Winbind, NTP, ntpdate, Kerberos, SSH
wenn die cd in der sourcelist (/etc/apt/sources.list) auskommentiert ist, dann wird sie für die Installation nicht mehr benötigt.
ad 4.5. PAM
common-auth
wenn die Zeile
auth required pam_unix.so nullok_secure
noch um "use_first_pass" zu
auth required pam_unix.so nullok_secure use_first_pass
ergänzt wird, klappt die Anmeldung mit lokalen (nicht-Domänen) Konten sofort (ohne zweimalige Passworteingabe)
damit bei der ersten Anmeldung am Rechner ein lokales Home-Verzeichnis angelegt wird, kann in
common-session als erster Eintrag die Zeile
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
eingefügt werden. Jetzt muss nur noch ein Wurzelverzeichnis für die Domainuser (z.b. /home/DOMAINNAME) angelegt werden...
direkt dahinter sollte noch
session sufficient pam_winbind.so
stehen, damit der gdm bereits beim ersten Anmeldeversuch beim AD nachfragt.
Gruß
Riger
spacyfreak schreibt am 15.05.2008 um 16:38:37 Uhr
@Riger79
vielen Dank, dafuer kriegst du den Forums-Oskar!!!
Die Info mit der zweimaligen Passworteingabe bei Nutzung lokaler Accounts hat mir noch gefehlt. Das wollte ich demnächst mal "erkunden" woran das liegt.
Der Rest ist auch mehr als hilfreich.
Super!
vielen Dank, dafuer kriegst du den Forums-Oskar!!!
Die Info mit der zweimaligen Passworteingabe bei Nutzung lokaler Accounts hat mir noch gefehlt. Das wollte ich demnächst mal "erkunden" woran das liegt.
Der Rest ist auch mehr als hilfreich.
Super!
riger79 schreibt am 15.05.2008 um 18:18:10 Uhr
Gern geschehen, die Hauptarbeit hattest Du ja bereits erledigt!
Ein paar Anmerkungen möchte ich noch nachschieben
Schöne Grüße
Riger
Ein paar Anmerkungen möchte ich noch nachschieben
- Für die Kerberos-Unterstützung reicht das Paket krb5-user, die Pakete krb5-{admin-server,kdc} sind nur zum Betrieb eines eigenen Kerberos-Servers nötig (das macht der AD-DC).
- ssh ist immer gut, im Zusammenhang des HowTo aber nur für den Test der lokalen Authentisierung über ein Domänenkonto nötig. Die eigentliche AD-Integration erfordert kein SSH...
- Ein Problem, das mir ab und an begegnet ist, besteht darin, dass die Namensauflösung durcheinandergerät (konkret: PING auf einen FQDN scheitert) und daher die AD-Integration nicht fehlerfrei läuft. Ursache ist offenbar die AVAHI-Konfiguration in der nsswitch.conf. Abhilfe schafft in diesem Fall, den Namen und den FQDN des Domaincontrollers nebst seiner IP-Adresse im Hostfile einzutragen oder in der nsswitch.conf die Zeile "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4" durch "hosts: files dns" zu ersetzen...
Schöne Grüße
Riger
Mysterio1 schreibt am 16.06.2008 um 11:44:50 Uhr
Hallo,
Erstmal großes Lob!
Hab vor einer woche zum erstenmal angefangen mit Linux zu arbeite (Debian aufgesetzt um daraus einen Fileserver zu machen).
Und trotzdem hab ich es dank diesem tutorial geschafft.
Ich schaffs zwar leider noch nicht im windows explorer drauf zuzugreifen aber das wird schon ^^.
So nun zu einer Änderung bei der neuesten Version von Winbind
funktioniert idmap uid = 10000-20000
idmap gid = 10000-20000
leider nicht.
Es heißt jetzt winbind uid = 10000-20000
winbind gid = 10000-20000.
Hab mich leider geirrt es funktioniert doch nicht.
Wenn ich ssh Administrator@localhost versuche steht in der auth.log:
Jun 16 11:49:08 fileserver sshd[5334]: Failed none for invalid user mhabicher from 127.0.0.1 port 43746 ssh2
Jun 16 11:49:11 fileserver pam_winbind[5334]: request failed: Wrong Password, PAM error was Authentication failure (7), NT error was NT_STATUS_WRONG_PASSWORD
Jun 16 11:49:11 fileserver pam_winbind[5334]: user `test' denied access (incorrect password or invalid membership)
kann mir einer sagen was nicht stimmt?
mfg
Erstmal großes Lob!
Hab vor einer woche zum erstenmal angefangen mit Linux zu arbeite (Debian aufgesetzt um daraus einen Fileserver zu machen).
Und trotzdem hab ich es dank diesem tutorial geschafft.
Ich schaffs zwar leider noch nicht im windows explorer drauf zuzugreifen aber das wird schon ^^.
So nun zu einer Änderung bei der neuesten Version von Winbind
funktioniert idmap uid = 10000-20000
idmap gid = 10000-20000
leider nicht.
Es heißt jetzt winbind uid = 10000-20000
winbind gid = 10000-20000.
Hab mich leider geirrt es funktioniert doch nicht.
Wenn ich ssh Administrator@localhost versuche steht in der auth.log:
Jun 16 11:49:08 fileserver sshd[5334]: Failed none for invalid user mhabicher from 127.0.0.1 port 43746 ssh2
Jun 16 11:49:11 fileserver pam_winbind[5334]: request failed: Wrong Password, PAM error was Authentication failure (7), NT error was NT_STATUS_WRONG_PASSWORD
Jun 16 11:49:11 fileserver pam_winbind[5334]: user `test' denied access (incorrect password or invalid membership)
kann mir einer sagen was nicht stimmt?
mfg
odcheck schreibt am 24.07.2008 um 09:34:59 Uhr
Also erstmal super Anleitung - Debian Linux in eine Active Directory Domäne integrieren -
nun zu meinem Problem.
Ich kann mich auch wunderbar mit meinen lokalen Unix Accounts anmelden nur melde ich mich als root an dann kommt der hinweis das Kennwort wäre abgelaufen "...expired" es hilft nur ein neues root Kennwort zu vergeben was aber in diesem Falle nicht im sinne des Erfinders ist.
Sobald ich also das Kennwort geändert habe und es mit passwd wieder auf das Kennwort setze was ich ja haben möchte kommt es wieder zu "....expired"
Wo kann ich es Einstellen das es nicht abläuft?
-------> Nachtrag... einer meiner Kollegen hatte im AD mal einen Konto "root" erstellt, ich habe jetzt lediglich den Haken bei "Kennwort läuft nie ab" gesetzt und gut war.
Gilt zu klären warum er einen User "root" im AD erstellt hat?
Und warum im auth.log zu erst für root winbind auth geprüft wird bei root? Ist das auich der Fall wenn es den User "root" nicht im AD gibt.
Ich nehme es mal an. Feedback gebe ich Euch sobald ich das getestet habe.
nun zu meinem Problem.
Ich kann mich auch wunderbar mit meinen lokalen Unix Accounts anmelden nur melde ich mich als root an dann kommt der hinweis das Kennwort wäre abgelaufen "...expired" es hilft nur ein neues root Kennwort zu vergeben was aber in diesem Falle nicht im sinne des Erfinders ist.
Sobald ich also das Kennwort geändert habe und es mit passwd wieder auf das Kennwort setze was ich ja haben möchte kommt es wieder zu "....expired"
Wo kann ich es Einstellen das es nicht abläuft?
-------> Nachtrag... einer meiner Kollegen hatte im AD mal einen Konto "root" erstellt, ich habe jetzt lediglich den Haken bei "Kennwort läuft nie ab" gesetzt und gut war.
Gilt zu klären warum er einen User "root" im AD erstellt hat?
Und warum im auth.log zu erst für root winbind auth geprüft wird bei root? Ist das auich der Fall wenn es den User "root" nicht im AD gibt.
Ich nehme es mal an. Feedback gebe ich Euch sobald ich das getestet habe.
ultra101 schreibt am 09.09.2008 um 16:13:13 Uhr
Mitunter hat man Adminrechte nur in einer OU einer übergeordneten Domäne.
Net ads join erzeugt auf Wunsch ein Computerkonto gezielt in einer OU. Wenn Firma.de eine OU Namens OUAussenstelle/Clients/Linux hat, und dort ein Computerkonto angelegt werden soll:
net ads join createcomputer='OUAussenstelle/Clients/Linux' -U Administrator
Net ads join erzeugt auf Wunsch ein Computerkonto gezielt in einer OU. Wenn Firma.de eine OU Namens OUAussenstelle/Clients/Linux hat, und dort ein Computerkonto angelegt werden soll:
net ads join createcomputer='OUAussenstelle/Clients/Linux' -U Administrator
spacyfreak schreibt am 09.09.2008 um 20:42:41 Uhr
Also ich bilde mir allmählich ein ich hätte ein Händchen dafür komblizierte Dinge strukturiert zu vermitteln.
Meint ihr es würde sich lohnen ein Spendenkonto einzurichten? Ich habe 5 Kinder zu ernähren!!!
Meint ihr es würde sich lohnen ein Spendenkonto einzurichten? Ich habe 5 Kinder zu ernähren!!!
the-buddah schreibt am 15.11.2008 um 00:10:23 Uhr
hi.
ich hab gerade mein Debian auch mit einem Domain Authentifizierung "ausgestattet".
Das hat auch funktioniert... bis ich einen neustart gemacht habe!
Jetzt darf ich bei jedem neustart den Befehl 'net rpc join -U Administrator' eingeben und danach das Passwort des Administrators!
Das ist sehr unpraktisch da es eventuell sein kann das auch jemand anders den Server durchbooten muss und der kennt nicht (und soll es auch nicht kennen) das Administrator Passwort des Windows Servers.
wo liegt mein Fehler?
ich weiß nämlich nicht mehr weiter.
Danke schonmal
[Edit] habs selber gelöst!
Problem war das Samba und winbind im Runlevel zur selben Zeit (selbe startID gehabt)gestartet wurden. Nur doof das Samba länger brauchte zum starten als winbind und darum hat die authentifizierung nicht funktioniert.
Raffi
ich hab gerade mein Debian auch mit einem Domain Authentifizierung "ausgestattet".
Das hat auch funktioniert... bis ich einen neustart gemacht habe!
Jetzt darf ich bei jedem neustart den Befehl 'net rpc join -U Administrator' eingeben und danach das Passwort des Administrators!
Das ist sehr unpraktisch da es eventuell sein kann das auch jemand anders den Server durchbooten muss und der kennt nicht (und soll es auch nicht kennen) das Administrator Passwort des Windows Servers.
wo liegt mein Fehler?
ich weiß nämlich nicht mehr weiter.
Danke schonmal
[Edit] habs selber gelöst!
Problem war das Samba und winbind im Runlevel zur selben Zeit (selbe startID gehabt)gestartet wurden. Nur doof das Samba länger brauchte zum starten als winbind und darum hat die authentifizierung nicht funktioniert.
Raffi
Chef69 schreibt am 18.05.2009 um 16:01:03 Uhr
Mir ist noch ein kleiner Schreibfehler in dieser Anleitung in der /etc/krb5.conf aufgefallen:
[libdefaults]
Default_realm = FIRMA.DE
Es muss hier default_realm = FIRMA.DE mit kleinem d angegeben werden, sonst funktioniert z.B. der kinit "user" nicht und wird mit folgendem Fehler quittiert:
kinit(v5): Configuration file does not specify default realm when parsing name "user"
Ein weiterer Punkt betrifft die kadmind Fehlermeldung beim Booten des Systems die im Zusammennhang mit dem installierten Paket krb5-admin-server auftritt, welches nicht benötigt wird.
Diese Fehlermeldung kann ganz einfach durch Deaktivierung dieses Dienstes mit folgendem Befehl als Root behoben werden:
update-rc.d -f krb5-admin-server remove
Gruß
[libdefaults]
Default_realm = FIRMA.DE
Es muss hier default_realm = FIRMA.DE mit kleinem d angegeben werden, sonst funktioniert z.B. der kinit "user" nicht und wird mit folgendem Fehler quittiert:
kinit(v5): Configuration file does not specify default realm when parsing name "user"
Ein weiterer Punkt betrifft die kadmind Fehlermeldung beim Booten des Systems die im Zusammennhang mit dem installierten Paket krb5-admin-server auftritt, welches nicht benötigt wird.
Diese Fehlermeldung kann ganz einfach durch Deaktivierung dieses Dienstes mit folgendem Befehl als Root behoben werden:
update-rc.d -f krb5-admin-server remove
Gruß
EvilToken schreibt am 13.11.2009 um 21:21:41 Uhr
Hallo alle Zusammen,
erstmal... echt sehr gelungene Anleitung. Leider hab ich aber auch noch Probleme mit der ganzen Sache.
In der winbind log steht Wörtlich: "krb5_get_credentials failed for ivo-dc1$@IVONET (Cannot resolve network address for KDC in requested realm)"
Ich vermute jetzt das an dem Namen: ivo-dc1$@IVONET irgendwas falsch ist. Auf sämtlichen google Seiten steht aber dort ein domain Name, also bei mir solte das dann: ivo-dc1$@IVONET.LOCAL sein. Ist das der Fehler?
Ich möchte betonen, dass ich mich strikt an die Anleitung gehalten habe.
Was ich mir aber auch noch vorstellen kann ist, dass da ich einen Server 2008 einsetzte, es dort irgend welche Problem geben könnte. Stichwort Kerberos Ticket checksum Verschlüsselung.
Es wäre super wenn wir das Ganze nochmal aufleben lassen, da doch schon ein Jahr vergangen ist und sich unter Umständen etwas geändert hat.
Gruß EvilToken
erstmal... echt sehr gelungene Anleitung. Leider hab ich aber auch noch Probleme mit der ganzen Sache.
In der winbind log steht Wörtlich: "krb5_get_credentials failed for ivo-dc1$@IVONET (Cannot resolve network address for KDC in requested realm)"
Ich vermute jetzt das an dem Namen: ivo-dc1$@IVONET irgendwas falsch ist. Auf sämtlichen google Seiten steht aber dort ein domain Name, also bei mir solte das dann: ivo-dc1$@IVONET.LOCAL sein. Ist das der Fehler?
Ich möchte betonen, dass ich mich strikt an die Anleitung gehalten habe.
Was ich mir aber auch noch vorstellen kann ist, dass da ich einen Server 2008 einsetzte, es dort irgend welche Problem geben könnte. Stichwort Kerberos Ticket checksum Verschlüsselung.
Es wäre super wenn wir das Ganze nochmal aufleben lassen, da doch schon ein Jahr vergangen ist und sich unter Umständen etwas geändert hat.
Gruß EvilToken
Johnny08 schreibt am 25.11.2009 um 12:00:00 Uhr
Hi,
vielen Dank erstmal für die Anleitung, die ist super!!
Jedenfalls habe ich folgende Erfahrunge gemacht: Der Domänen-User den man zum Integrieren des Debian-Systemes in die ADS mit netjoin benutzt darf keine Sonderzeichen in seinem Usernamen haben. Sonst gibt es eine kryptische Fehlermeldung, die ich später noch genau posten werde.
Ich hab eine ganze Weile gebraucht um dahinter zu kommen, vielleicht hilft es ja jemanden.
Gruß,
Jonathan
vielen Dank erstmal für die Anleitung, die ist super!!
Jedenfalls habe ich folgende Erfahrunge gemacht: Der Domänen-User den man zum Integrieren des Debian-Systemes in die ADS mit netjoin benutzt darf keine Sonderzeichen in seinem Usernamen haben. Sonst gibt es eine kryptische Fehlermeldung, die ich später noch genau posten werde.
Ich hab eine ganze Weile gebraucht um dahinter zu kommen, vielleicht hilft es ja jemanden.
Gruß,
Jonathan
Flouw schreibt am 11.12.2009 um 15:13:47 Uhr
Hallo,
erstmal danke für die super Anleitung!
Ich habe mittlerweile mehrere Debian Lennys in eine Windows 2000 Domäne mit Holfe dieser Anleitung integriert bekommen.
Jetzt habe ich mittels adprep die Domänen-Struktur auf Windows 2008 aktualisiert. Aber noch keine Windows 2008 Server hinzugefügt.
Leider funktioniert die Authentifizierung der Linux Rechner jetzt nicht mehr. Hat jemand eine Idee woran es liegen kann? Vielleicht was in Richtung Kerberos?
Fehler von wbinfo -g: Error looking up domain groups
Fehler von net ads join –U Administrator: Failed to join domain: failed to find DC for domain
Viele Grüße,
Flouw
erstmal danke für die super Anleitung!
Ich habe mittlerweile mehrere Debian Lennys in eine Windows 2000 Domäne mit Holfe dieser Anleitung integriert bekommen.
Jetzt habe ich mittels adprep die Domänen-Struktur auf Windows 2008 aktualisiert. Aber noch keine Windows 2008 Server hinzugefügt.
Leider funktioniert die Authentifizierung der Linux Rechner jetzt nicht mehr. Hat jemand eine Idee woran es liegen kann? Vielleicht was in Richtung Kerberos?
Fehler von wbinfo -g: Error looking up domain groups
Fehler von net ads join –U Administrator: Failed to join domain: failed to find DC for domain
Viele Grüße,
Flouw
chefkoch666 schreibt am 01.06.2010 um 20:01:10 Uhr
Hi Flouw,
das hier gemäß Deiner Infrastruktur ausführen:
net ads join -S dc -U Administrator
Gruß Marek
das hier gemäß Deiner Infrastruktur ausführen:
net ads join -S dc -U Administrator
Gruß Marek
chefkoch666 schreibt am 01.06.2010 um 20:03:07 Uhr
Hi spacyfreak,
wirklich cooler Artikel! Hut ab, echt gut geschrieben und trotzdem immer schön Schritt für Schritt und auf den Punkt. Außerdem weiterführende Links.
Offene Punkte:
- Das Video zum Artikelanfang scheint gelöscht zu sein.
- Kommentare durcharbeiten und Artikel nachpflegen, das wäre ein Traum.
Mit besten Grüßen Marek
wirklich cooler Artikel! Hut ab, echt gut geschrieben und trotzdem immer schön Schritt für Schritt und auf den Punkt. Außerdem weiterführende Links.
Offene Punkte:
- Das Video zum Artikelanfang scheint gelöscht zu sein.
- Kommentare durcharbeiten und Artikel nachpflegen, das wäre ein Traum.
Mit besten Grüßen Marek
NathanvA schreibt am 25.01.2012 um 15:32:42 Uhr
Danke auch für die gute Anleitung.
Einige Zeit beschäftigt hat mich dann die Frage, wie man den Zugriff auf AD Gruppen einschränken kann.
Dies ist eigentlich sehr einfach:
/etc/pam.d/common-auth
auth sufficient pam_winbind.so require_membership_of=<AD-Gruppe>
http://www.samba.org/samba/docs/man/manpa ...
Einige Zeit beschäftigt hat mich dann die Frage, wie man den Zugriff auf AD Gruppen einschränken kann.
Dies ist eigentlich sehr einfach:
/etc/pam.d/common-auth
auth sufficient pam_winbind.so require_membership_of=<AD-Gruppe>
http://www.samba.org/samba/docs/man/manpa ...
















