Linux Server absichern

IT-Sicherheit ist in jeder Infrastruktur enorm wichtig

Bei Aufsetzen eines neuen Systems denkt man oft zuerst daran, was alles unternommen werden muss, damit die Systeme ihre Aufgabe erfüllen. Dabei wird die Sicherheit oft vernachlässigt. Was man tun kann, um seine Server abzusichern, zeige ich dir in diesem Artikel. Es erwarten dich Erklärungen zu den Basics der Absicherung von Linux-Servern. Einige der Punkte lassen sich auch auf Windows-Server übertragen.

Updates

Meist so einfach, dass man gar nicht über die Bedeutung nachdenkt. Halte deinen Server immer auf dem neuesten Stand, denn Updates schließen Sicherheitslücken im System und machen dein System dadurch sicherer.
Informiere Dich vorab, wie du bei dem von dir gewählten Betriebssystem die Updates automatisieren kannst. Die meisten modernen Linux-Distributionen, aber auch Windows Server, lassen sich dahingehend leicht automatisieren.

SSH-Keys

SSH-Zugang auf einem Server über das Internet zuzulassen, ist immer eine Schwachstelle, aber manchmal unabdinglich. Falls es nicht möglich ist, den Zugang komplett zu unterbinden, sollte man wenigstens den Zugang mit einem Passwort verbieten und stattdessen die Verbindung über einen SSH-Key aufbauen. Ein SSH-Key besteht aus einem Schlüsselpaar: einem Public Key, der auf dem Zielsystem hinterlegt wird, und einem Private Key, der auf dem Client liegt. Beim Verbindungsaufbau wird geprüft, ob auf dem Zielsystem das Gegenstück zum Private Key hinterlegt ist. Falls ja, wird nicht nach dem Passwort für den Server gefragt, sondern nach dem Passwort für den Private Key. Das wiederum sorgt dafür, dass das Passwort des Servers gar nicht erst übertragen wird und erhöht so die Sicherheit des Servers. Hier besteht allerdings auch die Gefahr sich auszusperren. Sollte der Private Key beispielsweise verloren gehen, ist physischer Zugriff auf das Zielsystem nötig, um den Fernzugriff wieder verfügbar zu machen.

In dem Artikel SSH-Keys auf Ubuntu erstellen zeige ich dir, wie du SSH-Keys anlegst, den Public Key auf deinem Server hinterlegst und den Zugang mit einem Passwort komplett blockierst.

Firewalls

Eine Firewall stellt sich bildlich gesprochen zwischen das Netzwerk und den Server. Ein- und ausgehende Pakete werden gefiltert, bevor sie Schaden anrichten können. Dienste, die auf deinem Server laufen, versuchen oft mit allen verfügbaren Gegenstellen zu kommunizieren. Mit einer Firewall kann man ungewollte Kommunikation verhindern. Andere Dienste wie beispielsweise Webserver sind darauf angewiesen, für das Netzwerk erreichbar zu sein. Diese Dienste können gezielt freigegeben werden.

In unserem Linux Firewall-Artikel vergleiche ich für dich einige Linux-Firewall-Lösungen und gehe außerdem noch etwas genauer auf das Thema ein.
Im Artikel “UFW auf Ubuntu installieren” erkläre ich dir, wie du mit UFW deine Firewall unter Linux unter Kontrolle bekommst.

VPNs und Private Netzwerke

Unter privaten Netzwerken versteht man Netzwerke, die nur für einige bestimmte Server und Clients zur Verfügung stehen. Diese sind physisch abgetrennt vom Internet. Es ist hier also entweder physischer Zugriff nötig, um auf die Server Zugriff zu erlangen, oder ein sogenannter Gateway-Server. Dieser ist sowohl mit dem privaten Netzwerk als auch mit dem Public Netzwerk, also dem Internet, verbunden. Mit diesem kann man dann eine VPN-Verbindung herstellen. VPN steht für Virtual Privat Network und funktioniert wie folgt. Auf einem Server werden Zertifikate ausgestellt, mit diesen wird eine verschlüsselte Verbindung zwischen Client und Server hergestellt, und das private Netzwerk hinter dem Server ist für den Client dann verfügbar. Der Client wird zu dem privaten Netzwerk hinzugefügt und erhält so Zugriff auf dessen Server.

In dem Tutorial “OpenVPN auf Ubuntu installieren” zeige ich dir, wie du einen Server mit OpenVPN Host erstellst und damit Zertifikate für deine Clients ausstellst.

Zertifikate und Verschlüsselungen

