10 wichtige Schritte für die Konfiguration eines neuen Servers im Jahr 2023


Das ist ein netter neuer Linux-Server, den Sie dort haben... Es wäre eine Schande, wenn ihm etwas zustoßen würde. Es mag sofort in Ordnung sein, aber bevor Sie es in die Produktion bringen, müssen Sie 10 Schritte ausführen, um sicherzustellen, dass es sicher konfiguriert ist. Die Details dieser Schritte können von Distribution zu Distribution variieren, aber konzeptionell gelten sie für jede Art von Linux. Indem Sie diese Schritte auf neuen Servern abhaken, können Sie sicherstellen, dass sie zumindest über einen grundlegenden Schutz gegen die gängigsten Cyberangriffe verfügen.

Was Warum
BenutzerkonfigurationSchützen Sie Ihre Anmeldeinformationen
NetzwerkkonfigurationEtablieren Sie die Kommunikation
PaketverwaltungFügen Sie hinzu, was Sie brauchen, und entfernen Sie, was Sie nicht brauchen
Update-InstallationPatchen Sie Ihre Schwachstellen
NTP-KonfigurationVerhindern Sie Taktabweichungen
Firewalls und iptablesMinimieren Sie Ihren externen Fußabdruck
Sichern von SSHHärten von Remote-Sitzungen
Daemon-KonfigurationMinimieren Sie Ihre Angriffsfläche
SELinux und weitere HärtungSchützen des Kernels und der Anwendungen
ProtokollierungWissen, was passiert

1 - Benutzerkonfiguration

Das allererste, was Sie tun möchten, wenn es nicht Teil Ihres Betriebssystem-Setups war, ist, das Root-Passwort zu ändern. Dies sollte selbstverständlich sein, kann aber bei einer routinemäßigen Servereinrichtung überraschenderweise übersehen werden. Das Passwort sollte mindestens 8 Zeichen lang sein und aus einer Kombination von Groß- und Kleinbuchstaben, Zahlen und Symbolen bestehen. Sie sollten auch eine Kennwortrichtlinie einrichten, die Anforderungen an Alterung, Sperren, Verlauf und Komplexität angibt, wenn Sie lokale Konten verwenden. In den meisten Fällen sollten Sie den Root-Benutzer vollständig deaktivieren und nicht privilegierte Benutzerkonten mit sudo-Zugriff für diejenigen erstellen, die erhöhte Rechte benötigen.

2 - Netzwerkkonfiguration

Eine der grundlegendsten Konfigurationen, die Sie vornehmen müssen, besteht darin, die Netzwerkkonnektivität zu aktivieren, indem Sie dem Server eine IP-Adresse und einen Hostnamen zuweisen. Für die meisten Server sollten Sie eine statische IP-Adresse verwenden, damit Clients die Ressource immer unter derselben Adresse finden können. Wenn Ihr Netzwerk VLANs verwendet, überlegen Sie, wie isoliert das Segment des Servers ist und wo es am besten passt. Wenn Sie IPv6 nicht verwenden, deaktivieren Sie es. Legen Sie den Hostnamen, die Domäne und die DNS-Serverinformationen fest. Aus Gründen der Redundanz sollten zwei oder mehr DNS-Server verwendet werden, und Sie sollten nslookup testen, um sicherzustellen, dass die Namensauflösung ordnungsgemäß funktioniert.

3 - Paketverwaltung

Vermutlich richten Sie Ihren neuen Server für einen bestimmten Zweck ein, also stellen Sie sicher, dass Sie alle Pakete installieren, die Sie möglicherweise benötigen, wenn sie nicht Teil der von Ihnen verwendeten Distribution sind. Dies können Anwendungspakete wie PHP, MongoDB, ngnix oder unterstützende Pakete wie pear sein. Ebenso sollten alle überflüssigen Pakete, die auf Ihrem System installiert sind, entfernt werden, um den Platzbedarf des Servers zu verringern. All dies sollte über die Paketverwaltungslösung Ihrer Distribution erfolgen, z. B. yum oder apt, um die Verwaltung später zu vereinfachen.

4 - Update-Installation und -Konfiguration

Sobald Sie die richtigen Pakete auf Ihrem Server installiert haben, sollten Sie sicherstellen, dass alles aktualisiert ist. Nicht nur die Pakete, die Sie installiert haben, sondern auch der Kernel und die Standardpakete. Sofern Sie keine bestimmte Version benötigen, sollten Sie immer die neueste Produktionsversion verwenden, um die Sicherheit Ihres Systems zu gewährleisten. In der Regel liefert Ihre Paketverwaltungslösung die neueste unterstützte Version aus. Sie sollten auch in Erwägung ziehen, automatische Updates innerhalb des Paketverwaltungstools einzurichten, wenn dies für die Dienste funktioniert, die Sie auf diesem Server hosten

5 - NTP-Konfiguration

Konfigurieren Sie Ihren Server so, dass seine Zeit mit NTP-Servern synchronisiert wird. Dabei kann es sich um interne NTP-Server handeln, wenn in Ihrer Umgebung über solche Server verfügt, oder um externe Zeitserver, die für jeden verfügbar sind. Wichtig ist, Clock-Drifts zu verhindern, bei denen die Uhr des Servers von der tatsächlichen Uhrzeit abweicht. Dies kann zu vielen Problemen führen, einschließlich Authentifizierungsproblemen, bei denen die Zeitverschiebung zwischen dem Server und der Authentifizierungsinfrastruktur gemessen wird, bevor der Zugriff gewährt wird. Dies sollte eine einfache Änderung sein, aber es ist ein wichtiger Teil einer zuverlässigen Infrastruktur.

