Samba Projekte

Alt, tot, überholt, nicht nachmachen :-)


 

 

Projekt Samba­Server


Dieses soll eine kleine Beschreibung über die Gründe, die eigentliche
Installation und Einrichtung meines privaten Samba­Servers werden. Also kein HowTo!

Sollte jemand Fragen oder Anregungen haben, freue ich mich natürlich über jede
E-Mail. Solltest du Fragen stellen achte bitte darauf deine Frage so genau wie irgend
mäglich zu stellen. Beschreibe kurz dein Problem, haue mich nicht mit log und configs
zu und habe etwas Geduld. Ich bekomme nicht nur eine E-Mail am Tag. Darum werde ich ganz
sicher nur auf unfreundliche und ungenaue Fragen antworten. KEINER hat ein Recht drauf von mir
Support zu bekommen!!

Nun, die Situation bei mir schaut ca. so aus: Meine Familie, der Nachbar und ich selbst sitzen
zusammen im Netzwerk. Zu dem kommt immer mal wieder Besuch zu uns. Da wir auch etwas mehr
Platz als der normale Durchschnitt haben, finden auch oft irgendwelche LANs usw. bei uns stat.
Zu dem hängt noch eine Firma und ein geschlossenes WLAN mit drin.

Wenn man mehr als nur einen Rechner hat kommt es schnell vor, dass man bestimmte
Daten nicht nur an einem Rechner braucht. Aus diesem Grund habe ich mir hier einen File­Server
aufgestellt und alle möglichen Daten dort abgelegt. Jetzt stellt sich die Frage wie von
einem anderen Rechner an diesen herankommen? Da ich selbst nur Linux­Systeme nutze (der
File­Server ist also auch Linux basiert) mache ich das ganze über ssh/scp oder
halt über NFS. Jetzt sind aber noch mehr Menschen in meinem Netzwerk. Diese wollen nun
auch ihre Daten dort ablege. Zum Einen, weil dort mehr Platz ist als auf ihrem Rechner und zum
Anderen weil dort täglich eine Datensicherung gefahren wird.
Die Rechte für einen NFS­Share sind schnell angelegt... bringt nur leider nichts,
wenn es Windows­User sind, welche auf die Shares zugreifen wollen. Microsoft
Systeme managen so etwas fast immer über das SMB Protokoll.

Server Message Block (kurz SMB) ist ein Protokoll für Datei­, Druck­ und
andere Serverdienste im Netzwerk unter Microsoft Windows­Betriebssystemen. Es ist
der Kern der Netzwerkdienste von Microsofts LAN­Manager, der Windows­Produktfamilie,
sowie des LAN­Servers von IBM.

Samba ist eine freie Software­Suite, die das Server Message Block ­ Protokoll (SMB)
für Unix­Systeme verfügbar macht. Dieses Protokoll wird manchmal als CIFS (Common
Internet File System), LanManager­ oder NetBIOS­Protokoll bezeichnet.

Samba ist damit in der Lage, Funktionen eines Windows­Server zu übernehmen. Es
gilt als stabiler und performanter als die Windows­Alternative und ist, da zudem noch frei
verfügbar, auch bei vielen Firmen und Organisationen sehr angesehen.

Würde sagen: Ich mach es mit Samba :)

Samba wird recht übersichtlich in einer einfachen Konfigurationsdatei konfiguriert. Diese
liegt normalerweise im Ordner /etc/samba und nennt sich smb.conf.

Ich liste erst mal meine hier auf und erläutere dann weiter unten die wichtigsten Einträge!

