In diesem Artikel werden einige praktische Sicherheitsmaßnahmen vorgestellt, die Sie bei der Konfiguration und Einrichtung Ihrer Serverinfrastruktur ergreifen können. Diese Liste ist nicht vollständig, aber sie bietet Ihnen einen Ausgangspunkt, auf dem Sie aufbauen können.
Zu einer guten Sicherheit gehört es, Ihre Systeme zu analysieren, die verfügbaren Angriffsflächen zu verstehen und die Komponenten so gut wie möglich abzusichern.
Mit Hilfe der Dienstüberprüfung lässt sich feststellen, welche Dienste auf einem bestimmten System ausgeführt werden, welche Ports sie für die Kommunikation nutzen und welche Protokolle diese Dienste verwenden. Anhand dieser Informationen können Sie konfigurieren, welche Dienste öffentlich zugänglich sein sollen, sowie Firewall-Einstellungen, Überwachung und Warnmeldungen festlegen.
Jeder laufende Service(Dienst), egal ob er intern oder öffentlich zugänglich sein soll, stellt eine erweiterte Angriffsfläche für böswillige Benutzer dar. Je mehr Dienste Sie betreiben, desto größer ist die Wahrscheinlichkeit, dass Ihre Software von einer Schwachstelle betroffen ist.
Sobald Sie eine gute Vorstellung davon haben, welche Netzwerkdienste auf Ihrem Computer ausgeführt werden, können Sie damit beginnen, diese Dienste zu analysieren. Wenn Sie eine Dienstprüfung durchführen, stellen Sie sich die folgenden Fragen zu jedem laufenden Dienst:
Diese Art von Dienstüberprüfung sollte bei der Konfiguration jedes neuen Servers in Ihrer Infrastruktur zur Standardpraxis gehören. Die Durchführung von Dienstprüfungen alle paar Monate hilft Ihnen auch, Dienste mit Konfigurationen zu erkennen, die möglicherweise unbeabsichtigt geändert wurden.
SSH (Secure Shell) ist ein verschlüsseltes Protokoll, das zur Verwaltung und Kommunikation mit Servern verwendet wird. Wenn Sie mit einem Server arbeiten, werden Sie wahrscheinlich die meiste Zeit in einer Terminalsitzung verbringen, die über SSH mit Ihrem Server verbunden ist. Als Alternative zu passwortbasierten Anmeldungen bieten SSH-Schlüssel durch Verschlüsselung eine sichere Möglichkeit, sich bei Ihrem Server anzumelden, und werden für alle Benutzer empfohlen.
Bei SSH-Schlüsseln werden ein privates und ein öffentliches Schlüsselpaar zum Zweck der Authentifizierung erstellt. Der private Schlüssel wird vom Benutzer geheim und sicher gehalten, während der öffentliche Schlüssel weitergegeben werden kann. Dies wird gemeinhin als asymmetrische Verschlüsselung bezeichnet.
Bei SSH ist jede Art der Authentifizierung – auch die Passwortauthentifizierung – vollständig verschlüsselt. Wenn jedoch passwortbasierte Anmeldungen zulässig sind, können böswillige Benutzer wiederholt und automatisch versuchen, auf einen Server zuzugreifen, insbesondere wenn dieser eine öffentliche IP-Adresse hat. Es besteht die Möglichkeit, den Zugriff nach mehreren fehlgeschlagenen Versuchen von derselben IP-Adresse aus zu sperren, und böswillige Benutzer werden in der Praxis dadurch eingeschränkt, wie schnell sie versuchen können, sich bei Ihrem Server anzumelden
Wenn Sie die SSH-Schlüsselauthentifizierung einrichten, können Sie die kennwortbasierte Authentifizierung deaktivieren. SSH-Schlüssel haben in der Regel viel mehr Datenbits als ein Kennwort – Sie können einen 128-Zeichen-SSH-Schlüssel-Hash aus einem 12-Zeichen-Kennwort erstellen -, so dass es viel schwieriger ist, sie zu erzwingen. Einige Verschlüsselungsalgorithmen gelten dennoch als knackbar, wenn man versucht, die Hashes von Passwörtern auf einem ausreichend leistungsfähigen Computer oft genug nachzubilden. Andere, einschließlich des standardmäßigen RSA-Schlüssels, der von modernen SSH-Clients generiert wird, sind noch nicht zu knacken.
Virtual Private Cloud (VPC)-Netzwerke sind private Netzwerke für die Ressourcen Ihrer Infrastruktur. VPC-Netzwerke bieten eine sicherere Verbindung zwischen den Ressourcen, da die Schnittstellen des Netzwerks vom öffentlichen Internet aus nicht zugänglich sind.
Einige Hosting-Anbieter weisen Ihren Cloud-Servern standardmäßig eine öffentliche Netzwerkschnittstelle und eine private Netzwerkschnittstelle zu. Wenn Sie die öffentliche Netzwerkschnittstelle für Teile Ihrer Infrastruktur deaktivieren, können sich diese Instanzen nur über ihre privaten Netzwerkschnittstellen über ein internes Netzwerk miteinander verbinden, was bedeutet, dass der Datenverkehr zwischen Ihren Systemen nicht über das öffentliche Internet geleitet wird, wo er ausgesetzt oder abgefangen werden könnte.
Indem Sie nur einige wenige dedizierte Internet-Gateways, auch Ingress-Gateways genannt, als einzigen Zugangspunkt zwischen den Ressourcen Ihres VPC-Netzwerks und dem öffentlichen Internet freigeben, haben Sie mehr Kontrolle und Transparenz über den öffentlichen Verkehr, der sich mit Ihren Ressourcen verbindet. Moderne Container-Orchestrierungssysteme haben ein sehr gut definiertes Konzept von Ingress-Gateways, da sie standardmäßig viele private Netzwerkschnittstellen erstellen, die selektiv freigelegt werden müssen.
Auch bei einer sicheren Ausgangskonfiguration sollten Sie nicht vergessen, dass Sicherheit ein fortlaufender und iterativer Prozess ist. Fragen Sie sich immer, welche Auswirkungen jede Änderung auf die Sicherheit haben könnte und welche Schritte Sie unternehmen können, um sicherzustellen, dass Sie stets sichere Standardkonfigurationen für Ihre Software erstellen.