1. Index
  2. Debian
  3. Desktop
  4. Heimserver
  5. Webserver

Der Heimische Medienserver

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.

Dienste im Heimnetz

Ports im Router freigeben

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.

Fritz!Box / Internet / Freigaben / Dynamic DNS
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.

Fritz!Box / Internet / Freigaben / Portfreigaben
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

Debian installieren

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

Secure Shell einrichten

Administratoren bekommen einen passwortfreien Zugang, indem wir deren öffentliche Schlüssel hinterlegen.

/root/.ssh/authorized_keys
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_config
AuthenticationMethods 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

Netzwerk konfigurieren

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

Dateisystem anlegen

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

Schlafmodus deaktivieren

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.

Literatur

  1. Patrick Gillespie: Text-to-ASCII-Generator
  2. Prof. Eben Moglen: FreedomBox