Samba Server in AD Domain

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index


Inhaltsverzeichnis

[Bearbeiten] Einführung

Dies ist eine Übersetzung aus dem englischen HOWTO Adding a Samba Server into an existing AD Domain
Erste Fassung.

[Bearbeiten] Voraussetzungen

  1. Active Directory sollte im Netzwerk eingerichtet und funktionsfähig sein Hilfe zu diesen Thema gibt es zuhauf im Netz
  2. Dein Windows-System sollte gesichert und gepatched sein
  3. Gentoo sollte auf dem Samba Server installiert sein
  4. Zumindest eine Windowsmaschine sollte zum Testen verfügbar sein
  5. Root oder 'su'-Zugriff auf dem zukünftigen Sambaserver
  6. Administrator-Zugriff auf das bestehende Active Directory

Anmerkung: Als Domainname wird in diesen HowTo example.com angenommen. Du solltest diesen Eintrag an den Domainnamen in deinen Active Directory anpassen.

Wenn das alles erfüllt ist, kannst du mit der Installation beginnen.

[Bearbeiten] Installation der notwendigen Software

Die nun Folgenden Programme müssen in der exakten Reihenfolge installiert werden.

[Bearbeiten] Installation von LDAP

Emerge openldap. Es ist keine Konfiguration notwendig. Allerdings wird die AD Unterstützung nicht ohne LDAP mitcompiliert.

Code: Emergen von openldap
emerge openldap


[Bearbeiten] Installation und Configuration von Kerberos

Es existieren 2 verschiedene Versionen von Kerberos in Portage. Es sind die Versionen 4 von KTH und die Version 5 von MIT verfügbar. Installiere MIT Version 5, da Microsoft ebenfalls Kerberos Version 5 benutzt.


Code: Emergen von MIT Kerberos Client Version 5
emerge mit-krb5


Ändere die Konfiguration von /etc/krb5.conf wie folgt:

Datei: Minimale Konfiguration von /etc/krb5.conf
 
[libdefaults] 
   default_realm = EXAMPLE.COM 
  
[realms] 
   EXAMPLE.COM = { 
        kdc = adserver.example.com 
   } 


WICHTIG:

  • Ersetze NICHT die Großschreibung von EXAMPLE.COM weil du dann die folgende Fehlermeldung bekommst:

''"Cannot find KDC for requested realm while getting initial credentials".''

  • Kommentiere nicht die Konfigurationsdatei da Kerberos sonst die Konfiguration nicht richtig einliest.

Zur Sicherheit ergänze /etc/hosts mit:

Datei: Rückfallposition falls der DNS Server nicht erreichbar ist
 
1.2.3.4    adserver.example.com   adserver 


Wichtig: Du musst sicherstellen das der AD Server immer erreichbar ist. Auch wenn der DNS Server nicht verfügbar ist.

[Bearbeiten] Überprüfung der Kerberos installation

Teste Kerberos bevor du fort fährst. Dazu überprüfe ob AD domain sichtbar ist mit folgendem Kommando:

Code: Befehl um die verbindung zu AD Domain zu prüfen
kinit Administrator@EXAMPLE.COM     <- Genau so ist es richtig
Password for Administrator@EXAMPLE.COM:
#


Kinit wird dich nach dem Passwort fragen. Wenn du das richtige Passwort angegeben hast, wird kinit zum Eingabeaufforderung zurückkehren. Passiert das so bedeutet das, dass alles funktioniert hat. Eine genauere Überprung lässt der Rückgabewert der Shell zu (direkt nach kinit ausführen):

Code: Rückgabewert der Shell für korrekte Ausführung:
echo $?
0
#

Ist das Ergebnis <> 0 , so liegt ein Fehler vor. Glückwunsch wenn bis jetzt alles geklappt hat. Jetzt kommen wir zum kniffligen Teil.

[Bearbeiten] Installieren von Samba

WICHTIG: Kerberos und ldap USE flags müssen aktiviert werden da winbind nicht ohne diese Flags funktioniert.

Code: emerge von samba
echo "net-fs/samba kerberos winbind ldap ads" >> /etc/portage/package.use
emerge -av samba


[Bearbeiten] Konfigurieren von Samba

Nach dem Samba fertig übersetzt hat musst du es noch Konfigurieren. Zur Konfiguration kannst du die Beispieldatei /etc/samba/smb.conf nehmen. Mit der Konfiguration wird auch Winbind automatisch entsprechend angepasst.

