Im Geschäft hatten wir eine USB-Festplatte, auf welcher wir sehr viele Bilder für die Katalogproduktion hatten. Das funktionierte recht gut, nur war es recht umständlich, da man die Festplatte immer wieder von einem Computer an den anderen anschliessen mussten. Die ideale Lösung ist also, wenn man die Bilder auf einem Server platziert, damit alle Leute darauf zugriff haben. Eine Bedingung ist, dass alle Leute die Bilder ansehen, aber nur bestimmte Mitarbeiter darauf zugreifen können.
Ich habe das ganze mit einem Linux-Server mit Samba gelöst, welcher an die Windows-Domain angeschlossen wurde. Hier nun eine kleine Anleitung, wie das bei mit funktioniert hat.
DNS-Server: 192.168.1.10
Domaincontroller
OS: Windows 2003 SP 2
Hostname: SERV01
IP: 192.168.1.10
Linux Server
OS: Ubuntu Linux 8.04 Server (2.6.24-16-server)
Hostname: SERV02
IP: 192.168.1.11
Kerberos wird zur Authentifizierung am Windows-Server verwendet. Will sich also ein Benutzer am SERV02 anmelden, so sendet dieser die Anfrage an den SERV01 (PDC) weiter und erhält von dem die Nachricht, ob Benutzername und Passwort korrekt sind. So kann man direkt die Benutzer und Gruppen aus der Active-Directory verwenden, was die Benutzerverwaltung sehr vereinfacht. Kerberos ist im Packet Heimdal enthalten.
Konfigurieren muss man die Datei /etc/krb5.conf. Dazu muss man zuerst eine Realm (einen Bereich) konfigurieren und dort ein KDC (Kerberos Distribution Center) angeben und dann der Domain den Berich zuweisen. Wichtig ist hier, dass auf die Gross- und Kleinschreibung geachtet wird. Meine Konfigurationsdatei sieht so aus:
Nun kann man mit dem Befehl kinit den Kerberos Client (Linux) am Server (Windows) authenifizieren. Dies funktioniert mit dem folgenden Befehl:
Wichtig ist wieder, dass auf die Gross- und Kleinschreibung geachtet wird und dass die Namensauflösung funktioniert. Ein ping auf serv01 sollte hier im Beispiel 192.168.1.10 zurückgeben.
Jetzt kann Samba über die Datei /etc/samba/smb.conf konfiguriert werden. Wichtig sind die Rot markierten Zeilen.
Nun muss man den Samba Server noch in die Domäne aufnehmen. Das macht man seit Samba 3.* nicht mehr mit smbpasswd sondern mit dem net Befehl:
Wenn alles geklappt hat muss man Linux noch mitteilen, dass Benutzeranfragen an winbind weitergeleitet werden sollen. Dies macht man in der Datei /etc/nsswitch.conf. Dort muss man die Zeilen passwd und group anpassen. Sie sollten schlussendlich so aussehen:
Nach einem Neustart von Samba und Winbind kann man prüfen, ob die Konfigurationsarbeit erfolgreich war. Die folgenden Befehle sollten alle Benutzer, bzw Gruppen der Windows Domäne anzeigen.
Hier noch die Unterschiede zwischen Lokalen-/Domänenbenutzen-/Gruppen.
Im Internet gibt es schon einige Anleitungen dazu. Hier möchte ich diejenigen Auflisten, die mich am meisten weitergebracht haben:
Ich habe das ganze mit einem Linux-Server mit Samba gelöst, welcher an die Windows-Domain angeschlossen wurde. Hier nun eine kleine Anleitung, wie das bei mit funktioniert hat.
Ausgangslage
Domain: MUSTER.LOCALDNS-Server: 192.168.1.10
Domaincontroller
OS: Windows 2003 SP 2
Hostname: SERV01
IP: 192.168.1.10
Linux Server
OS: Ubuntu Linux 8.04 Server (2.6.24-16-server)
Hostname: SERV02
IP: 192.168.1.11
Software
Installiert werden muss Samba, Winbind und Heimdal. Bei mir in den folgenden Version (direkt über apt)- Samba 3.0.28a
- Winbind 3.0.28a-1ubuntu4
- heimdal-clients 0.7.1-1ubuntu3
Installation
Kerberos
Kerberos wird zur Authentifizierung am Windows-Server verwendet. Will sich also ein Benutzer am SERV02 anmelden, so sendet dieser die Anfrage an den SERV01 (PDC) weiter und erhält von dem die Nachricht, ob Benutzername und Passwort korrekt sind. So kann man direkt die Benutzer und Gruppen aus der Active-Directory verwenden, was die Benutzerverwaltung sehr vereinfacht. Kerberos ist im Packet Heimdal enthalten.
Konfigurieren muss man die Datei /etc/krb5.conf. Dazu muss man zuerst eine Realm (einen Bereich) konfigurieren und dort ein KDC (Kerberos Distribution Center) angeben und dann der Domain den Berich zuweisen. Wichtig ist hier, dass auf die Gross- und Kleinschreibung geachtet wird. Meine Konfigurationsdatei sieht so aus:
[libdefaults]
default_realm = MUSTER.LOCAL
clockskew = 300
[realms]
MUSTER.LOCAL = {
kdc = SERV01.MUSTER.LOCAL
}
[domain_realm]
.muster.local = MUSTER.LOCAL
[logging]
# default = SYSLOG:NOTICE:DAEMON
default = FILE:/var/log/krb/krb5libs.log
kdc = FILE:/var/log/krb/kdc.log
kadmind = FILE:/var/log/krb/kadmind.log
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
debug = false
}Nun kann man mit dem Befehl kinit den Kerberos Client (Linux) am Server (Windows) authenifizieren. Dies funktioniert mit dem folgenden Befehl:
kinit Administrator@MUSTER.LOCAL
Wichtig ist wieder, dass auf die Gross- und Kleinschreibung geachtet wird und dass die Namensauflösung funktioniert. Ein ping auf serv01 sollte hier im Beispiel 192.168.1.10 zurückgeben.
Samba
Jetzt kann Samba über die Datei /etc/samba/smb.conf konfiguriert werden. Wichtig sind die Rot markierten Zeilen.
[global] workgroup = MUSTER server string = netbios name = serv02 realm = MUSTER.LOCAL idmap uid = 10000 - 15000 idmap gid = 10000 - 15000 winbind separator = / winbind use default domain = yes password server = serv01.muster.local security = ADS client use spnego = yes dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d encrypt passwords = yes passdb backend = tdbsam obey pam restrictions = yes invalid users = root passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* . socket options = TCP_NODELAY
- workgroup: Die Arbeitsgruppe. Sollte gleich dem Domänennamen sein
- netbios name: Der Netbios Hostname des Servers
- realm: Der Bereich. Gleich dem Bereich in der Kerberos Konfiguration
- idmap uid: Bereich der genutzt wird um die Domänenbenutzer auf die Linux Benutzer zu mappen
- idmap gid: Bereich der genutzt wird um die Domänengruppen auf die Linux Gruppen zu mappen
- winbind seperator: Das Trennzeichen zwischen der Domäne und dem Benutzer
- winbind use default domain: Definiert, ob Winbind auch mit dem Benutzernamen arbeitet, wenn keine Domäne angegeben wurde.
- password server: Der Server, welcher die Passwörter validiert.
- security: Definiert, dass Samba als ADS Mitglied arbeiten soll
- client use spnego: Aktiviert SMB Singing
Nun muss man den Samba Server noch in die Domäne aufnehmen. Das macht man seit Samba 3.* nicht mehr mit smbpasswd sondern mit dem net Befehl:
net join -S serv01 -UAdministrator%password
Wenn alles geklappt hat muss man Linux noch mitteilen, dass Benutzeranfragen an winbind weitergeleitet werden sollen. Dies macht man in der Datei /etc/nsswitch.conf. Dort muss man die Zeilen passwd und group anpassen. Sie sollten schlussendlich so aussehen:
passwd: files winbind group: files winbind
Nach einem Neustart von Samba und Winbind kann man prüfen, ob die Konfigurationsarbeit erfolgreich war. Die folgenden Befehle sollten alle Benutzer, bzw Gruppen der Windows Domäne anzeigen.
wbinfo -u wbinfo -g
Shares einrichten
Sollte bisher alles funktioniert haben, kann man jetzt die Shares im Samba einrichten. Ich habe einen Share names Bilder gemacht, auf welchen alle Zugriff haben, aber nur eine bestimmte Gruppe schreiben kann.[bilder] comment = Bilder path = /home/bilder public = yes read only = no guest ok = no browseable = yes valid users = @muster/alle admin users = @muster/abteilung, muster/user
Hier noch die Unterschiede zwischen Lokalen-/Domänenbenutzen-/Gruppen.
# lokaler user valid users = user # domain user valid users = muster/user # lokale gruppe valid users = @group # domain gruppe valid users = @muster/group
Quellen
Im Internet gibt es schon einige Anleitungen dazu. Hier möchte ich diejenigen Auflisten, die mich am meisten weitergebracht haben:
- http://www.pro-linux.de/work/server/samba3-domaene.html
- http://www.administrator.de/Samba_in_Windows_Dom%C3%A4ne.html