Installation eines Debian Systems 13 (Trixie)
... auf einem 149 EUR Mini-PC:
Den habe ich in Amazonien gekauft als Mini-PC N3710 (4C/4T, 2,4 GHz) 8 GB RAM 128 GB SSD Win10 WLAN5/Bluetooth 4.2/RJ45 LAN 1000M/USB*4/USB-C*2/HDMI*2, 4K@30Hz Dual-Monitor-Ausgabe, ultraleicht, leise, 4-6W energieeffizienter Mini-PC. Weil ich einen eigenen Apache Webserver aufsetzen wollte.
Hintergrund
Meine alte Synology DS von 2015 wollte nach dem letztmöglichen Update auf DSM 7.0 leider nicht mehr so wie vorher. Schon bei DSM 6.2 gab es das Problem, dass zwar Apache 2.2 funktionierte, Apache 2.4 aber nicht zum Laufen zu bewegen war. Also blieb es dort bei Apache 2.2 und alles funktionierte.
Nach dem (retrospektiv leider) durchgeführten Upgrade auf DSM 7 begann die Problemserie: Apache 2.2 wird nicht mehr unterstützt. Apache 2.4 theoretisch schon, lässt sich praktisch aber nicht ans Laufen bringen (einmal schon, danach aber komischerweise nicht mehr). Da im Hintergrund sowieso NGINX als Webserver läuft, habe ich dann halt zu NGINX gewechselt. Das lässt aber unter DSM (ansonsten schon) keine Server Side Includes zu. Also auf PHP umschwenken, was problemlos funktioniert. Aber dafür musste ich hunderte von websites anfassen.
Um dann allerdings festzustellen, dass das mit dem Passwortschutz per htaccess nun unter NGINX nicht mehr funktioniert. Theoretisch sollte es aber auch möglich sein, zentral eine Zugriffssteuerung unter NGINX zu etablieren, aber das wird von der Synology Oberfläche nicht so unterstützt, wie ich es haben möchte (oder ich bin zu blöd, das hin zu bekommen).
Da Apache aber nicht laufen will, habe ich mich kurzehand dazu entschlossen, es wie "damals (TM)" zu machen und einen eigenen Webserver aufzusetzen. Für die recht einfachen Webseiten mit Fotos drin hätte eigentlich auch ein Raspberry Pi gereicht, aber der verwendet ja originät eine SD Karte als Speicher und das ist jetzt nicht etwas, das sich durch langjährige Performance auszeichnet. Nach ca. 1 Jahr Dauergebrauch sind meistens die SD Karten hinüber.
Natürlich kann man auch SSDs an den Pi anflanschen, braucht dazu dann neben dem Pi auch noch einen Adapter und die SSD. Dann kommt man ohne Gehäuse auch schon in Richtung 150-200 EUR und muss noch das Bootrom flashen.
Daher fiel mein Blick auf den obigen kleinen Mini-PC, der schon mit 8GB Hauptspeicher und 128GB SSD daherkommt. Der Prozessor mit vier Kernen und 2.4MHz entspricht etwa dem, was auch heute in einer Synology verbaur würde; allerdings ist dieser Prozessor schon aus dem Jahr 2015 und seit 2022 abgekündigt. Für einen simplen Webserver aber wahrscheinlich mehr als ausreichend. Von den Abmessungen her rangiert das Teil ziemlich genau zwischen apple TV und dem neuen kleinen Mac Mini.
Vorbereiten
Als erstes ein aktuelles netinst Debian-Image für meinen Prozessor (Intel 64 bit; also das ARM 64 Image nehmen) heruntergeladen.
Alten USB Stick gesucht und geschaut, ob ich da noch wichtige Daten drauf habe oder ihn überschreiben kann. Gefunden!
Um das image auf den USB Stick zu schreiben, habe ich mir das winzig kleine (etwa 2MB) Helferlein Rufus runtergeladen. Das ist eine selbstanlaufende EXE Datei, d.h. keine Installation nötig und kann anschließend wieder runtergeschmissen werden.
Dann das Image auf den Stick gebrannt, Stick in Mini-PC, an selbigen noch Monitor, Tastatur und Maus angeschlossen.
Installation starten
Also Anschalten und gespannt sein: Intel Logo erscheint, der Rechner läuft also an. Dann scheint er vom USB Stick zu booten, ohne dass ich im BIOS die Bootreihenfolge unstellen muss, denn an sich soll ein Windows vorinstalliert sein, was nicht anfährt. Soweit so gut. Statt in die Debian Installation zu springen, erschien allerdings nur eine GRUB Seite und ein Prompt. So hatte ich mir das nicht vorgestellt. Die Lösung liegt im Bios und in der Art und Weise, wie Rufus den Stick formatiert.
Zunächst hatte ich nämlich probiert bei Rufus mit MBR (empfohlen für BIOS und UEFI) zu formatieren. Das passt allerdings nicht zum Bios des Mini-PCs. Wenn mann allerdings die Option GBR zum Formatieren auswählt, läuft es richtig.
Der Einfachheit halber habe ich die grafische Installation gewählt. Die ist recht intuitiv.
- Rechnernamen eingeben
- domain eingeben (wenn der rechner z.B. als Server im Netz laufen soll)
- ein root-Passwort vergeben und wiederholen (s. dazu Anmerkungen weiter unten)
- Dann einen Benutzernamen (Vor- und Nachname) in lesbarem KLartest angeben
- Den linux-Benutzernamen eingeben (wird schon vorgeschlagen; nur Kleinbuchstaben und keine Leerzeichen) verwenden
Das lief auch alles gut bis zu dem Punkt, an dem die apt Pakete geladen werden sollen. Ich hatte den Spiegelserver der uni Heidelberg gewählt und dann ging nach 1/3 gar nichts mehr. Also Neustart und alles wiederholt und dann den Server der TU Chemnitz genommen. Daraufhin lief alles durch.
Apache
Wenn man bei den zu installierenden Paketen gleich den Webserver mit anklickt, wird Apache (in dem Fall 2.4) installiert; ansonsten müsste man den mit
apt install apache2 noch nachinstallieren.
sudo systemctl status apache2, um nachzuschauen, ob Apache läuft
Feste IP-Adresse
Als Server sollte der Rechner immer die geiche feste IP-Adresse zugewiesen bekommen. Die Fritz-Box ist als DHCP Server so eingestellt, dass sie erst ab xxx.xxx.xxx.030 Adressen vergibt. Den Rest habe ich mir für feste IP Adressen reserviert und vergebe meinem neuen Rechner nun eine noch freie IP unterhalb von 30. Das mache in den Settings auf der grafischen Debian-Oberfläche. Netmask 255.255.255.0 und Gateway ist meine Fritz-Box.
Tools
Am besten gleich den midnight commander installieren (mein Lieblingstool auf Linux) mit sudo apt install mc.
SSH aktvieren
Wenn der SSH Server nicht bei der Installation schon mit ausgewählt wurde (Krezuchen bei SSH Server gesetzt), dann muss er nachinstalliert werden:
sudo apt install openssh-server -y
sudo systemctl status ssh sollte running anzeigen. Falls nicht:
sudo systemctl enable ssh zum Starten und anwenden.
Nun kann z.B. per putty auf den Server zugegriffenwerden.
root login per ssh aktivieren
Debian erlaubt je nach Einstellung bei der Installation aus Sicherheitsgründen das direkte Einloggen per ssh nicht. Denn och kann man als Benutzer mit sudo oder su - nach Eingabe des root-passworts Kommandos auf rootebene absetzen.
Möchte man hingegen auch das direkte Einloggen per root erlauben (das wäre z.B. für cyberduck sehr hilfreich), dann kann man dies dennoch ermöglichen:
Als Benutzer einloggen und dann mit su - root Rechte holen.
Die Datei etc/ssh/sshd_config editieren und folgende Zeilen hinzufügen oder das # entfernen:
PasswordAuthentication yes
PermitRootLogin yes
Danach mit (sudo) systemctl restart ssh den SSH Server neu starten
Impressum und Erklärung zum Datenschutz