Wer sich von den verlockenden Angeboten der großen Internet-Konzerne unabhängig machen möchte, schließt einfach eigene Rechner an das Internet an und betreibt verschiedene Dienste auf der Grundlage freier Software selbst. Im Rechenzetrum unseres Vertrauens läuft Debian auf zwei gebraucht gekauften Dell PowerEdge R210 Rechnern. Es reicht aber auch, virtuelle Rechner bei einem Anbieter wie Linode zu mieten.
Auf dem Webserver installieren wir Debian per Startmedium. Das Betriebssystem landet, 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 verzeichten 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·▄▄▄▄ ▄• ▄▌▄▄▄ • ▌ ▄ ·. .▄▄ · ▄▄▄▄▄▄▄▄ ▄▄▄· ▐ ▄ ▄▄ • ██▪ ██ █▪██▌▀▄ █··██ ▐███▪▐█ ▀. •██ ▀▄ █·▐█ ▀█ •█▌▐█▐█ ▀ ▪ ▐█· ▐█▌█▌▐█▌▐▀▀▄ ▐█ ▌▐▌▐█·▄▀▀▀█▄ ▐█.▪▐▀▀▄ ▄█▀▀█ ▐█▐▐▌▄█ ▀█▄ ██. ██ ▐█▄█▌▐█•█▌██ ██▌▐█▌▐█▄▪▐█ ▐█▌·▐█•█▌▐█ ▪▐▌██▐█▌▐█▄▪▐█ ▀▀▀▀▀• ▀▀▀ .▀ ▀▀▀ █▪▀▀▀ ▀▀▀▀ ▀▀▀ .▀ ▀ ▀ ▀ ▀▀ █▪·▀▀▀▀ Dell PowerEdge R210 II 9NFF5Z1 3.3 GHz Intel Core i3-2120 16 GB DDR3-1333 UDIMM 256 GB Samsung SSD 830 4000 GB HGST Deskstar NAS
Zur Konfiguration der Schnittstellen ersetzen wir Debians
ifupdown
-Mechanismus durch
systemd-networkd
.
Die Schnittstelle bekommt eine statische Adresse
nach den Vorgaben des Anbieters.
/etc/systemd/network/eno1.network[Match] Name=eno1 [Network] Address=2001:1b18:a1::69/64 Gateway=2001:1b18:a1::1 Address=81.92.164.69/26 Gateway=81.92.164.65
Die Uhrzeit wird mit dem NTP-Server des Anbieters synchronisiert.
/etc/systemd/timesyncd.conf[Time] NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org …
Der qualifizierte Hostname (FQDN) muss aufgelöst werden.
/etc/hosts127.0.0.1 localhost 127.0.1.1 durmstrang.illusioni.de durmstrang
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
Die Nutzdaten werden wir auf herkömlichen Festplatten speichern. Falls mehrere Festplatten installiert sind, bilden wir einen RAID-Verbund mit dem Btrfs-Dateisystem. Die Metadaten werden gespiegelt und Nutzdaten gleichmäßig verteilt.
mkfs.btrfs --metadata raid1 --data raid0 /dev/sdb /dev/sdc …
Darin legen wir die benötigten Verzeichnisse an.
mount /dev/sdb /srv mkdir /srv/{mail,www,gitea,restic}
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 btrfs noatime 0 0
Der Webserver 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 Rack schrauben und die restliche Installation von zu Hause aus erledigen.