Ich sitze gerade am Buch „LPIC 2 – Sicher zur erfolgreichen Linux Zertifizierung“ und bin wütend. Wütend auf mich selbst, habe ich mich vor einigen Jahren aus reiner Faulheit für Plesk um entschieden und einen sauber konfigurierten Root Server dagegen in die Tonne gekloppt.
Gerade habe ich eine Re-Installation meines dritten, noch leeren VPS bei Contabo angekickt und werde diesen Fehler mit Priorität beheben Plesk zeitnah verbannen.
Damals, schon vor 10 Jahren hatte ich einen Root Server mit eigenem Nameserver auf Basis von BIND9, einen eigenen Mailserver mit Postfix mit Multidomain Unterstützung und Postfixadmin Weboberfläche, einen vollständig konfigurierten Apache2 Webserver mit PHP und unzähligen verschiedenen Einstellungen je nach Domain und Website. Alles „von Hand“ installiert und selbst durchkonfiguriert.
Das gelernte Fachwissen war fantastisch und jetzt, wenn ich mir die Lernziele zu LPI 202 angucke könnte ich es gut gebrauchen (um die Prüfung sozusagen aus dem ff zu bestehen), aber nein, ich habe wirklich viele Details von damals vergessen.
Natürlich sollte man im Jahre 2019/2020 keinen Webserver „von Hand“ konfigurieren ohne Automatisierung, aber das habe ich auch gar nicht vor. Seit 2015 nutze ich Ansible bei der Arbeit um alle Installationen vollständig automatisiert durchzukonfigurieren, das Wissen dazu ist für mich kein Problem.
Mein Ziel, während ich mich parallel auf LPI 202 vorbereite, wird sein, einen neuen Server mit Ansible durchzukonfigurieren um bei einem Crash innerhalb weniger als 1h alles wiederherstellen zu können. Backups der Datenbanken/Webspaces/Mailaccounts werden natürlich benötigt, der Rest wird mit Ansible installiert und konfiguriert und bei bedarf auch ausschließlich mit Ansible die Konfigurationen angefasst angepasst.
Konkretes Beispiel: Nicht etwa wird eine Datei /etc/apache2/sites-enabled/schroeffu.ch.conf von Hand am Zielserver geändert, sondern in Ansible als Template auf einem zentralen Deployment-Rechner/Server angepasst und dann remote ausgerollt. Geht der Server futsch, wird er mit Ansible nach der Debian Reinstallation wieder mit ansible-playbook mein_serverlein_konfigurier_dich__bitte_von_A-Z.yml mit nur einer Zeile durchkonfiguriert. Dann müssen nur noch SQL Backups und Webspace-Ordner und ggf. die Mail-Ordner aus einem Backup wiederhergestellt werden. Fertig.
Da liegt also einige Arbeit vor mir, da bis zu 10 Domains umgezogen werden müssen:
- Es wird Debian 10. Auf Arbeit nutzen wir zwar für 30+ Server weitestgehend Ubuntu 18.04 LTS, und das sogar mit sehr wenigen Problemen, privat möchte ich jedoch Debian noch treu bleiben. Auch wenn mir einige Änderungen in Ubuntu gefallen, wie zum Beispiel das Tool neptlan für die Netzwerk(-Karten) Verwaltung.
- Mit Ansible BIND oder alternativ Unbound durchkonfigurieren (wird Unbound in LPI 202 v4.5 überhaupt schon abgefragt? Moment ich schaue nach. Nein.)
- Mit Ansible Apache2 inklusive gehärtetem fcgid für PHP7 durchkonfigurieren. Und HTTP/2, natürlich ^_^.
Rein NGINX anstatt Apache2 ist zwar auch eine der Möglichkeiten, jedoch hatte ich immer wieder Szenarien die NGINX nicht abgedeckt hat.
Zuletzt auf Arbeit eine Kerberos Authentifzierung, die hat mit NGINX nicht tuten wollen. Daher, wenn NGINX mit auf die Platte kommt, dann eher nur als zusätzlicher Reverse-Proxy für Apache2. - Mit Ansible chrooted SFTP rein für mich und keinen „Kunden“ („Kunden“ waren in meinem Fall hauptsächlich Familie und Bekannte). Dank fcgid wird auch kein „www-data“ für alle Domains/Websiten benutzt, das kann bei einem Hack einer Website auf dem Server durchaus gefährlich werden.
- Eine der letzten Kundenwebsite wird auf einen klassischen Hoster umgezogen, da ich kein Hosting mehr anbieten werde.
Desweiteren nehme ich mir ebenso vor:
- Mit Ansible einen Mailserver mit Postfix mit Rspamd für Multidomain und dazu eine Weboberfläche für die Verwaltung, ggf erneut wie vor 5-7 Jahren Postfixadmin. Oder gibt es da schon besseres? Klar, Mailcow als Dockerimage bietet sich da natürlich an, jedoch widerstrebt es mir schon wieder eine Komplettlösung zu benutzen, da als zukünftig LPIC-2 Zertifizierter der Lerneffekt bei der Nutzung von Mailcow wieder nicht hoch genug ist.
- Mit Ansible eine Firewall mit nftables. Ja, nicht etwa iptables. Nftables setzte ich auf Arbeit vereinzelt schon ein, die Syntax ist wirklich nett. Mit nur einer Zeile habe ich ein Bandwith-Trottling auf spezifischen Ports hinbekommen, wirklich nett. Und es gibt ab Installation eine Datei die alle Regeln beim Hochfahren einliest, bei iptables bis Debian 9ist das heute noch Kopf->Tisch.. 😉 Mit Debian 10 soll ja ebenso nftables der Standard geworden sein.
- Definitiv werde ich auch ModSecurity als WAF – Web Application Firewall – zum Schutz der Websiten im Apache mit einpflegen, die aktuellsten Open Source Rules (OWASP ModSec CRS v3) sollen inzwischen sehr gut sein. Kaum False Positive im Gegensatz zu OWASP CRS v2 und guten Schutz in Bezug auf SQL Injections.
Zugegeben könnte ich die Dienste zusätzlich auch splitten und so in eigene Docker oder LXD Container verfrachten, wäre doch der logische Schritt in der heutigen Zeit von „Test Driven Development“. Nun, bei Basic-Services, wie ich diese grundlegenden Dienste wie Mail oder DNS Sie gerne nenne, sehe ich noch eher davon ab. Noch.
Um nochmal auf das von mir inzwischen gehasste Plesk zurück zu kommen: Plesk hat kurz nachdem ich es „gekauft“ hatte die Lizenzpreise erhöht. Meine Lizenz für Plesk Web Pro Edition kostet mich seither 9,49€ pro Monat, während der VPS bei Contabo je nach Sizing nur 8,99€ oder 4,99€ pro Monat kostet, ich meine, Hallooo? Mehr Kosten für eine beschissene Plesk Lizenz als für den ganzen Server!? Die Preise für Plesk wurden damals Ende 2017 beinahe verdoppelt.
Plesk ist an sich ein tolles Tool was die Funktionen angeht, es ist ein schönes Klicki für Webserver für Nutzer ohne Interesse an der Technik dahinter, jedoch lernt man dabei halt eben 0. Mir war das klar, ich dachte ja auch bei meiner Umstellung auf Plesk 2015, mein Wissen auf Arbeit erweitert sich sowieso um all die Webserver Themen da ich davon täglich tangiert werde, aber das stimmt nur bedingt. Ich vermisse viel mehr das Ändern der Bind Zonendateien wie damals.. Oder das lernen einer neuen Apache Konfiguration um z.b. Varnish Cache davor zu schalten (okay, das habe ich dann nie produktiv gemacht, aber cool ist Varnish allemal).
Ich dachte auch, dank Plesk könne ich schmerzloser ein paar Webseiten von Freunden & Bekannten hosten. Falsch gedacht. Egal wer das Hosting genutzt hat, Fragen zu Plesk wie „Was muss ich denn hier jetzt klicken?“ oder „Wieso bekomme ich immer noch so viele Spam Mails“ kamen genauso an mich.
Spam ist mit Plesk grundlegend ein Problem, ja weil das scheiß SpamAssassin von Plesk unbrauchbar konfiguriert ist. Ich mag Spamassassin sowieso nicht, inbesondere weil der integrierte Bayes Wortfilter einfach nur überholter Schrott ist. Rspamd ist längst auf der Überholspur und das ist gut so.
Plesk war für mich am Ende keine spürbare Entlastung. Ich hätte genauso die Domain, den Mail Account und einen chrooted SFTP Account per SSH anlegen und die Logindaten an meine „Kunden“ weitergeben können, meine bescheidender „Kundenstamm“ wären damit ebenso klar gekommen.
Die Re-Installation des 3. VPS ist inzwischen auch fertig, ich bin dann mal ein Ansible Playbook aufsetzen. Also: Plesk, deine Tage sind gezählt!
7 Kommentare
Marius · 11. September 2019 um 17:20
OMG.. es lebt noch! 😀
Du hast Dich echt dünn gemacht in den letzten Jahren 😉
Jetzt mal eine ganz blöde Frage:
Wenn Du schon ein BACKUP der Daten machst,
wieso dann nicht auch gleich von den Configs der Dienste aka. FULL-BACKUP?
An das Restore muß Du eh ran, da kannste gleich alles nötige rücksichern.
PS: Deine Emailadresprüfung im Form ist veraltet, seit 2008 gibts sowas wie Umlautedomains :DDD
Schroeffu · 11. September 2019 um 17:36
Hey Marius, wie jetzt ernsthaft, du hast UMLAUTE in deiner Mail oO ? 😛 Äh, ich werde das WordPress Plugin anpassen müssen :- ) Hätte jetzt erwartet das ist längst im Core von WP möglich. Muss gucken.
Ja ich war tatsächlich kaum online, zugegeben. Die Kinder sind da der Hauptgrund. Inzwischen haben wir 2 Kids, 6 Monate und 2.5 Jahre, wenn ich mal Zeit nach 22 Uhr für den Rechner habe dann aber 0 Lust zu bloggen, oder meine Server mal auf Vordermann zu bringen.. Weil ja schon 8h/Tag auf Arbeit auf Servern unterwegs. Aber das sch.. Plesk motiviert mich das zu ändern ;-P
Bisher backuppe bisher ich durchaus „FULL“ mit /ein /paar /excludes mit duply, auch für den Fall ein Vertipper in einer config wiederherzustellen. Aber, wiederherstellen aus einem /file /backup indem ich die notwendigen Config-Files heraus frimel muss, das wäre übel, ich weiß doch im Ernstfall kaum schnell genug was alles konfiguriert ist. Apache, bind, nftables, duply, chrony, onlyoffice (docker), mysql, certbot, znc, postfix, postfixadmin, rspamd, usw, etc, ich würde mehrere Stunden brauchen.
Gibt es denn schon brauchbare „Bare Metal Restores“ für VPS’en, habe ich da eine Technik verpasst? Also ein Image zurückspielen auf einen VPS aber das Backup muss im laufenden Betrieb geschehen? Ich kenne keines :o) Lasse mich gerne updaten, hihi.
Wobei, Contabo lässst es m.E. nicht zu einen VPS von einem Image zu installieren. Hmm. Also geht das wohl eh nicht. Schade eigentlich.
tux. · 11. September 2019 um 17:39
Verständlich. Ich mein‘: Linux?! Pf.
Schroeffu · 11. September 2019 um 17:43
Hi tux! Äh dein Comment landete prompt im Spam, hab den mal herausgefischt. BSD ist auch nett 🙂 Gibt’s da eigentlich brauchbare Zertifizierungen für ;-)?
David · 12. September 2019 um 08:49
Der hint zu „Ansible“ gefällt mir!
Meinen Linux Server müsste ich auch komplett neu einrichten (derzeit läuft auf der Maschine noch Debian 7). Bei der letzten Installation habe ich einige Shell-Scripte für die Konfiguration und ein Dok. welches Script wann wie wo ausgeführt werden muss erzeugt. Dann wäre da auch nochmal ein Lerneffekt.
Marius · 14. September 2019 um 08:20
Also dem Spamplugin kann man keinen Vorwurf machen, daß es Geschmack hat 😉
Backup..Bacula wäre was, das kommt mit textlicher und grafischer Konsole daher, einfach gewünschte Dateien aufwählen und wiederherstellen. Das lagert sein Backup auch remote, nur das Format ist komisch…
Hey David.. grüß Dich 🙂 Ach Dich möchte ich ermuntern mal wieder zum Meeting zu kommen. Das HDT ist deutlich gemütlicher als das Protohaus. Wir haben übrigens wieder Radioauftritt im Oktober und „Hilfe“ hrim LPD isz auch immer willkommen.
Schroeffu · 16. September 2019 um 10:46
@Marius Bacula nutze ich bereits in Form von Bareos, dem „Enterprise Fork“, für die Arbeit. Das Tool erscheint mir sehr mächtig, für nur 2-3 Serverleins eigentlich zu mächtig. Es ist letztenelich ja wieder nur ein File-basiertes Backup, dasselbe die duply/duplicity.
Ich bräuchte einen VM-Hoster der mir erlaubt eine VM per ISO selbst aufzusetzen (also nicht nur des Anbieters Installationsimage) und dann ein Backuptool das mir im laufenden Betrieb eine eben solche .iso generiert. Bare Metal Restore als Disaster Recovery. Veeam for Linux vielleicht?