Ubuntu MATE (Samba)
Inhaltsverzeichnis
Beschreibung
Das freie Softwarepaket Samba ermöglicht die Nutzung von Windows Funktionen wie Datei und Druckdiensten unter anderen Betriebssystemen. Es dient als freie Implementierung des SMB/CIFS Protokolls und erlaubt die Integration in Windows basierte Netzwerkumgebungen.
Die Konfigurationsmöglichkeiten eines Samba Servers sind umfangreich und ermöglichen sowohl einfache als auch sicherheitsorientierte Einsatzszenarien. Im folgenden Beispiel wurde Samba auf einer Installation von Ubuntu MATE auf einem Raspberry Pi 3 eingerichtet. Durch geeignete Einstellungen lässt sich eine sichere Konfiguration erreichen, die auch gegenüber Schadsoftware wie Kryptotrojanern widerstandsfähig ist.
Installation
Samba
Auf Ubuntu MATE 16.04.1 LTS sind sowohl der Samba Server als auch der Samba Client bereits vorinstalliert.
Dienst
Der Samba Dienst kann mit dem folgenden Befehl verwaltet werden. Dabei stehen die Optionen start, stop, reload, restart, force reload und status zur Verfügung.
Installation
Tritt ein Fehler auf, dass der Samba-Dienst nicht gefunden wird, einfach Samba löschen und neu installieren.
Firewall
Der Samba Dienst ist in der Firewall standardmäßig nicht freigeschaltet und muss daher manuell aktiviert werden. Ob die Firewall den Zugriff auf den Dienst blockiert, lässt sich prüfen, indem die Firewall testweise deaktiviert wird. Es wird jedoch empfohlen, eine Firewall grundsätzlich aktiviert zu lassen, sofern sich der Server nicht in einer demilitarisierten Zone (DMZ) befindet.
Konfiguration
Samba
Die Konfiguration von Samba erfordert administrative Rechte (root). Vor Änderungen an der Konfigurationsdatei empfiehlt es sich, eine Sicherung der originalen Datei smb.conf anzulegen. Diese befindet sich im Verzeichnis /etc/samba und kann mit einem entsprechenden Befehl gesichert werden.
Anschließend kann die Datei smb.conf mit einem textbasierten Editor wie VIM oder NANO geöffnet und bearbeitet werden.
Hier folgt ein Beispiel für eine einfache Konfiguration mit aktivierter Authentifizierung sowie dem Anlegen eines ausschließlich für Samba verwendeten Benutzerkontos (siehe: Benutzer).
smb.conf
# 24.04.2017 Bacher Oliver (www.technikwiki.org) #
[global]
server string = Samba Server
workgroup = TechnikWiki
security = user
usershare allow guests = no
hosts allow = 192.168.0.*
log file = /var/log/samba/%m.log
[Fotoalbum]
valid users = SambaUser
browseable = yes
writeable = no
read only = yes
path = /data/samba/Fotoalbum
comment = Fotoalbum
[Daten]
valid users = SambaUser
force user = SambaUser
force group = SambaGroup
create mode = 0660
directory mode = 0770
browseable = yes
writeable = yes
read only = no
path = /data/samba/Daten
comment = Daten
Parameter (Global)
- server string: Bezeichnet den Namen des Rechners, der im Netzwerk angezeigt wird.
- workgroup: Gibt die Arbeitsgruppe an, zu der das System im lokalen Netzwerk gehört.
- security: Legt fest, wie die Anmeldung von Benutzern überprüft wird. Mögliche Werte sind user, share und domain.
- usershare allow guests: Bestimmt, ob Gästen der Zugriff auf Freigaben erlaubt wird. Zulässige Werte sind yes oder no.
- hosts allow: Definiert, welche Rechner eine Verbindung zu Samba herstellen dürfen.
- log file: Gibt an, wo die Protokolldateien von Samba gespeichert werden.
Parameter (Freigabe)
- valid users: Gibt die Benutzer an, die Zugriff auf die Freigabe erhalten.
- force user: Legt den Benutzer fest, unter dessen Namen Verzeichnisse und Dateien erstellt werden.
- force group: Bestimmt die Gruppe, unter deren Zugehörigkeit Verzeichnisse und Dateien angelegt werden.
- create mode: Definiert die Standardberechtigungen für neu erstellte Dateien.
- directory mode: Legt die Standardberechtigungen für neu angelegte Verzeichnisse fest.
- browseable: Gibt an, ob die Freigabe direkt im Netzwerk sichtbar ist.
- writeable: Bestimmt, ob die Freigabe Lese- und Schreibzugriff erlaubt. Zulässige Werte sind yes oder no.
- read only: Legt fest, ob die Freigabe nur lesbar ist. Zulässige Werte sind yes oder no.
- path: Gibt den Pfad zum freigegebenen Verzeichnis an, beispielsweise /data/samba.
- comment: Zeigt einen Kommentar oder eine Beschreibung der Freigabe an, zum Beispiel Fotoalbum 2017.
Benutzer
Mit diesem Befehl wird ein Samba-Benutzer angelegt. Anschließend muss nur noch das Passwort für den jeweiligen Benutzer gesetzt werden. Existiert auf einem Windows-System derselbe Benutzer mit demselben Passwort, erfolgt die Authentifizierung automatisch, wenn die Sicherheitseinstellung auf user gesetzt ist (security = user). Ein anderes Windows-Benutzerkonto erhält keinen Zugriff, und in diesem Fall erscheint eine Aufforderung zur Eingabe von Benutzername und Passwort.
Parameter
- no create home: Verhindert die Erstellung eines Homeverzeichnisses für den Benutzer.
- disabled login: Der Benutzer kann sich nicht am Betriebssystem anmelden.
- shell /bin/false: Legt fest, dass keine Login-Shell eingerichtet wird, wodurch beispielsweise keine SSH-Verbindung möglich ist.
Benutzer anlegen:
Passwort setzen:
Rechte
Hinweise
Achtung: Wenn der Parameter force user = root gesetzt ist, besitzt die Freigabe stets volle Lese- und Schreibrechte.
Hinweis: Sollen mehrere Samba-Benutzer, beispielsweise von verschiedenen Windows-PCs, auf eine Freigabe zugreifen, empfiehlt es sich, Gruppenberechtigungen zu verwenden.
Beispiel Fotoalbum: Sind die Berechtigungen für die Freigabe Fotoalbum korrekt gesetzt, ist nur ein Lesezugriff möglich. Selbst wenn die Parameter writeable = yes und read only = no gesetzt sind, bleibt der Zugriff weiterhin auf Lesen beschränkt.
Den Benutzer und die Gruppe setzen:
Die Zugriffsrechte der Verzeichnisse setzen (chmod -R 550 /data/samba/Fotoalbum):
Die Zugriffsrechte der Dateien setzen:
Daten
Hier werden Benutzer, Gruppen sowie Verzeichnis- und Dateirechte manuell festgelegt, wie sie anschließend von der Freigabe Daten übernommen werden.
Natürlich ist es auch hier möglich, Verzeichnisse oder Dateien auf schreibgeschützt zu setzen.
Shellskript
#!/bin/bash
# 23.04.2017 Bacher Oliver (www.technikwiki.org) #
chown -R SambaUser:SambaGroup /data/samba/Daten
find /data/samba/Daten -type d -exec chmod 770 {} \;
find /data/samba/Daten -type f -exec chmod 660 {} \;
find /data/samba/Daten/Readonly -type d -exec chmod 550 {} \;
find /data/samba/Daten/Readolny -type f -exec chmod 440 {} \;
Tipps
Cryptovirus
Bei diesem Beispiel mit der Freigabe Fotoalbum ist es ratsam, nur Leserechte auf diese Netzwerkfreigabe zu vergeben. Dadurch können über die Freigabe keine Daten mehr geändert werden, was den Schaden durch einen Cryptovirus erheblich reduziert. Neue Fotos können weiterhin problemlos über SSH hochgeladen werden. Anschließend sollte die Berechtigung überprüft oder ein Shellskript ausgeführt werden, um sicherzustellen, dass die Rechte korrekt gesetzt sind.
Backup
Ein Backup mittels eines Cronjob-gesteuerten Shellskripts ist in der Regel empfehlenswert. Das Tool Rsync eignet sich für diese Zwecke besonders gut.
Achtung
Bei einem automatisierten Backup ist darauf zu achten, dass bereits verschlüsselte Daten nicht erneut gesichert werden. Es empfiehlt sich, eine Historie der regelmäßigen Backups, beispielsweise wöchentlicher Sicherungen, zu führen. Der benötigte Speicherplatz hängt dabei stark von der Komprimierung der Backups ab und kann mehrere Terabyte betragen.
Bei Backups auf externen Datenträgern sollte sichergestellt werden, dass diese nur während des Kopiervorgangs mit dem Server oder PC verbunden sind, um die Sicherheit der Daten zu gewährleisten.







