Du hast eine Linux Kiste und möchtest diese im Internet erreichbar machen?
Hardening kommt zuerst!
Starte mit diesem Guide
Weniger ist mehr – Grundlage schaffen
Programme löschen oder passende Linux verwenden
Linux Distributionen kommen mit einer Auswahl an Programmen, welche beliebt sind. Oft muss aber der Server nur 1 Aufgabe erledigen und alle anderen Tools sind nutzlos.
Auf der anderen Seite ist jede installierte Software ein Sicherheitsrisiko, welches Du nicht eingehen musst. Du versuchst beim Debloating Dich von allen Ballast zu befreien. Alpine oder Slim-Docker System sind eine gute Wahl, weil diese von Beginn an sehr spartanisch ausgestattet sind.
Minimale Rechte verteilen
Nicht jeder Nutzer soll auf alle Daten Zugriff haben.
- Admins sollen verwalten und nicht die Produktivdaten einsehen.
- Nutzer sollen ihre Dateien verwalten können und nur die geteilten Ordner einsehen, welche für diese zu diesem Zeitpunkt relevant sind.
Rechte-Vergabe und -Entzug sind ein lästiges Thema, aber nur so kann während Übernahme eines Accounts der Schaden minimal gehalten werden.
Alle Services aus die nicht benötigt werden
Linux bietet die Möglichkeit an, Programme im Hintergrund laufen zu lassen.
Standardmäßig ist der Apache-Server, ein Webserver, aktiviert, welcher die Standard-Apache-Webseite zeigt. Viele Linux-Kisten nutzen wir heute als Apache-Server, aber nicht alle.
Deaktiviere alle Services, welche Du nicht nutzt. Aktivere nur die Services in dem Umfang, wie Du sie brauchst.
Root entfernen – Limitiere Zugriff
Der Root Account ist der Gott-Account auf Deine Linux-Kiste. Der Root kann alles machen und das Systems so manipulieren, dass er sich selbst löschen und das System zerstören kann.
Wenn Du das falsche Kommando über Root eingibst, kannst Du Teile an Deinem Betriebssystem unabsichtlich beschädigen. Das heißt nicht, dass Du diesen nicht benutzen solltest, sondern nur mit großer Vorsicht vorgehen sollst.
Der sudo Prafix schaltet kurzfristig genügend Berechtigungen frei, um Programme zu updaten, zu installieren oder wichtige Datei zu ändern. Der Root-Account kannst Du einfach deaktivieren, sodass Du nur noch sudo mit einem normalen Nutzer verwendest.
Sicherer Betrieb – so gehts einfach
Logging aktivieren und zum SIEM Server senden
Wenn Du vor Dein Server stehst, kannst Du diesen intensiv beobachten und 3 Monate lang nicht merken, ob dieser gehackt ist. Viele Hacks fallen Dir nicht auf. Kriminelle dringen unbemerkt in den Computer ein, laden die Daten herunter und verkaufen diese im Darknet.
Du merkst Monate lang davon nichts. Deshalb musst Du Dir eine Übersicht mit Logdateien schaffen. Das geht am besten, wenn Du ein SIEM Tool verwendest, welche die Logdaten sammelt und beim Beobachten hilft.
SMART-Warnungen und überlaufender Speicher
Jede noch so zuverlässige Festplatte oder SSD stirbt irgendwann. Die einzige Chance den Tod vorherzusehen ist die SMART-Warnung.
Check SMART from Server
sudo smartctl --all /dev/nvme0n1
Look for if pass or not:
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Samsung SSD - 1200 TBW via licence
Data Units Written: 19,061,660 [9.75 TB]
Anhand von Gesundheitsparametern kann das SMART Programm den Zustand der Festplatte beurteilen. Backups sind Pflicht, trotzdem musst Du ein kritisches System nicht beim Sterben zuschauen. Tausche die Speichergeräte rechtzeitig aus!
Sichere Configs für Services
Alle Services, die im Internet erreichbar sind, musst Du im Detail verstehen. Wie sehen die Best Practicies aus, um die Daten zu schützen? Wie kann ich das Standardpasswort ändern? Welche Configs sind die besten? Wie kann ich sicher Dritten Zugang zu dem System geben? Jeder Service braucht eine Sonderbehandlung, bevor Du diesen in das Internet öffnen solltest.
Einbindung in eine Backupprozedur
No Backup, no Compassion.
Backups sind das Brot und Butter für jeden sicheren Betrieb. Oft sind nicht nur Kriminelle unterwegs, sondern auch die eigene Blödheit kann das System lahmlegen und alle Daten löschen.
Backups sind lästig, aber die einzige Möglichkeit Dich vor 1000 Verlust-Szenarien zu schützen.
Server in eine Colocation – Phyisische Sicherheit
Weil viele sich gegen eine lokale Verschlüsselung entscheiden, achten diese auf sichere Umgebungen. Ein Tresor ist zwar nett, aber dort wird es schnell heiß und ist meistens nicht so sicher.
Professionelle Rechenzentrumsbetreiber erlauben es Dir Computer in Racks zu schrauben. Diese Rechenzentren sind 24 / 7 bewacht und bieten starke Türen, Stacheldrahtzaun, sowie eine sichere Internet- und Stromversorgung.
Auto-Updates mit Rollback oder Patchprogramm
Die Hardware kann nur so sicher sein, wie die Software, welche diese nutzt. Deshalb solltest Du Updates immer zügig einspielen. Früher hat man erst nach 30 Tagen Windows Update eingespielt, um Probleme zu vermeiden.
Heute erwartet man Probleme und führt automatisch ein Rollback aus, wenn ein Update streikt. Die Gefahr 30 Tage mit einer Schwachstelle zu leben ist viel größer, als einen Rollback durchzuführen.
Wenn Du eine Linux Maschine updaten muss, welche für das DNS zuständig ist oder andere super wichtige Aufgaben erledigt, brauchst Du ein Patchprogramm. Je nach Wichtigkeit musst Du die Updates einspielen und die Maschine 24 / 7 aktiv betreuen. Diese Prozedur ist teuer und wird von den meisten vernachlässigt.
Verschlüsselung – Noch kein Standard
Überlegen ob Vollverschlüsselung Sinn ergibt
Eine Vollverschlüsselung ergibt in den folgenden Fällen Sinn:
- Jemand könnte die Hardware aus Deinem Computer klauen, um an die Daten zu kommen. Laptops sind oft verschlüsselt, weil diese Computer in der Öffentlichkeit aus Rucksäcken geklaut werden. Entschlossene Kriminelle besuchen Dich auch zu Hause oder im Rechenzentrum, wenn die digitale Firewall zu gut ist.
- Die Festplatte fällt aus, sodass ein sicheres Löschen nicht möglich ist. Eine Verschlüsselung entspricht einer sicheren Löschung, wenn der Schlüssel garantiert vernichtet ist.
Nur verschlüsselte Protokolle nutzen
Der Computer wurde in einer heilen Welt entwickelt. Innerhalb des Militärs und Universitäten gibt es keine / kaum Kriminellen. Computer waren zu dieser Zeit Spielzeug, weil die kritischen Datenflüsse immer noch auf Papier stattfanden.
Deshalb sind die Standardprotokolle wie HTTP, FTP, Telnet und mehr unsicher. Deaktiviere diese, sperre die Ports und verwende die neuartigen verschlüsselten Protokolle wie HTTPs, SFTP oder SSH, um sichere Computer zu betreiben.
Alte Protokolle sperren / ausschalten nicht verwenden
Gehe aktiv gegen alte Protokolle vor. Viele Anwendungen und Maschinen nutzen diese Protokolle immer noch und werden es in 20 Jahren tun, wenn Du nicht aktiv etwas unternimmst. Die verschlüsselte Varianten sind meist aufwendiger und komplizierter zu konfigurieren.
Kein Passwort-Aging – dafür längere Passwörter
Bis heute gibt es keinen praktischen Vorteil nach einem Zeitablauf ein Passwort zu ändern. Die Praxis zeigt, dass die Passwörter unzureichend bleiben.
Vergesse Passwortregeln und achte darauf, dass die Passwortlänge ausreichend ist. Prüfe zusätzlich jedes Passwort in einer Breach-Datenbank wie haveibeenpwned, ob die Passwörter komplementiert wurden.
Firewall an – Datenfluss steuern
Firewalls filtern alle Datenpakete, welcher über das Ethernet-Kabel oder WLAN-Chip Deinen Computer erreichen. Du hältst nur die Ports offen für TCP oder UDP, wenn Du diese aktiv brauchst.
Alle anderen Pakete blockt die Firewall im Computer automatisch. ufw ist ein Supertool, um einfach diese zu konfigurieren.