Die kürzlich gefundene Sicherheitslücke im Network Time Protokoll (NTP) hat die Serversicherheit zurück ins Rampenlicht gerückt und gezeigt, wie wichtig es ist einen Server abzusichern. Die Gefahren für öffentliche Server erstrecken sich hierbei von DDoS Attacken über Brute Force Angriffe, Code-Injections und Session-Hijacking bis hin zu der Ausnutzung von Schwachstellen in populären Content Management Systemen (CMS) wie Joomla, WordPress oder Drupal.
Kein Server kann jemals zu 100 Prozent abgesichert sein. Sicherheitsexperten arbeiten stets daran, die neuesten Bedrohungen aufzudecken und zu bekämpfen. Die Angreifer scheinen jedoch stets einen Schritt voraus zu sein. Im Zuge der aktuellen Sicherheitsbedrohungen möchten wir uns kurz Zeit nehmen, wichtige Schritte hervorzuheben, die Sie setzen können, um Ihren dedizierten Linux Server abzusichern (Linux Hardening).
Administratorenzugriff absichern
Dedizierte Linux Server werden am häufigsten mit dem Secure Shell (SSH) Protokoll verwaltet. SSH bietet einen verschlüsselten Tunnel zwischen Client und Server, der es ermöglicht, empfindliche Befehle und Passwörter sicher „vor neugierigen Blicken“ zu transportieren. Obwohl das SSH Protokoll in seiner aktuellen Version an sich nicht unsicher ist, kann man durch Anpassungen der Standard-Konfiguration die Sicherheit erhöhen. Gemäß Konvention der Internet Assigned Numbers Authority (IANA) ist SSH dem Port 22 zugeordnet. Nebenbei bemerkt ist dies der am dritthäufigste gescannte TCP-Port im Internet. Automatisierte Bots und Scanner suchen nach Servern welche den Port 22 geöffnet haben und versuchen dort eine Brute-Force Attacke auf SSH Logins. Diese Attacken können auf drei Wege vermieden werden:
1. Ändern Sie den SSH Port.
Den SSH-Daemon auf einen Nicht-Standard-Port zu binden und dort „lauschen“ zu lassen, wird die Anzahl der Brute-Force-Login-Versuche drastisch reduzieren. Scanner und Bots sind meist so konzipiert, dass sie den „Weg des geringsten Widerstands“ gehen: ein automatisierter Bot wird seine Zeit nicht damit verschwenden, alle 65000 TCP Ports zu scannen, wenn er weiß, dass es tausende andere Server gibt, bei denen der SSH-Daemon auf Port 22 „lauscht“.
2. Implementieren Sie ACLs
Access Control Lists (ACL) sind logische Genehmigungen, die an ein bestimmtes Objekt, in diesem Fall Ihren Server, gebunden sind. Stateful Firewalls wie iptables können dafür verwendet werden, den SSH Zugang auf bestimmte IPs zu beschränken und den Zugang für alle anderen Internet Adressen zu verweigern. Auch diese Maßnahme wird Brute-Force Attacken enorm verringern, da kompromittierte Bots und automatisierte Scanner keine Verbindung mehr zu Ihrem Server aufbauen werden können. Beachten Sie, dass ACLs im Idealfall nicht nur bei SSH, sondern bei allen relevanten Services angewendet werden sollten.
3. Verwenden Sie SSH Keys.
Moderne SSH Keys verwenden asymmetrische Kryptographie-Methoden, um digitale Keys zu sichern und zu signieren, die dazu verwendet werden können, um übermittelte Daten zu identifizieren und zu verschlüsseln. Asymmetrische Kryptographie mag auf den ersten Blick kompliziert sein, aber die meisten Linux-Distributionen stellen oft hervorragende Anleitungen für das Erstellen von SSH Key Zugängen zur Verfügung. Die Verwendung von SSH Keys und die Deakivierung der Anmeldung ohne SSH-Keys, beugt Brute-Force Attacken gänzlich vor, da sich nur Benutzer mit dem entsprechenden Key authentifizieren können. Da ein SSH-Key unter Umständen auch gestohlen werden kann, ist es unbedingt erforderlich für Ihren privaten Key ein sicheres Passwort zu vergeben.
Diese Ratschläge sollten alle gleichzeitig angewendet werden – eine einzige Maßnahme alleine kann einem Brute-Force SSH Angriff nicht vollständig vorbeugen. Den SSH Port auf einen „Nicht-Standard Port“ zu ändern, wird Brute-Force Login Versuche nicht verhindern können, da jemand den geänderten Port herausfinden könnte. Die Verwendung von ACLs sichert den Authentifizierungsprozess selbst nicht ab. Sicherheitsexperten nutzen das Konzept der „mehr-stufigen Sicherheitsebenen“, indem sie mehrere Sicherheitsebenen übereinander legen und somit die beste Abdeckung erreichen.
Installieren Sie Malware/Rootkit Detection Software
Web Server sollten genauso wie Ihr PC Zuhause eine Anti-Malware Software installiert haben, die regelmäßig aktualisiert wird (Sie haben ja auch Anti-Virus Software auf Ihrem Computer, richtig?). R-fx Networks bietet ein solides Malware Erkennungsskript für Linux, das sich „Maldet“ nennt. Maldet funktioniert ähnlich wie viele andere Software-Lösungen: die Inhalte von Dateien werden gescannt und mit einer bekannten Signaturen-Datenbank verglichen. PHP Shell Skripte, Perl Mailers, unbekannter Base64 verschlüsselter Inhalt und noch mehr können mit Maldet aufgespürt werden. Maldet kann konfiguriert werden um wiederkehrend ein spezielles Verzeichnis zu durchsuchen und dabei nach ungewollten Veränderungen und bösartigen Uploads „Ausschau zu halten“.
Rkhunter ist eine zusätzliche Sicherheits-Software, die darauf abzielt, Rootkits zu suchen. Sowohl Maldet, als auch Rkhunter wurden dafür entworfen, nur bei Bedarf und nicht permanent alles zu durchsuchen und zu analysieren. Regelmäßige Updates und Scans der beiden Skripte festzulegen ist entscheidend für die Maximierung Ihrer Effektivität.
Halten Sie Ihre Software aktuell
Es sollte selbstverständlich sein, aber trauriger Fakt ist, dass viele moderne Webseiten und Server mit veralteter Software laufen, wie beispielsweise alte Versionen des Apache Webservers oder unsicheren Kopien von Content Management Systemen (CMS) wie Joomla, WordPress und Drupal. Apache ist der gebräuchlichste Web Server im Internet, daher überrascht es auch nicht, dass dieser das Ziel vieler Angriffe und Scans ist. Das gleiche kann über WordPress gesagt werden – WordPress ist das am häufigsten verwendete CMS weltweit, und wird von beinahe 20 Prozent aller öffentlichen Webseiten verwendet. Häufig verwendete Software ist immer ein beliebtes Ziel von Angreifern. Cracker arbeiten daran, Sicherheitslücken in beliebten Softwareprodukten zu finden, weil eine vorliegende Schwachstelle der Software die höchste Anzahl an potentiellen Zielen beschädigen kann. Veraltete WordPress-Installationen wurden für eine Vielzahl von bösartigen Absichten verwendet, wie auch für die Bildung eines massiven Botnets Anfang letzten Jahres. Beliebte Software Pakete wie WordPress und WHMCS aktuell zu halten ist für die Sicherheit Ihres Servers von enormer Wichtigkeit.
Prüfen Sie Ihre Server Logs
Linux leistet hervorragende Arbeit bei der Protokollierung (Logging) von Vorgängen wie Login/Logout, Software Updates, Konfigurationsänderungen und dergleichen. Diese Logs sind jedoch nicht nützlich, wenn diese niemand regelmäßig prüft und sie sind definitiv wertlos, wenn ein Angreifer es schafft, seine Spuren zu löschen. Die regelmäßige Prüfung und Überwachung von Server Logs auf auffälliges Verhalten und unerwartete Veränderungen ist entscheidend, um Probleme zu erfassen bevor sie zur Krise ausarten.
Der Linux Kernel sowie der „auditd Daemon“ stellen ein großartiges Werkzeug zur Überwachung von Datei-Veränderungen dar. Auditd kann dazu verwendet werden, um aufzuzeichnen, wann eine bestimmte Datei oder ein Verzeichnis geändert wurde, wer darauf zugegriffen hat (und wann) und dergleichen mehr. Detailliertes Auditing ist ein hervorragender Weg, um auffällige Veränderungen in Ihren Dateien einzugrenzen und kann dazu verwendet werden, um Cracker zu erwischen, die gerade versuchen Ihre Software zu knacken.
Backup, Backup, Backup!
Sicherheit beinhaltet nicht nur den Schutz gegen Eindringlinge. Es bedeutet auch, aufmerksam bei der Datenhaltung zu sein und einen Notfallplan („Disaster Recovery Plan“) zu haben – und hier kommen Backups ins Spiel. Backups sind nicht aufregend und niemand kümmert sich wirklich darum, bis etwas schief geht – und es WIRD etwas schief gehen. Kritische Fehler können viele Ursachen haben: böswilliges Hacking, verärgerte Angestellte, Hardware Fehler oder auch Tippfehler bei der täglichen Arbeit am Server können der Grund für einen Datenverlust sein.
Fragen Sie 10 verschiedene Sicherheits- und Disaster Recovery Profis nach der besten Backup Strategie und Sie werden 10 verschiedene Antworten bekommen. Die Wahrheit ist, jede Infrastruktur ist verschieden und Backup Systeme müssen in jedem Fall individuell angepasst werden. Eine gute Faustregel hierbei ist es, ein kürzlich erstelltes Backup an einem nahegelegenen Ort aufzubewahren (z.B. ein Mount Point auf einer separaten Festplatte) sowie eine separate Offsite-Sicherungskopie (unter Verwendung eines Cloud Storage Providers oder des SAN Backups Ihres Providers) zu haben. Mehrere Sicherungskopien an verschiedenen physischen Orten zu haben ist essentiell – redundante Daten auf der gleichen physischen Festplatte zu haben bringt nichts, wenn die Festplatte beschädigt wird. Es ist ebenfalls wichtig sich vor Augen zu halten, dass ein Redundant Array of Independent Disks (RAID) zwar nützlich dabei ist, die Performance und Redundanz zu erhöhen, jedoch für sich alleine noch kein geeignetes Backup-System darstellt. RAIDs können korrupt werden und wenn ein Hacker oder ein unachtsamer Administrator Ihre Daten löscht, wird das RAID diese nicht mehr zurück bringen können.
Falls Sie zweifeln – Fragen Sie!
Sicherheit kann schwierig sein. Die Erarbeitung eines passenden Sicherheitskonzeptes kann ein Alptraum sein. Wir wissen das und darum bieten wir unseren Kunden die Möglichkeit einer gemanagten Umgebung (Managed Server) an, welche den Sicherheits- und Systemanforderungen Ihrer Projekte gerecht wird. Eine von internex betreute Serverlösung gibt Ihnen die Möglichkeit, Ihren Server von einem ausgebildeten und professionellen System Administrator kontrollieren und absichern zu lassen, wodurch Sie sich auf Ihr Geschäft konzentrieren können. Falls Sie Fragen zur Absicherung Ihres dedizierten Servers haben oder Sie mehr über Sicherheit oder Management Ihres Servers wissen möchten, kontaktieren Sie uns und wir helfen Ihnen gerne weiter!