Was die multimedial aufgerüsteten NAS-Boxen für Endverbraucher können, erreichen wir auch mit freier Software. Dieses Kapitel zeigt, wie man einen Server für Fotos, Musik und Filme einrichtet. Bei mir zu Hause läuft Debian auf einem Qnap HS-251+ mit HDMI-Ausgang. Man kann aber auch einen Microserver, einen ausrangierten PC, oder einen Raspberry Pi verwenden. Ein Pulse-Eight Adapter kostet rund 40 Euro und speist die CEC-Signale als USB-Tastatur ein.
Damit wir unser Heimnetzwerk über das Internet unter einem
schönen
Namen wie zum Beispiel fnord.illusioni.de
erreichen, registrieren wir die vom
ISP
dynamisch zugewiesene Adresse bei einem Anbieter für Dynamisches
DNS.
Wer einen eigenen Nameserver betreibt, ruft das dort hinterlegte
CGI-Skript
auf.
Option | Wert |
Anbieter | Benutzerdefiniert |
Update-URL | https://illusioni.de/ddns?<domain> |
Domainname | Domain |
Benutzername | User |
Kennwort | Password |
Dann richten wir Port-Weiterleitungen für verschiedene Dienste ein. Jedoch sollte man sich darüber im klaren sein, dass jede Freigabe eine potentielle Sicherheitslücke öffnet. Keinesfals sollte man interne Dienste wie Samba nach außen durchreichen.
Gerät | IP-Adresse | Freigaben | Port extern |
nas | 192.168.23.2 | SSH | TCP 22 |
HTTP-Server | TCP 80 | ||
HTTPS-Server | TCP 443 | ||
Radicale | TCP 5232 | ||
Syncthing | TCP 22000-22009 | ||
OpenVPN | UDP 1194 |
Das Betriebssystem installieren wir, wenn möglich, auf einer SSD. Die Nutzdaten werden auf herkömmlichen Festplatten gespeichert. Beim Anlegen der Partitionen verwenden wir die gesamte erste Festplatte und verzichten auf Verschlüsselung. Bei der Softwareauswahl wählen wir nur den SSH-Server aus und bringen die Installation zu Ende.
Sobald das frisch installierte System läuft,
melden wir uns per ssh
als normaler Benutzer
mit dem bei der Installation vergebenen Passwort an
und schwingen uns zum Administrator auf.
sudo su -
Dann installieren wir erst einmal diverse Hilfsprogramme.
apt install joe tree psmisc iotop curl fail2ban
Administratoren bekommen einen passwortfreien Zugang, indem wir deren öffentliche Schlüssel hinterlegen.
ssh-rsa AAAAM5bH8j0U4k5kiY9GdK5lKI61/PgyqJrsoUD………ImwPxgfks49VI== User …
Authentifizierung per Passwort deaktivieren wir komplett. So gewährt ausschließlich der Besitz eines Schlüssels den Zugriff auf die Kommandozeile.
/etc/ssh/sshd_configAuthenticationMethods publickey AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server
Ein schönes Motto of the Day hilft dabei, den Überblick zu behalten, wo man gerade angemeldet ist.
/etc/motd⢀⣴⠾⠻⢶⣦⠀ QNAP HS-251+ ⣾⠁⢠⠒⠀⣿⡁ nas 2 GHz Intel Celeron J9100 ⢿⡄⠘⠷⠚⠋⠀ 2 GB DDR3 1333 ⠈⠳⣄ 2 x 3 TB WD30EFRX Red
Zur Konfiguration der Schnittstellen ersetzen wir Debians
ifupdown
-Mechanismus durch
systemd-networkd
.
Die Schnittstelle bekommt eine statische Adresse
und verwendet den Router als Default-Gateway ins Internet.
/etc/systemd/network/eno1.network[Match] Name=eno1 [Network] Address=192.168.23.2/24 Gateway=192.168.23.1
Die Uhrzeit wird mit dem NTP-Server des Routers synchronisiert.
/etc/systemd/timesyncd.conf[Time] NTP=192.168.23.1
Nun aktivieren wir die neuen Nertzwerkdienste und entfernen die nicht mehr benötigten Pakete.
systemctl enable systemd-{networkd,resolved,timesyncd} apt remove ifupdown isc-dhcp-{client,common} rsyslog logrotate anacron cron
Verfügt das Gerät über mehrere Festplatten, dann verwenden wir die Hälfte der Platten für Nutzdaten und die andere Hälfte für die Datensicherung.
mkfs.ext4 /dev/sdb mkfs.ext4 /dev/sdc …
Schließlich binden wir diese in der Dateisystemtabelle ein.
/etc/fstab# What Where Type Options Dump Pass /dev/sda1 /boot/efi vfat umask=0077 0 0 /dev/sda2 / ext4 noatime 0 0 /dev/sda3 none swap sw 0 0 /dev/sdb /srv ext4 noatime 0 0 /dev/sdc /var/lib/restic ext4 noatime 0 0
Der Heimserver braucht keinen Bereitschaftsmodus.
/etc/systemd/sleep.conf[Sleep] AllowSuspend=no AllowHibernation=no AllowSuspendThenHibernate=no AllowHybridSleep=no
Zum Abschluss starten wir das System einmal durch.
reboot
Nun können wir den Rechner ins Regal stellen und die restliche Installation vom Arbeitsplatz aus erledigen.