Alt, tot, überholt, nicht nachmachen 🙂
Projekt SambaServer
Dieses soll eine kleine Beschreibung über die Gründe, die eigentliche
Installation und Einrichtung meines privaten SambaServers 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 FileServer
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 LinuxSysteme nutze (der
FileServer 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 NFSShare sind schnell angelegt… bringt nur leider nichts,
wenn es WindowsUser 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 WindowsBetriebssystemen. Es ist
der Kern der Netzwerkdienste von Microsofts LANManager, der WindowsProduktfamilie,
sowie des LANServers von IBM.
Samba ist eine freie SoftwareSuite, die das Server Message Block Protokoll (SMB)
für UnixSysteme verfügbar macht. Dieses Protokoll wird manchmal als CIFS (Common
Internet File System), LanManager oder NetBIOSProtokoll bezeichnet.
Samba ist damit in der Lage, Funktionen eines WindowsServer zu übernehmen. Es
gilt als stabiler und performanter als die WindowsAlternative 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 = kernelerror 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 SambaDeamon mit den Standardwerten gefahren. Im Bereich „global“ werden
nun alle Einstellungen gesetzt die für den SambaServer 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 SambaServer vor, dass die Benutzer welche auf der Unix bzw.
Linuxebene angelegt werden auch gleichzeitig im SambaServer 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 NTBasierten 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 ROOTUser!!
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 SambaServer 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 NTBasierte 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
NTSysteme 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 SambaServer 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 UnixBerechtigungen 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 SambaServer möglich ist und wie ich es hier eingesetzt habe.
Schreibe einen Kommentar