######### /etc/samba/smb.conf # Anfang #########
[global]
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Servername / Domain / usw.
netbios name = kernel­error
server string = HAUPT_Server
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Arbeitsgruppe
workgroup = servers
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Passwoerter gleichzeitig aedern und Sicherheits..
unix password sync = yes
passwd program = /usr/bin/passwd %U
passwd chat = *password* %n\n *password* %n\n *successfull*
min password length = 2
admin users = kernel
force directory mode = 0750
directory mask = 0750
force create mode = 0750
create mask = 0750
encrypt passwords = Yes
update encrypted = Yes
map to guest = Bad User
host allow 192.168.0. 127.
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
#Server und PDC einstellungen
domain master = Yes
name resolve order = dns host bcast wins
nt acl support = Yes
nt pipe support = Yes
nt smb support = Yes
wins support = Yes
wins proxy = Yes
name resolve order = dns host bcast wins
logon path = \\%L\profiles\%U
time server = Yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
keepalive = 120
preferred master = Yes
logon script = %U.bat
domain logons = Yes
os level = 65
logon drive = u:
logon home = \\%L\Profiles\%U
# NT RUMMEL
add user script = /usr/bin/useradd ­d /dev/null ­g machines ­c 'Machine Account' ­s /bin/false ­M %u
add user script = /usr/bin/useradd ­s /bin/false %u
username map = /etc/samba/smbusers
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Logs
max log size = 250
log file = /var/log/samba/samba.log.%m
debug level = 3
log level = 1
syslog = 0
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Speed
read raw = Yes
write raw = Yes
stat cache = Yes
stat cache size = 50
shared mem size = 5242880
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# sonstiges
interfaces = 192.168.0.10/24
printing = cups
printcap name = CUPS
load printers = yes
#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# Lange Dateinamen und Umlaute
protocol = NT1
default case = lower
mangle case = no
mangled names = yes
case sensitive = no
preserve case = yes
short preserve case = yes

[netlogon]
comment = Logon Scripts
path = /home/netlogon
browseable = no

[homes]
comment = Heimatverzeichnis
writeable = Yes
browseable = No

[system]
comment = Server
path = /
writeable = yes
browseable = no
read only = no
valid users = kernel
write list = kernel
read list = kernel

[pool]
create mask = 0755
directory mask =0755
comment = Der Pool
path = /home/pool
writeable = yes
browseable = no
read only = no

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mode = 0700
browseable = No
writeable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
create mask = 0664
directory mask = 0775
######### /etc/samba/smb.conf # Ende #########

 



Wie man sehen kann ist die Konfigurationsdatei in mehrere Bereiche aufgeteilt. Ein Berich
beginnt immer mit:

[bereichname]

Der Bereich "global" sollte immer vorhanden sein. Einstellungen die man nicht vorgibt
werden vom Samba­Deamon mit den Standardwerten gefahren. Im Bereich "global" werden
nun alle Einstellungen gesetzt die für den Samba­Server selbst gelten. Die ersten beiden
Punkte lasse ich aus, da sie sich selbst erklären sollten.

Interessant wird es meiner Meinung nach hier:
unix password sync = yes
passwd program = /usr/bin/passwd %U
passwd chat = *password* %n\n *password* %n\n *successfull*
min password length = 2

Hiermit gebe ich dem Samba­Server vor, dass die Benutzer welche auf der Unix­ bzw.
Linuxebene angelegt werden auch gleichzeitig im Samba­Server angelegt werden. Natürlich
mit dem gleichen Passwort, welches aber nicht kürzer als zwei Zeichen lang sein darf.
Zu dem können User auf NT­Basierten Systemen ihr Passwort von diesen aus selbst
ändern, sofern es ihnen erlaubt ist versteht sich. Die User können natürlich mit
ihrem Passwort auch auf der Konsole angelegt werden. Man muss aber darauf achten,
dass der Username schon auf der Unixebene existiert. Sie müssen nicht zwingend
die gleichen Kennwörter unter Unix/Linux und Samba haben. Angelegt wird ein User mit:

smbpasswd -a username [als root auf der Konsole]

Sollte der User schon unter Samba existieren wird sein Eintrag mit einfach nur aktualisiert.

admin users = kernel

Dieser Eintrag gibt den Benutzer an, welcher nach seiner Anmeldung auf den Shares, mit den
Rechten des Unix Users Root Dateien und Ordner anlegt / liest / bearbeiten. Hier sollte
man vorsichtig sein. Dieser User hat wirklich die gleichen Rechte wie der ROOT­User!!