Für die meisten Dienste und Protokolle gibt es auch eine verschlüsselte Version. Diese sind meist mit einem zusätzlichen “s“ gekennzeichnet. HTTP wird zu HTTPS und FTP wird zu SFTP. Eine verschlüsselte Verbindung wird mit Hilfe eines Zertifikats ausgestellt. Server sind in der Lage, Zertifikate selbst auszustellen, allerdings werden diese von den Clients nicht immer akzeptiert und müssen oft manuell installiert werden. Um ein Zertifikat zu erhalten, das von den meisten Clients automatisch akzeptiert wird, ist eine sogenannte zentrale, anerkannte Zertifizierungsstelle nötig, kurz CA (certification authority). Die Aufgabe der CA ist, neben der Herausgabe der Zertifikate, deren Überprüfung und deren Integrität sicherzustellen. Damit bildet sie den Kern der Public-Key-Infrastruktur. Die Zertifikate enthalten den Schlüssel, um die Verschlüsselung aufzuheben, außerdem Informationen über den Aussteller und den Eigentümer.

Um deinen Server abzusichern, solltest du all deine Protokolle absichern. Verzichte auf HTTP und FTP und nutze ausschließlich die verschlüsselten Varianten.

Aber nicht nur Verbindungen lassen sich verschlüsseln. Auch ganze Datenträger können verschlüsselt werden. Mit Hilfe von Zertifikaten und Passphrasen lassen sich diese für autorisierte Benutzer wieder entschlüsseln. Einige Distributionen bieten bereits Bordmittel, um Datenträger vollständig zu verschlüsseln, außerdem gibt es Unmengen an externen Tools.

Bist du bereit zu starten?

Oder hast du noch Fragen? Erstelle dir jetzt dein kostenloses Konto oder lass dich in einem persönlichen Gespräch beraten.

Service-Überwachung

Bisher ging es um technische Möglichkeiten, deinen Server sicherer zu machen. Allerdings reicht das nicht aus. Einer der wichtigsten Punkte ist, die Kontrolle über deinen Server nicht zu verlieren. Überwache alle Services, die auf dem Server laufen, und informiere dich über jeden einzelnen. Deaktiviere Services, die du nicht gestartet hast und die, die du nicht benötigst.

Um unter Linux alle aktuell aktiven Dienste und offenen Ports anzuzeigen, kannst du folgenden Befehl benutzen:

– root@server:~# netstat -npl

Außer den Diensten, die auf deinem Server laufen, gibt es auch noch einige Dateien, die für die Sicherheit sehr wichtig sind. Hier ist eine kurze Liste von wichtigsten Files:

– /etc/passwd
– /etc/shadow
– /etc/hosts
– /etc/init/
– /etc/nsswitch.conf

Intrusion-Detection-Systeme, kurz IDS, beschreibt Programme, die Dateizugriffe überwachen und warnen, wenn wichtige Dateien bearbeitet wurden. Wenn du die Änderungen nicht selbst vorgenommen hast, solltest du die Dateien überprüfen und notfalls aus einem Backup wiederherstellen, um die Sicherheit deiner Server zu gewährleisten.

Backups und Snapshots

Selbst wenn der Server abgesichert ist, kann es immer noch passieren, dass es mal zu einem Fehler kommt.

Snapshots sind Absicherungen eines Zustands eines Datenträgers. Der Snapshot an sich ist eine Auflistung an Änderungen, die nach dem Start des Snapshots gemacht wurden. Sind keine oder nur wenige Änderungen vorgenommen worden, so ist der Snapshot relativ klein. Wird aber beispielsweise der gesamte Datenträger geändert, so ist der Snapshot genauso groß wie der Datenträger. Tritt jetzt ein Fehler auf, lässt sich der Snapshot wiederherstellen. Es werden also alle Änderungen, die seit dem Erstellen aufgetreten sind, wieder rückgängig gemacht. Da der Snapshot hierbei allerdings an den Datenträger gebunden ist, ist ein Snapshot kein Backup.

Unter Backup versteht man eine vollständige Absicherung von Daten.
Ein Backup kann also nur ein solches sein, wenn es bei vollständigem Verlust des Datenträgers immer noch erhalten bleibt. Bei gridscale kannst du für einen Datenträger automatisiert Snapshots erstellen und diese anschließend in ein physisch vollständig getrenntes System exportieren. Zusätzlich sind die Storages bei gridscale dreifach redundant. Die Kombination aus diesen drei Methoden sichert all deine Daten perfekt ab.

Isolierte Systeme

Um Systeme noch weiter abzuschotten, ist es am besten, so wenig Angriffsfläche wie möglich zu bieten. Datenbanken müssen zum Beispiel meistens nicht zwangsweise mit dem Internet verbunden sein.
Applications, die nicht unbedingt mit dem Internet verbunden sein müssen, sollten auf getrennten Systemen untergebracht werden. So bieten sie keine Angriffsfläche.

Wie man bei gridscale private Netzwerke aufbaut, wird dir im Artikel “How to gridscale” genau gezeigt.

Fazit

Die Basics der Absicherung eines Servers kennst du nun. Allerdings bieten diese Basics keine 100%ige Sicherheit und erst recht keine Garantie. Allerdings wehrst du einen Großteil der heutigen allgegenwärtigen Bedrohungen mit diesen einfachen Schritten erfolgreich ab. Enthalten deine Server wichtige Daten wie Kundendaten oder sensible Firmendaten, solltest du dir Gedanken darüber machen, einen IT-Sicherheitsexperten zu Rate zu ziehen.