Samba Server in AD Domain
Aus Gentoo Linux Wiki
| 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
- Active Directory sollte im Netzwerk eingerichtet und funktionsfähig sein Hilfe zu diesen Thema gibt es zuhauf im Netz
- Dein Windows-System sollte gesichert und gepatched sein
- Gentoo sollte auf dem Samba Server installiert sein
- Zumindest eine Windowsmaschine sollte zum Testen verfügbar sein
- Root oder 'su'-Zugriff auf dem zukünftigen Sambaserver
- Administrator-Zugriff auf das bestehende Active Directory
Anmerkung: Als Domainname wird in diesen HowTo example.com code> 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".'' code>
- 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.
