10 Tipps wie man seinen Server absichert
Einen eigenen Server zu administrieren machst Spaß und man lernt sehr schnell viel dazu. Sobald man darauf wichtige Daten speichert oder Applikationen betreibt ist die Sicherheit Thema Nummer eins. Wenn auf diesem Server auch noch Webseiten von Kunden gehostet werden, dann muss der Server rund um die Uhr funktionieren und vor Einbruch sicher sein. Ich habe eine Liste von 10 Tipps zusammengestellt die helfen den Server sicherer zu machen.
10 Tipps wie man seinen Server absichert
Ein Server, sei es nun Web-, File- oder Medienserver sollte eine sehr hohe Erreichbarkeit bieten und im besten Fall nie offline sein. Selbst sehr gute Webhoster geben bei der Erreichbarkeit nur 99% an – es gibt zumindest immer – wenn auch sehr kurze – Ausfälle aufgrund von Wartungsarbeiten. Man sieht, ein 24/7 Betrieb ist neben einer guten Grundkonfiguration auch ein laufender Prozess in dem Updates eingespielt werden und der Server hin und wieder kurz neu gestartet werden muss.
Die folgenden 10 Punkte beziehen sich auf vServer beziehungsweise Root-Server. Diese stehen entweder in einem Rechenzentrum oder zu Hause. In beiden Fällen werden diese manuell gepflegt. Man hat die größte Freiheit – man muss jedoch auch am meisten Arbeit in den funktionierenden Betrieb investieren.
Die meisten genannten Punkte sind allgemein gültig. Bei Details beziehe ich mich auf die Installation und Konfiguration von Linux (Ubuntu Server).
Punkt 1: Wahl des Betriebssystems
Dieser Punkt ist leider oft bereits entschieden bevor es überhaupt um die Konzeption des Servers geht, da man oft durch bereits vorhandene Software an ein System gebunden ist. Viele Funktionalitäten (Webserver, Mailserver, Fileserver, …) lassen sich aber sehr gut mit jedem beliebigen System abbilden. Linux, Windows, Mac OSX, Solaris, BSD, … am besten entscheidet man sich für jenes, dass man selbst am sichersten administrieren kann. Ansonsten ist meist Linux durch seine große Verbreitung in diesem Gebiet Marktführer. Bei Linux gilt übrigens immer LTS Version vor aktuellster nicht LTS Version!
Punkt 2: Installation Grundsystem
Schon bei der Installation des Grundsystems kann man viel falsch machen. Vor der Installation sollte man sich bereits Gedanken gemacht haben, welche Funktionalität der Server später haben soll. Bei der Installation sollte nur das Grundsystem und die minimal notwendigen Programme installiert werden. Je weniger zusätzliche Programme installiert werden, desto weniger Angriffsfläche gibt es. Sofern das Installationsmedium als sicher gilt (am besten nur von vertrauenswürdigen Quellen herunterladen), sollte auch das installierte Grundsystem sicher sein!
Punkt 3: Konfiguration und Services
In der Regel bieten die Standardkonfigurationen bereits ein hohes Maß an Sicherheit. Sofern man sich mit der Konfiguration von bestimmten Komponenten gut auskennt sollte man diese auf den Standardeinstellungen belassen – sofern die nicht unbedingt nötig ist. Alle nicht verwendeten Services sollen deaktiviert werden. Ein unter SSH erreichbarer Webserver benötigt kein laufendes FTP Service!
Sollten später weitere Dienste gebraucht werden, dann kann man diese immer noch nachinstallieren.
Punkt 4: automatische Updates
Sofern möglich sollen Updates automatisch installiert werden. So ist sichergestellt, dass Sicherheitspatches sofort eingespielt werden. Oft ist das für den laufenden Betrieb ungünstig. Sollte das nur manuell möglich sein, dann muss sehr sorgfältig gearbeitet werden und man muss sicherheitsrelevante Updates möglichst zeitnah einplanen.
Punkt 5: sichere Passwörter
Immer wenn es um Sicherheit geht wird dieser Punkt genannt – zurecht! „SuperAdminPasswort“ ist KEIN sicheres Passwort. Ein sicheres Passwort hat eine bestimmte Länge (am besten so viele Zeichen wie möglich) und besteht aus einer Kombination von Zahlen, Buchstaben und Sonderzeichen. Ein sicheres Passwort lässt man sich deshalb automatisch erstellen und speichert es in einem vertrauenswürdigen Passwortmanager ab.
Bei der Installation eines Webservers werden mehrere Passwörter abgefragt – root Benutzer, MySQL Datenbank, diverse andere Benutzer, Passwörter für Dienste,… in jedem Fall sollte man nie das selbe Passwort mehrere male benutzen.
Punkt 6: Root Login deaktivieren
Ist ein Root Login beispielsweise über SSH möglich, dann steht zwischen einem Vollzugriff auf den Server und dem Hacker gerade mal ein Passwort. Dieses kann – sofern nicht sehr sicher – in endlicher Zeit einfach erraten werden. Sofern keine anderen Abwehrmechanismen aktiv sind kann man den Server so sehr schnell verlieren. Im besten Fall verbietet man den Root Login komplett. Dafür benötigt man zumindest einen zweiten Benutzer. Dieser erhält nur beschränkte Rechte. Benötigt man Root Privilegien, so kann man sich diese immer noch holen. Um diese zu bekommen müsste ein Angreifer aber sowohl Benutzerpasswort als auch Root Passwort kennen. Achtung: bei einer falschen Konfiguration sperrt man sich selber aus und kann unter Umständen nie wieder auf das System zugreifen!
Punkt 7: SSH Login absichern
SSH ist ein integraler Dienst um von außen auf einen Webserver zuzugreifen. Webserver haben für gewöhnlich keinen grafischen Desktop (wäre wieder ein zusätzliches Angriffsziel). Die Administration erfolgt deshalb rein über die Konsole. SSH baut eine sichere Verbindung auf und gilt als recht zuverlässig – man kann aber trotzdem immer noch munter alle möglichen Login- und Passwortkombinationen ausprobieren. Absichern kann man beispielsweise durch:
- failtoban
ist ein Programm, dass für eine IP Adresse nur begrenzt falsche Logins zulässt. Versucht eine bestimmte IP beispielsweise 5 mal das falsche Passwort, dann wird sie für einen Tag gesperrt. failtoban kann man frei konfigurieren. Man kann das Login von bestimmten Adressen sogar komplett für immer sperren. Achtung: man kann sich selbst sehr einfach aussperren. - key authentication
man kann das Benutzername und Passwort Login auch komplett deaktivieren. Der Login funktioniert dann über Schlüsselpaare, wobei immer der private mit dem öffentlichen Schlüssel verglichen wird. Somit kann man das Login auf eine begrenzte Anzahl an Schlüsseln eindämmen und der Administrator behält stets die Übersicht, welche Schlüssel es gibt.
Punkt 8: Physischer Zugriff verhindern
Dieser Punkt trifft selten bei Server zu, da diese oft an einem unbekannten Ort in einem Rechenzentrum stehen. Für den eigenen Server zu Hause beziehungsweise dem eigenen Desktop Rechner ist er aber relevant. Die meisten Sicherheitslücken entstehen durch einen physischen Zugriff. Man denke beispielsweise daran das Windows Login einfach mit einer Linux Live CD zu übergehen. Sofern die Daten nicht verschlüsselt auf der Platte gespeichert sind, kann man diese ohne Probleme einfach auslesen!
Sollte der physische Zugriff beziehungsweise das Auslesen der Daten verhindert werden, dann erreicht man das durch einen verschließbaren Serverkasten oder Serverraum und eine Verschlüsselung der Festplatte. Wichtig: auch die Backups müssen verschlüsselt werden!
Punkt 9: Firewall
Die Kommunikation nach außen muss so gut wie möglich eingeschränkt werden. Das Zauberwort heißt dabei Whitelist anstatt Blacklist. Anstatt bestimmte Ports zu blockieren sollten generell alle Ports geschlossen werden und nur gezielt pro Service der Port geöffnet werden. Bei den meisten Services wie MySQL, SSH, usw. kann man den Standardport auch verändern. Das schafft zudem noch etwas größere Sicherheit.
Betreibt man beispielsweise einen Fileserver, der von nur einer geringen Anzahl an Benutzern verwendet wird, dann könnte man gezielt nur die IP Adressen dieser Benutzer freischalten. Alle anderen Adressen sollten dann komplett blockiert werden.
Punkt 10: Dokumentation
Der vermutlich wichtigste Punkt ist eine gute Dokumentation der Konfiguration des Systems. Das ist besonders dann wichtig, wenn mehrere Leute administrative Aufgaben erledigen. Aber auch für einen selber bietet die Dokumentation Vorteile. Oft weiß man nach Monaten nicht mehr wie etwas konfiguriert wurde. Oft spart man sich sehr viel Arbeit durch eine gute Dokumentation.
Ein weiterer wichtiger Punkt den ich unter Dokumentation nennen will ist: nachdenken und erst dann handeln! Oft ist es sinnvoller durch eine Konfiguration eines bestehenden Programms ein Problem zu lösen als neue Software (mit den schon zuvor genannten zusätzlichen Risiken) zu installieren.
Managed Server
Die 10 Punkte zeigen eines ganz deutlich: ein sicheres System ist eine Menge Arbeit. Falls man mit der Materie weniger vertraut ist, dann kann man recht einfach schwerwiegende Fehler machen. Die Alternative ist ein von einem Experten betreuter Server. Diese sind im Paket teurer als Root- oder vServer, man erspart sich aber jede Menge Arbeit und setzt auf bewährtes Expertenwissen. Die Wahl eines vertrauenswürdigen Partners ist dabei die größte Hürde. Der Markt ist voller Angebote und den unterschiedlichsten Preisen – ein vollkommen zufriedenstellendes Service ist aber schwer zu finden. Ein solcher Anbieter mit dem ich seht gute Erfahrungen gemacht habe ist Mittwald mit seinen Managed vServer. Dort ist man besonders bemüht das Service speziell auf Agenturen und Freelancer abzustimmen.
Shared Webspace
Eine sichere und sehr günstige Variante ist ein Webspace der auf einem professionell administrierten System von mehreren (manchmal auch mehrere hundert) Kunden verwendet wird. Für einfachen statischen Webseiten und Blogs mag das ausreichen – für die meisten Applikationen aber zu wenig sein.
Fazit
Ein sicherer Server ist eine Menge Arbeit. Es gibt viele Punkte zu beachten und man muss immer auf dem Laufenden bleiben. Wenn man sich an meine 10 Punkte hält bekommt man eine sichere Administration sehr gut hin. Für wichtige Services und weniger Administration empfehlen sich Managed Server bei vertrauenswürdigen Anbietern.
Gerade für Laien die sich mit der Materie nicht so gut auskennen ist dieser Artikel gerade richtig. Gut erklärt und anschaulich dargestellt. Sicherheit ist enorm wichtig im Internet, weil Cyberkriminalität allgegenwärtig ist und auch in nächster Zeit nicht abklingen wird.
Vielen Dank für den interessanten Beitrag.
Mit besten Grüßen,
Oliver
Hallo Werner,
wirklich guter Artikel. Vielen Dank dafür.
Wichtig ist noch zu erwähnen, dass gerade CMS auf den Server oft große Sicherheitslücken haben. Gerade WordPress ist da sehr beliebt. Wir haben ein Tutorial geschrieben, wie man WordPress aktuell & sicher halten kann. Evtl. hast du Lust dieses auch mit aufzunehmen:
https://www.hosttest.de/artikel/wordpress-webhosting-sicher-machen.html
Vielen Dank!