Datei: Beispiel samba configuration mit Kommentaren
# Separate domain and username with '+', like DOMAIN+username 
[global] 
        netbios name = SERVERNAME <- Am besten sollte hier der Name des Servers stehen
        socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384 <- Hier modifizieren wenn die Geschwindigkeit im Socket nicht optimal ist.  <!--Gefährlich , da zu ungenau!! -->
        idmap uid = 10000-20000 <- Stellt kompatibilität zwischen den Usern auf dem Linux Server und dem AD Server her.
        winbind enum users = yes <- Zählt die User auf wenn winbind startet. Nein schaltet dies ab. (zu empfehlen wenn du viele User auf dem AD hast.
        winbind gid = 10000-20000 <- stellt kompatibilität zwischen den Usern auf dem Linux Server und dem AD Server her.
        workgroup = WORKGROUP <- Trage hier den passenden NETBIOS Namen des AD - Servers ein
        os level = 20 <- Die stellt die Priorität des Hauptbrowsers 
        winbind enum groups = yes <- Wird die Gruppen aufzählen. Sag nein wenn du viele Gruppen hast.
        socket address = 1.2.3.4 <- Trage hier die Adresse deines Servers ein, oder lösche die Zeile wenn Samba auf alle adressen hören soll.
        password server = * <- Empfehlenswert wenn du mehr als einen Server im Netzwerk hast
        preferred master = no <- Du willst kein Masterbrwoser sein (glaub' dem HowTo)
        winbind separator = + <- Siehe Erster Kommentar
        max log size = 50 <- In KiloByte
        log file = /var/log/samba3/log.%m <- Erlaubt logging für für jede Maschine
        encrypt passwords = yes <- Active directory akteptiert keine Klartextpasswörter
        dns proxy = no <- Du willst nichts mit DNS auf diesen Server machen
        realm = EXAMPLE.COM <- Für Kerebos
        security = ADS <- Active directory server stellt die Sicherheit für die gemeinsamen Ressourcen
        wins server = 1.2.3.4 <- Hier kommt die IP-Adresse deines WINS Servers hinein
        wins proxy = no <- Du möchtest kein Proxy server für WINS sein.

# Shares section 
[mp3]  <- Name des Shares. 
        comment = MP3 Repository <- Ein Kommentar
        writeable = yes <- Wenn du willst das User darauf schreiben können
        path = /home/mp3 <- Wo die Share auf deinem Linuxserver ist
        force user = mp3 <- Verantwortlicher des Shares auf dem Linuxserver

Um die Korrektheit der Konfiguration zu testen, bringt Samba das Programm testparm mit.

[Bearbeiten] AD Domäne beitreten

Um der Domäne beizutreten wird wie bei dem Beitritt eines Windows PC's ein Benutzer mit Domänen-Admin Rechten und dessen Passwort benötigt. Meist ist dies der Benutzer Administrator (Groß/Kleinschreibung unwichtig). Samba darf zu dieser Zeit noch nicht laufen !

Code: Der AD Domäne beitreten
net ads join -U Administrator


Ist kein Fehler aufgetreten ist die letzte Zeile der Ausgabe:
Joined 'SERVERNAME' to realm 'EXAMPLE.COM'

[Bearbeiten] AD Domäne Benutzer und Gruppen übernehmen

um unsere Konfiguration zu testen genügt es den winbind deamon ersteinmal kurz von hand zu starten:

Code: Winbindd starten
winbindd

da dieser Befehl keinerlei Ausgaben produziert testen wir den Erfolg mit ps

Code: Winbindd starten
ps -ae | grep winbindd

das Ergebnis sollte so aussehen:

The results should be something similar to this:
13324 ?        00:04:23 winbindd
13325 ?        00:00:00 winbindd

Um zu sehen, ob die Aufnahme der Maschine funktioniert hat, bzw. ob das Maschinen-Konto auf dem Server angelegt wurde und ein Vertrauensverhältnis besteht:

Code: Vertrauensverhältnis mit der Domäne testen
wbinfo -t

Fehlerfrei:

checking the trust secret via RPC calls succeeded

Ansonsten müssen die vorherigen Schritte noch einmal überprüft werden, auch sollte das Maschinenkonto (falls existent) unter Windows überprüft bzw. gelöscht werden - vor einem erneuten join unbedingt das Maschinen-Konto löschen und evtl. das ADS manuell syncen.


Um alle Benutzer und Gruppen der AD Domäne anzuzeigen benutzen wir wbinfo

Code: Benutzer und Gruppen anzeigen
wbinfo -u
wbinfo -g


[Bearbeiten] AD Benutzer und Gruppen dem Linux System hinzufügen

Den Erfolg von Winbind haben wir im vorherigen Abschnitt getestet. Nun machen wir die Änderungen permanent:
In der /etc/conf.d/samba wird winbind der deamon_list hinzugefügt, damit es automatisch mit dem samba Server startet.

Datei: /etc/conf.d/samba
deamon_list="smbd nmdb winbind"

Nach dieser Änderung beenden wir den Samba Server, Stoppen Winbind und starten Samba neu:

Code: Samba neu starten
#beenden
/etc/init.d/samba stop
killall winbindd
#neu starten
/etc/init.d/samba start


ist der Winbind nach dem Sambaneustart aktiv und zeigt wbinfo die Benutzer und Gruppen korrekt an fügen wir samba dem default runlevel hinzu

Code: Samba beim Systemstart starten
rc-update add samba default


Nun tragen wir in der nsswitch.conf noch winbind ein

Datei: /etc/nsswitch.conf
# /etc/nsswitch.conf:
# $Header: /var/cvsroot/gentoo/src/patchsets/glibc/extra/etc/nsswitch.conf,v 1.1 2006/09/29 23:52:23 vapier Exp $

passwd:      compat winbind
shadow:      compat
group:       compat winbind

# passwd:    db files nis
# shadow:    db files nis
# group:     db files nis

hosts:       files dns
networks:    files dns

services:    db files
protocols:   db files
rpc:         db files
ethers:      db files
netmasks:    files
netgroup:    files
bootparams:  files

automount:   files
aliases:     files


sobald diese Änderung gespeichert ist sollte getent auch die AD Benutzer und Gruppen anzeigen:

Code: getent
getent passwd
getent group


[Bearbeiten] Autor

Das Originaldokument wurde geschrieben von James Young basierend auf einen Forum Howto
How to integrate Samba (file sharing) using Active Directory for authentication (basic stuff)
beteiligte Übersetzer:
--Legine 11:03, 28. Apr 2005 (GMT)

[Bearbeiten] Weiterführende Literatur

Interesse auf mehr Samba? - Dann kann es sein, dass dir folgender Link weiterhilft:

Samba How-To von Klaus-Dieter Schumacher

Diesem Artikel ist eine Todo-Liste in der Diskussionsseite beigefügt. - Du kannst uns helfen, diesen Artikel zu erweitern, indem du die Punkte auf der Liste abarbeitest.