Samba Server einrichten

Samba ist ein Programm, welches es ermöglich Datei- und Druckerfreigaben wie in einer Windows Umgebung benötigt zu erzeugen bzw. bereitzustellen. Gerade durch die Integration des SMB/CIFS Protokolls, können diese Dienste vollumfänglich angeboten werden.
Meine Erfahrung zeigt, dass am häufigsten Mischnetzwerke anzutreffen sind. In der Regel werden Workstation doch mit einem Windows als Betriebssystem betrieben. Wobei gerade im privaten Umfeld Server eher auf Linux oder Unix Betriebssystemen aufgesetzt werden. So ist es auch schon seit Jahren bei uns daheim. Daher war es schon immer wichtig, dass eine sinnvolle Möglichkeit des Datenaustauschs besteht. Hier kommt Samba ins Spiel.
In diesem Artikel möchte ich euch zeigen, wie ihr relativ schnell eine funktionierende Samba Konfiguration auf eurem Server installiert bzw. konfiguriert. In meinem Beispiel handelt es sich um einen neu aufgesetzten Ubuntu Server 18.04.4. Weiterhin setze ich voraus, dass wir root Rechte besitzen. Ich verwende an dieser Stelle den User „user“ und dieser ist Mitglied der Gruppe „users“. Bitte passt dies an eure Systeme an.
Fangen wir an…… 
Wie gesagt, handelt es sich um einen neu aufgesetzten Server. Daher bringen wir diesen erstmal auf den aktuellen Stand. Nicht das alles wegen einer fehlenden Abhängigkeit scheitert. Dies machen wir mit folgendem Einzeiler.
 apt-get update && apt-get upgrade
Nachdem alles durchgelaufen ist, die Dauer kann hier stark variieren je nachdem wie aktuell euer Installationsmedium ist, installieren wir nun die benötigten Pakete. Auch hier werden vermutlich noch weitere benötigte Pakete mit geladen und installiert. Wie immer lautet mein Rat dies einfach hinzunehmen. Also setzen wir folgenden Befehl ab.
 apt-get install samba
Als nächstes kommen wir schon zur Konfiguration des Servers. Dazu müssen wir dessen Konfigurationsdatei anpassen. Diese findet ihr unter /etc/samba/smb.conf. An dieser Datei müssen nur ein paar Änderungen vorgenommen werden, Daher werde ich immer die darüber stehenden Zeilen mit benennen. Ich lasss diese gerne einfach vom Editor suchen um nicht die gesamte Datei durchforsten zu müssen.
Als erste Stelle finden wir ziemlich weit oben die Definition der „workgroup“. Diese Workgroup wird auch auf Windows Systemen abgefragt und vereinfacht die automatische Erkennung des Servers in der Netzwerkumgebung dieser Systeme. Ich achte daher darauf, dass diese immer gleich ist. In meinem Beispiel „LAN“. 
 # Change this to the workgroup/NT-domain name your Samba server will part of
    workgroup = LAN
Als nächstes geben wir im Abschnitt Networking den IP Bereich an, auf welchen der Server hören soll.
 # The specific set of interfaces / networks to bind to
 # This can be either the interface name or an IP address/netmask;
 # interface names are normally preferred
    interfaces = 192.168.2.0/24
Ich deaktiviere gerne die Möglichkeit, dass User auch Gäste freigeben dürfen. Dies möchte ich immer selber in der Hand haben also muss folgende Einstellung angepasst werden.
 # Allow users who've been granted usershare privileges to create
 # public shares, not just authenticated ones
    usershare allow guests = no
Alles was darunter kommt also die „Share Definitions“ markiere ich aus mit einem Semikolon am Anfang der Zeile. Ich lege lieber am Ende der Datei meine eigenen Shares an. Hier ist ein Beispiel für ein funktionierendes Share wo einer bestimmten User Gruppe Zugriff gewährt wird.
 # Data Share für alle user der Gruppe users
 [Daten]
   comment = Speicher
   path = /home/data
   force group = users
   directory mask = 0770
   create mask = 660
   read only = no
   valid users = @users