map to guest = Bad User

Ist dies so angegeben, können nur User auf den Server zugreifen, welche sich auch anmelden.
Ein User kann sich am System anmelden, muss aber keinen Zugriff auf einen Share haben.

#Server und PDC einstellungen

Ab diesem Eintrag wird dem Samba­Server gesagt das er als PDC für die oben angegebene
Domain arbeiten soll. Die einzelnen Punkte haben schöne passende Namen, daher sollte
man sie auch so verstehen können. Gibt es Fragen? ==> einfach mailen!
Hat man NT­Basierte Systeme, welche sich auch am PDC anmelden sollten, muss man einen
Computeraccount für den jeweiligen Rechner anlegen. Das ist viel Arbeit pro Rechner. Da
NT­Systeme das aber selbst können, sollten sie doch die Arbeit für uns machen, oder?
Daher müssen wir noch folgendes eintragen:

add user script = /usr/bin/useradd ­d /dev/null ­g machines ­c 'Machine Account' ­s /bin/false ­M %u
add user script = /usr/bin/useradd ­s /bin/false %u
username map = /etc/samba/smbusers

Die beiden Schalter:

read raw = Yes
write raw = Yes

Können dem Samba Server etwas einheizen. Sie können den Server um 50% schneller laufen
lassen. Die Hardware sollte aber mitspielen, sonst verliert man Daten.

Zum Drucken unter Linux nutze ich seit einiger Zeit CUPS. Um Windows jetzt auch den Zugriff
auf diese Drucker zu gewähren muss ich Samba angeben, dass ich CUPS zur Druckerverwaltung
nutze. Dieses mache ich mit diesem Eintrag:

interfaces = 192.168.0.10/24
printing = cups
printcap name = CUPS
load printers = yes

Wenn man den Samba­Server als PDC betreibt möchte man natürlich auch für Windows
die Loginscripte nutzen. Damit einfach und schnell die Uhrzeit abgeglichen wird oder Laufwerke und
Drucker beim Anmelden eingebunden werden. Dazu muss ein neuer Bereich mit dem Namen "netlogon"
angelegt werden. Das Ganze schaut dann wie folgt aus.

[netlogon]
comment = Logon Scripts
path = /home/netlogon
browseable = no

Der Text hinter comment wird als kleine Beschreibung bei den Shares angezeigt.
path gibt den Unixpfad zum Ordner an, welcher "freigegeben" werden soll.
Ist browseable auf no gesetzt wird die Freigabe nicht in der Netzwerkumgebung usw. angezeigt.

Ich habe hier folgendes aufgenommen um es zu beschreiben. Man sollte das aber nicht machen!
[system]
comment = Server
path = /
writeable = yes
browseable = no
read only = no
valid users = kernel
write list = kernel
read list = kernel

Hier wurde der Bereich system angelegt. Vielleicht sollte ich an dieser Stelle sagen, dass der
Bereichsname auch gleichzeitig der Name des Shares ist. Hier taucht der Schalter writeable und
read only auf. Die Schalter machen von der Logik her das gleiche. Ich setzte immer beide um
sicher zu gehen das auch wirklich das passiert was ich will. Sie verhindern oder erlauben
das Schreiben auf Shares. Der Punkt valid users gibt an, welche user überhaupt das Recht
haben auf diesen Share zuzugreifen. write list bestimmt die User die auf dem Share schreiben
oder verändern dürfen. read list erlaubt oder verbietet halt das lesen.

Folgende Einträge geben an, mit welchen Unix­Berechtigungen Daten auf den Shares
geschrieben werden sollen. Unter Daten fallen auch Ordner.

force directory mode = 0750
directory mask = 0750
force create mode = 0750
create mask = 0750

Ich glaube mit diesen Angaben hat jeder nun schon einen kleinen überblick über
dass, was mit dem Samba­Server möglich ist und wie ich es hier eingesetzt habe.