Änderungen

Server als Datenspeicher nutzen erstellen erstellt von Thorsten Eggeling's avatar Thorsten Eggeling
## Dateifreigaben mit Samba
Netzwerkfreigaben über Samba/SMB/CIFS sind der kleinste gemeinsame Nenner für die meisten Betriebssysteme.
Auf Ihrem Server installieren Sie den Samba-Dienst im Terminal mit
`sudo apt install samba`
Damit Samba die Freigaben im Netzwerk bekannt gibt, installieren Sie außerdem
`sudo apt install avahi-daemon wsdd2`
Avahi ist für Linux-Clients zuständig, auf denen sich der Server im Dateimanager unter „Andere Orte“ (Ubuntu Gnome) oder „Netzwerk“ (Linux Mint) zeigen soll. Das Paket „wsdd2“ (Web Service Discovery Daemon) leistet das Gleiche für Windows-Rechner. Im Prinzip können Sie aber auch ohne diese Dienste auf die Freigaben zugreifen, indem Sie im Linux-Dateimanager
`smb://[MeinServer]`
in der Adressleiste verwenden (einblenden mit Strg-L). Windows-Nutzer geben in die Adressleiste des Explorers
`\\[MeinServer]`
ein.
**Freigaben erstellen:** Samba wird über die Datei „/etc/samba/smb.conf“ konfiguriert. Fügen Sie am Ende diesen Block ein (Minimalbeispiel mit vier Zeilen):
```
[Freigabe]
path = /data_1
writeable = no
guest ok = yes
```
Damit wird das Verzeichnis „/data_1“ unter der Bezeichnung „Freigabe“ freigegeben. Der Ordner „/data_1“ muss existieren und die Benutzer müssen auf der Ebene des Dateisystems wenigstens Leserechte besitzen. Das ist standardmäßig der Fall, wenn Sie das Verzeichnis mit „sudo mkdir /data_1“ erstellen. „guest ok = yes“ bewirkt, dass keine Anmeldung für den Zugriff erforderlich ist. Samba übernimmt Konfigurationsänderungen nach kurzer Zeit automatisch, was sie über einen Neustart des Dienstes mit
`sudo systemctl restart smbd`
beschleunigen können.
**Schreibrechte gewähren:** Soll auch Schreibzugriff möglich sein, genügt aus der Sicht von Samba die Änderung von „writeable = no“ auf „writeable = yes“. Die Rechte im Dateisystem passen Sie über diese drei Befehlszeilen für Ordner und Dateien an:
```
sudo chown -R nobody:nogroup
/data_1
sudo find /data_1 -type d -exec chmod 775 {} +
sudo find /data_1 -type f -exec chmod 664 {} +
```
**Freigaben für mehrere Nutzer:** Wenn der Gastzugang nicht ausreicht und Sie Schreibzugriff nur bestimmten Benutzern nach Anmeldung erlauben wollen, gehen Sie so vor.
**Schritt 1:** Erstellen Sie mit
`sudo adduser [User]`
ein Konto für den gewünschten Benutzer „[User]“. Fügen Sie ihn mit
`sudo usermod -aG sambashare [User]`
zur Gruppe „sambashare“ hinzu.
**Schritt 2:** Für Samba benötigt jeder Benutzer ein eigenes Passwort. Es kann dem Passwort entsprechen, das Sie beim Erstellen des Benutzerkonto vergeben haben (einfacher) oder davon abweichen:
`sudo smbpasswd -a [User]`
**Schritt 3:** Ändern Sie die Rechte für den freigegebenen Ordner mit
`sudo chown -R root:sambashare /data_1`
**Schritt 4:** Eine Freigabedefinition in der Datei „/etc/samba/smb.conf“ kann dann so aussehen:
```
[Freigabe]
path=/data_1
writable = no
write list = @sambashare
inherit owner = yes
force group = sambashare
force directory mode = 770
create mask = 664
force create mode = 664
```
„write list = @sambashare“ gewährt allen Mitgliedern der Gruppe Schreibzugriff. Für die anderen Benutzer und Gruppen bleibt es durch „writeable = no“ bei der Berechtigung „Nur lesen“. Die weiteren Optionen sorgen dafür, dass neu erstellte Elemente dem Eigentümer „root“ des darüber liegenden Ordners („inherit owner“) sowie der Gruppe „sambashare“ gehören und beide Vollzugriff erhalten.
Sie können auch die Home-Verzeichnisse der Benutzer freigeben. Die Konfiguration ist in der Datei „/etc/samba/smb.conf“ bereits enthalten, bei Ubuntu jedoch auskommentiert. Entfernen Sie einfach die Kommentarzeichen („;“) im Abschnitt „[homes]“.
**Bitte beachten Sie:** Samba-Freigaben eignen sich aus Sicherheitsgründen nur für das lokale Netzwerk. Wenn erforderlich, nutzen Sie einen VPN-Zugang (siehe [LinuxWelt](https://www.idgshop.de/linuxwelt) 5/2025 ab Seite 24) oder eine der nachfolgenden Alternativen aus diesem Artikel.
## Über Webdav auf Dateien zugreifen
Apache verfügt über Module, mit denen sich ein Lese- und Schreibzugriff realisieren lässt. Webdav (Web-Distributed Authoring and Versioning) ist eine Erweiterung des HTTP-Protokolls, über das Sie Freigaben erstellen, die sich ähnlich wie bei Samba nutzen lassen. Webdav wird von den meisten Betriebssystemen unterstützt, eignet sich für das lokale Netzwerk und für den Zugriff über das Internet.
Für Webdav aktivieren Sie zwei Apache-Module:
`sudo a2enmod dav dav_fs`
Erstellen Sie einen Ordner, den Sie für den Datenaustausch verwenden wollen, und geben Sie dem Webserver Zugriffsrechte, beispielsweise mit
```
sudo mkdir /srv/webdav
sudo chown -R www-data:www-data /srv/webdav
```
Bearbeiten Sie die Apache-Konfiguration „/etc/apache2/sites-enabled/000-default.conf“. Bauen Sie oberhalb von „</VirtualHost>“ die 14 Zeilen
```
<Directory /srv/webdav/>
Options Indexes MultiViews
Require all granted
AllowOverride None
</Directory>
Alias /webdav /srv/webdav/
<Location /webdav>
DAV on
Options +Indexes
AuthType Basic
AuthName DAV
AuthUserFile /etc/apache2/webdav
Require valid-user
</Location>
```
ein. Wenn Sie keine Benutzeranmeldung wünschen, lassen Sie die vier Zeilen vor „</Location>“ weg. Andernfalls erstellen Sie mit dem folgenden Befehl einen Benutzer mit Passwort:
`sudo htpasswd -Bc /etc/apache2/webdav [User]`
Sollte der Befehl „htpasswd“ nicht vorhanden sein, installieren Sie ein zusätzliches Paket:
`sudo apt-get install apache2-utils`
„[User]“ ersetzen Sie durch den gewünschten Anmeldenamen. Starten Sie dann den Webserver neu:
`sudo systemctl restart apache2`
**Auf Webdav-Freigaben zugreifen:** Im Linux-Dateimanager tippen Sie in die Adresszeile (Strg-L) eine URL in der Form
`dav://[MeinServer]/webdav`
ein. Soll der Server auch über das Internet erreichbar sein, konfigurieren Sie im Router eine Freigabe für Port 80 (siehe [LinuxWelt](https://www.idgshop.de/linuxwelt) 5/2025 ab Seite 24). Sicherer ist der Betrieb hinter einem Proxyserver mit Portainer/Ngingx Proxy Manager (siehe [Webanwendungen für Heimserver](https://devwelt.de/myria-de/heimserver/-/wikis/Webanwendungen%20f%C3%BCr%20Heimserver)). Das ist auch mit Apache möglich, wenn Sie das Systempaket installiert haben. Sie müssen nur die Ports in der Datei „/etc/apache2/ports.conf“ anpassen. Oder Sie verwenden Apache in einem Docker-Container. Eine passende Konfiguration mit Passwortschutz finden Sie unter https://hub.docker.com/r/apachewebdav/apachewebdav. Der Zugriff kann dann mit aktiviertem Let’s-Encrypt-Zertifikat über
`davs://[MeineDomain]`
erfolgen.
## SFTP für die Dateiübertragung nutzen
Per SFTP lassen sich Dateien verschlüsselt und damit sicher übertragen. Im eigenen Netzwerk spielt das keine Rolle, wohl aber beim Zugriff auf den Server über das Internet. SFTP-Serveradressen können Sie unter Linux über den Dateimanager einbinden und wie Samba-Freigaben nutzen. Für andere Betriebssysteme, etwa Windows, kann man Clientsoftware wie Filezilla verwenden (https://filezilla-project.org). SFTP wird außerdem von vielen Backupprogrammen unterstützt und ist die bevorzugte Übertragungsmethode für Datensicherungen.
SSH haben Sie auf Ihrem Server für die Fernwartung wahrscheinlich schon installiert und damit auch SFTP. Wenn nicht, holen Sie das mit
`sudo apt install openssh-server`
nach. Standardmäßig hat jedes Systemkonto auf dem Server SSH- und SFTP-Zugriff. Im Dateimanager verwenden Sie in der Adresszeile die URL
`sftp://[MeinServer]`
für den Verbindungsaufbau. Für den Zugriff aus dem Internet geben Sie im Router den Port 22 frei.
SFTP ohne Shell-Zugang: Wer SFTP für den Datenaustausch mit Bekannten oder Mitarbeitern über das Internet nutzen möchte, sollte den Shell-Zugriff (Terminalfernwartung) untersagen und SFTP auf ein einzelnes Verzeichnis beschränken. Dazu öffnen Sie die Datei „/etc/ssh/sshd_config“ (als root) in einem Editor und fügen am Ende die folgenden sechs Zeilen an:
```
Match Group sftpgroup
ChrootDirectory /home/sftphome
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
```
Erstellen Sie mit
`sudo addgroup sftpgroup`
eine neue Gruppe und mit den folgenden fünf Zeilen einen neuen Benutzer mit Passwort und das Verzeichnis „/home/sftphome“ mit den erforderlichen Rechten:
```
sudo useradd -s /bin/false -g sftpgroup sftpuser
sudo passwd sftpuser
sudo mkdir /home/sftphome
sudo chown root:root /home/sftphome
sudo chmod 755 /home/sftphome
```
Der Benutzer sftpuser kann sich jetzt über einen SFTP-Client anmelden und Dateien aus „/home/sftphome“ herunterladen. Wenn er auch Dateien hochladen soll, führen Sie folgende Befehle aus:
```
mkdir /home/sftphome/upload
chown root:sftpgroup
/home/sftphome/upload
chmod 775 /home/sftphome/upload
```
Damit erhalten Mitglieder von sftpgroup Schreibrechte im Ordner „/home/sftphome/upload“.
## Serversoftware für Fotoverwaltung
Photoprism (www.photoprism.app) kann Fotos automatisch organisieren. Dafür werden Metadaten wie Titel, Aufnahmedatum, Kameramodell und der GPS-Standort herangezogen.
Die Installation von Photoprism erfolgt in einem Docker-Container. Die von uns vorbereitete Datei [Photoprism-Docker-Compose-File.yaml](https://devwelt.de/myria-de/heimserver/-/blob/main/Photoprism-Docker-Compose-File.yaml?ref_type=heads)“ eignet sich für die Verwendung mit Portainer und einer Docker-Snap-Installation.
In der Datei passen Sie die Variable „PHOTOPRISM_SITE_URL“ an, wenn der Server über eine öffentliche Domain erreichbar sein soll. Die Variablen „PHOTOPRISM_ADMIN_USER“ und „PHOTOPRISM_ADMIN_PASSWORD“ legen die Kontoinformationen für die Anmeldung fest.
Unterhalb von „volumes:“ ändern Sie die Pfade „/home/[User]/Pictures“ und „/home/[User]/Import“. Für den Platzhalter „[User]“ setzen Sie Ihren Benutzernamen ein und erstellen die beiden Verzeichnisse in Ihrem Home-Verzeichnis. Im Ordner „Pictures“ speichert Photoprism die Originaldateien, nach „Import“ kopieren Sie Dateien, die Sie in die Fotoverwaltung importieren möchten.
Beide Ordner können Sie für den einfachen Zugriff über Samba freigeben. Photoprism bietet außerdem die Webdav-URL „http://[MeinServer]/import“ an, über die Sie Fotos auch vom Smartphone aus hochladen können. Manuell gelingt das mit einem kostenlosen Dateimanager wie Cx Datei Explorer (https://m6u.de/CXFX) oder automatisch mit einer App wie Photosync (https://m6u.de/PHOSY, ab 6 Euro).
Bevor Sie den Container erstellen, führen Sie im Terminal
`sudo snap connect docker:home`
aus. Damit ermöglichen Sie der Docker-Snap-App den Zugriff auf Verzeichnisse unter „/home“.
Über die URL „http://[MeinServer]:2342“ greifen Sie auf die Weboberfläche zu. Gehen Sie zuerst auf „Einstellungen“ und ändern Sie die Sprache auf „Deutsch“. Wechseln Sie dann zu „Dateien“ und dort auf „Import“. Nach einem Klick auf „Start“ werden die Bilddateien aus „/home/[User]/Import“ importiert. Alternativ verwenden Sie die Schaltfläche „Upload“.
## Backup und Synchronisation
Wichtige Dateien sollte man mehrfach sichern. Ein empfehlenswertes Tool dafür ist Duplicati (https://duplicati.com), das für Debian, Ubuntu, Fedora, Windows und Mac-OS verfügbar ist. Für die Installation unter Ubuntu oder Debian laden Sie von https://duplicati.com/download das DEB-Paket herunter und installieren es:
`sudo apt install ./duplicati-2.1.0.5_stable_2025-03-04-linux-x64-gui.deb`
Installieren Sie Duplicati auf allen Geräten, für die Sie Backups anlegen wollen. Sie können die Software auch auf dem Server einrichten, etwa um Dateien auf einem externen Laufwerk oder einem externen Cloudspeicher zu sichern.
Bei einem Desktopsystem starten Sie Duplicati, wobei sich automatisch im Browser die URL http://localhost:8200 öffnet. Nach einem Klick auf „Yes“ vergeben Sie ein Passwort. Auf einem Server ohne grafische Oberfläche bearbeiten Sie die Datei „/etc/default/duplicati“. Diese muss folgende Zeile enthalten:
`DAEMON_OPTS="--webservice-interface=any --webservice-password=[AdminPasswort] --webservice-port=8200 --portable-mode"`
Ersetzen Sie den Platzhalter „[AdminPasswort]“ durch ein Passwort,und passen Sie den Port an, sofern dieser schon anderweitig belegt ist. Mit den Befehlen
```
sudo systemctl enable duplicati
sudo systemctl start duplicati
```
aktivieren und starten Sie den Duplicati-Dienst. Danach rufen Sie im Browser http://[Server-IP]:8200 auf. Bei Duplicati funktioniert nur die IP-Adresse, nicht aber der Hostname des Servers. Klicken Sie auf „Log in“ und tippen Sie das Admin-Passwort ein.
**Backup erstellen:** Klicken Sie auf „Sicherung hinzufügen“ und folgen Sie den Anweisungen des Assistenten. Bei „Sicherungsziel“ wählen Sie „Lokaler Ordner oder Laufwerk“, wenn die Sicherung auf eine Festplatte im PC erfolgen soll. Andernfalls wählen Sie „SFTP (SSH)“ oder „WebDAV“ für eine Sicherung vom Desktop-PC auf den Server.
**Tipp:** Eine andere Backupmethode bietet Syncthing. Es synchronisiert Ordnerinhalte zwischen mehreren Geräten. Die Software ist unter dem Namen Syncthing-Fork (https://m6u.de/SYAND) auch für Android verfügbar. Sie können damit automatische Uploads von Fotos und Videos auf Ihren Server konfigurieren. Eine Installationsanleitung finden Sie unter https://m6u.de/SYNCT.