Was wird hier definiert? In den eckigen Klammern, wird der angezeigte Name des Shares hinterlegt. Also falls dieser Share als Netzlaufwerk verbunden wird, dann bekommt dieses Netzlaufwerk diesen Namen. Als nächstes kommt ein Kommentar. Dies kann auch weggelassen werden. Im Linux Umfeld kann man sich dies mit anzeigen lassen! Der Speicherort des Ordners wird mit „path“ angegeben. Mit der Option „force group“ teilen wir Samba mit, dass bei allen neu angelegten Ordnern oder Dateien, die Gruppe auf „users“ gestellt werden soll. Die beiden folgenden Optionen setzen die Rechte für neu angelegte Ordner oder Dateien so, dass nur der User oder Mitglieder der Gruppe darin lesen oder schreiben dürfen. Es soll nicht nur lesend sein und nur Mitglieder der Gruppe „Users“ darf diese überhaupt sehen/lesen.
Nun sind wir durch mit der Server Konfiguration und kümmern uns um den benötigten Ordner für die Freigabe. In unserem Beispiel befindet sich die Freigabe im Home Ordner. Diesen Ordner müssen wir natürlich noch anlegen. Danach geben wir im Initial noch die richtigen Rechte.
 mkdir /home/data
 chown user:users /home/data
 chmod 0770 /home/data
Sollten wir aus irgendeinem Grund einen schon bestehenden Ordner verwenden wollen, dann müssen wir die Besitz- und Rechteänderung auch auf alle darunter liegenden Ordner und Dateien anwenden. Hierzu sollten aber Dateien und Ordner verschiedene Rechte bekommen. Dafür bietet sich der Befehl „find“ an. Ein Beispiel für unseren Ordner.
 chown -R user:users /home/data
 find /home/data -type f -exec chmod 660 {} \;
 find /home/data -type d -exec chmod 0770 {} \;
Jetzt geben wir den benötigten Port in der Firewall frei. Ich gehe wieder davon aus, dass das Paket „ufw“ installiert und aktiviert ist. Da dies ja so ist, reicht wieder ein kleiner Einzeiler aus!
 ufw allow from 192.168.2.0/24 to any port 445
Als nächstes legen wir den Benutzer an. Es ist wichtig, dass wir als erstes den Linux Benutzer anlegen, da es sonst zu Problemen mit dem Samba User kommen kann. Daher legen wir mit folgendem Befehl den User an. Der Vollständigkeit halber habe ich auch die Gruppe „users“ mit angelegt. Dies gibt es zwar auf einigen Systemen schon aber damit einfach klar ist was zu tun wäre, wenn es diese Gruppe nicht gibt sondern diese neu angelegt werden muss.
 adduser user
 adduser --group users
 adduser user users
Die ersten beiden Befehle sind klar. Im dritten fügen wir den User „user“ der Gruppe „users“ hinzu. Je nach Rechtekonzept könnte es gewünscht sein, nur einen Samba User anzulegen der sonst weder ein Homeverzeichnis noch die Möglichkeit hat sich einzuloggen. Hierfür kann folgender Befehl verwendet werden.
 adduser --no-create-home --disabled-login user
Natürlich müssen wir auch noch einen Samba User anlegen. Diesen nennen wir genauso wie den Linux User aber können ihm dann ein anderes Passwort geben wenn dies gewünscht ist. Hierzu folgenden Befehl absetzen.
 smbpasswd -a user
Nach absetzen des Befehls werden wir aufgefordert, ein Passwort einzugeben und dieses zu wiederholen. Dieses Passwort wird auch gebraucht, um sich auf ein Samba Share zu verbinden.
All unsere Einstellungsänderungen vom Anfang sind aktuell noch gar nicht aktiv. Daher muss als letzter Schritt noch der Samba Server neugestartet werden. Dazu einfach diesen Befehl eingeben.
 service smbd restart
Jetzt sollten wir unter Angabe der IP Adresse des Servers, auf einem Windows System, zumindest einmal das Share sehen. Wenn wir auf dieses Zugreifen wollen, werden wir nach Benutzer und Passwort gefragt.
Evtl. ein Sicherheitsrisiko aber definitiv interessant ist die Möglichkeit, gerade bei Windows Systemen den Benutzer des Clients und dessen Passwort auch für die Freigabe zu verwenden. Dies hat zur Folge, dass der Benutzer sich ohne weiteres mit dem Share verbinden kann, da Windows die Anmeldeinformationen des Benutzers direkt an den Server übermittelt.
Wie immer handelt es sich um mein Beispiel. Passt also alles an eure Voraussetzungen an.
Ich hoffe euch hat der Artikel gefallen. Solltet ihr Fehler gefunden haben, generelle Fragen haben, oder wollt ihr einfach noch zusätzliche Informationen, dann schreibt mir bitte in die Kommentare. Ich versuche diese zeitnah zu beantworten.
Danke fürs lesen…..
Euer cedigger

Schreibe einen Kommentar