6 - Firewalls und iptables

Abhängig von Ihrer Distribution kann es sein, dass iptables bereits vollständig gesperrt ist und Sie öffnen müssen, was Sie benötigen, aber unabhängig von der Standardkonfiguration sollten Sie immer einen Blick darauf werfen und sicherstellen, dass es so eingerichtet ist, wie Sie es möchten. Denken Sie daran, immer das Prinzip der geringsten Rechte zu verwenden und nur die Ports zu öffnen, die Sie für die Dienste auf diesem Server unbedingt benötigen. Wenn sich Ihr Server hinter einer dedizierten Firewall befindet, sollten Sie auch dort alles ablehnen, außer dem, was notwendig ist. Unter der Annahme, dass Ihre iptables/Firewall standardmäßig restriktiv ist, vergessen Sie nicht, das zu öffnen, was Sie für Ihren Server benötigen, um seine Arbeit zu erledigen!

7 - Sichern von SSH

SSH ist die wichtigste Fernzugriffsmethode für Linux-Distributionen und sollte daher ordnungsgemäß gesichert sein. Sie sollten die Fähigkeit von root deaktivieren, sich per SSH aus der Ferne einzuloggen, auch wenn Sie das Konto deaktiviert haben, so dass root für den Fall, dass es aus irgendeinem Grund auf dem Server aktiviert wird, immer noch nicht aus der Ferne ausgenutzt werden kann. Sie können SSH auch auf bestimmte IP-Bereiche beschränken, wenn Sie über einen festen Satz von Client-IPs verfügen, die eine Verbindung herstellen. Optional können Sie den Standard-SSH-Port ändern, um ihn zu "verschleiern", aber ehrlich gesagt wird ein einfacher Scan den neuen offenen Port für jeden offenbaren, der ihn finden möchte. Schließlich können Sie die Passwortauthentifizierung vollständig deaktivieren und die zertifikatsbasierte Authentifizierung verwenden, um die Wahrscheinlichkeit einer SSH-Ausnutzung noch weiter zu verringern.

8 - Daemon-Konfiguration

Sie haben Ihre Pakete bereinigt, aber es ist auch wichtig, die richtigen Anwendungen so einzustellen, dass sie beim Neustart automatisch gestartet werden. Stellen Sie sicher, dass Sie alle Daemons deaktivieren, die Sie nicht benötigen. Ein Schlüssel zu einem sicheren Server besteht darin, den aktiven Fußabdruck so weit wie möglich zu reduzieren, sodass nur die für Angriffe verfügbaren Angriffsflächen diejenigen sind, die von der Anwendung(en) benötigt werden. Sobald dies geschehen ist, sollten die verbleibenden Dienste so weit wie möglich gehärtet werden, um die Resilienz zu gewährleisten.

9 - SELinux und weitere Härtung

Wenn Sie jemals eine Red Hat-Distribution verwendet haben, sind Sie vielleicht mit SELinux vertraut, dem Kernel-Hardening-Tool, das das System vor verschiedenen Operationen schützt. SELinux eignet sich hervorragend zum Schutz vor unbefugter Nutzung und unbefugtem Zugriff auf Systemressourcen. Es eignet sich auch hervorragend zum Unterbrechen von Anwendungen, also stellen Sie sicher, dass Sie Ihre Konfiguration mit aktiviertem SELinux testen und die Protokolle verwenden, um sicherzustellen, dass nichts Legitimes blockiert wird. Darüber hinaus müssen Sie sich über die Härtung von Anwendungen wie MySQL oder Apache informieren, da jede eine Reihe von Best Practices zu befolgen hat.

10 - Protokollierung

Schließlich sollten Sie sicherstellen, dass die von Ihnen benötigte Protokollierungsebene aktiviert ist und dass Sie über ausreichende Ressourcen dafür verfügen. Am Ende werden Sie Probleme mit diesem Server beheben müssen, also tun Sie sich jetzt einen Gefallen und erstellen Sie die Protokollierungsstruktur, die Sie benötigen, um Probleme schnell zu lösen. Die meisten Softwareprogramme verfügen über eine konfigurierbare Protokollierung, aber Sie benötigen einige Versuche und Irrtümer, um die richtige Balance zwischen zu wenig und zu vielen Informationen zu finden. Es gibt eine Vielzahl von Protokollierungstools von Drittanbietern, die von der Aggregation bis zur Visualisierung helfen können, aber jede Umgebung muss zuerst auf ihre Bedürfnisse hin berücksichtigt werden. Dann können Sie das/die Tool(s) finden, das/die Ihnen beim Befüllen hilft.

Die Umsetzung jedes einzelnen Schrittes kann einige Zeit in Anspruch nehmen, insbesondere beim ersten Mal. Durch die Einrichtung einer Routine für die anfängliche Serverkonfiguration können Sie jedoch sicherstellen, dass neue Computer in Ihrer Umgebung ausfallsicher sind. Wenn Sie einen dieser Schritte nicht ausführen, kann dies schwerwiegende Folgen haben, wenn Ihr Server jemals Ziel eines Angriffs wird. Das Befolgen dieser Verletzungen garantiert keine Sicherheit - Datenschutzverletzungen kommen vor, aber es macht es böswilligen Akteuren viel schwerer und erfordert ein gewisses Maß an Geschicklichkeit, um sie zu überwinden.

Verwandte Artikel