Ich traue mir zumindest zu, den Server einigermassen absichern zu können. Für weitere Schritte würde ich im Vorfeld online viel recherchieren. Auch hab ich das Buch Hacking & Security von Kofler hier rumfliegen, welches ich bereits grundlegend überflogen habe.
Diese Vorarbeiten dürften Viele als unzureichend erachten. Ich empfehle dringend das Durchlesen und Durcharbeiten einschlägiger Literatur und einer Online-Recherche unter Verwendung einer lokalen virtuellen Maschine (oder verfügbarer dedizierter Hardware wie einen NUC/Raspberry Pi o. ä.). Geübt wird immer dort, wo man nichts anderes kaputt machen kann. Wichtig ist u. a. der lokale Machbarkeitsbeweis, was die Abschottung/Abschaltung aller nichtgenutzter Ports/Dienste anbelangt und hier insbesondere das Verständnis, wodurch das erreicht wird – ein einfaches Abtippen von Rezepten reicht nicht. Und die Administration eines exponierten Servers und eines (durch eine Firewall/ein Kabelmodem rudimentär geschützen) Desktops unterscheidet sich doch deutlich.
Auch die obengenannte Testumgebung kann man heutzutage zuhause längere Zeit betreiben (und teilweise damit auch exponieren) dank verfügbarer DynDNS-Dienste oder IP-Adressen, welche zumindest eine längere Zeit konstant zugeordnet werden können (der 24h-Stunden-IP-Wechsel ist heute selten geworden).
Und ja, auch der Verwaltungsaufwand. Täglich Updates durchjagen ist ja noch o.k. Aber sämtliche Logs täglich per Hand durchgehen ? Machen das wirklich die meisten ? Wie soll das funktionieren, wenn man mal mehrere Server verwaltet, wie machen das die ganzen Webhostingunternehmen ? Wieviel Zeitaufwand sollte ich da täglich einrechnen, wenn ich es einigermassen richtig machen will ?
Stichworte "Automation" und "Vereinheitlichung":
- Wichtige Sicherheitsupdates lassen sich automatisch einspielen, und der Linux-Kernel erlaubt sogar das Einspielen von Hotfixes, ohne in jedem Fall einen Reboot durchführen zu müssen; einige Distributionen/Firmen bieten dies als Service an, so dass man im Falle von Sicherheitslücken ein paar Tage Luft gewinnt, bis man ggf. einen neuen Kernel installiert oder anderweitige Änderungen vornimmt
- Wenn man eine möglichst einheitliche Infrastruktur pflegt, ist das parallele/serielle Ausrollen derselben Updates/Änderungen auf mehreren Rechnern deutlich weniger aufwendig; hier sollte man sich immer auch an Lösungen orientieren, welche nach Möglichkeit von vielen Anderen (auf ähnlicher Weise) genutzt werden, um im Falle eines Falles auf das Praxiswissen Dritter zurückgreifen zu können (via Mailinglisten, Diskussionsforen, Chatkanälen, Fachartikeln, ...)
- Auch für Logs gibt es natürlich Filter, welche verhindern sollen, dass man mit Nachrichten überfrachtet wird (wichtige Meldungen sind Analysen von potentiellen Einbrüchen/Datenmanipulationen oder Ressourcenengpässen (Platte voll, usw.); unwichtige(re) Meldungen sind diejenigen, welche die einwandfreie Funktion von Sicherheitsmechanismen o. ä. dokumentieren)
- Der einzuplanende Zeitaufwand ist abhängig von der Anzahl/Komplexität der verwendeten Dienste und der Vorarbeiten (notwendige Updates von Bibliotheken/"Stapeln" kann man im Voraus planen, beispielsweise das Ersetzen nicht mehr unterstützter PHP-Versionen o. ä.)
Aber wie habt ihr angefangen ? Habt ihr alle wirklich brav am Heim PC alles bis in die Perfektion gelernt ? Wann hat es Klick gemacht, es jetzt auch online zu versuchen ?
Perfektion ist ein Mythos, man lernt niemals aus und immer etwas dazu (und muss auch dazu bereit sein); reicht die Zeit dafür nicht aus, ist zu überlegen, sich zusammenzuschließen und/oder Aufgaben (gegen Geld) zu delegieren. Es gibt Hostingangebote mit vordefinierten Applikationen, wo man sich Arbeit abnehmen lassen kann. Ausschlaggebend ist immer der unbedingte Bedarf (siehe oben: Evaluation/Spielen geschieht in abgeschotteten Umgebungen).
Bei mir fing alles mit einem eigenen IRC-Bouncer und einem Mailserver an, nachdem ich selbige zuvor auf teil-/mitadministrierten Rechnern aufgesetzt und betreut hatte...