Empfohlene Sicherheitsmaßnahmen, um Ihre Server zu schützen

Einführung

Die meiste Zeit legen Sie daran ein, Ihre Cloud-Anwendungen zu erstellen und zu deployen. Als Teil Ihres Setups und Deployments ist es wichtig, sichere Maßnahmen für Ihr System und Anwendungssoftware zu implementieren, bevor sie öffentlich verfügbar sind. Die Einrichtung der Sicherheitsmaßnahmen in diesem Tutorial vor dem Deploy Ihrer Anwendungen sicherstellen, dass jede Software, die Sie auf Ihrem Infrastrukturhosten laufen lassen, eine sichere Basiskonfiguration hat, statt improvisierte Maßnahmen, die nach dem Deploy eingeführt werden können.

Dieser Guide zeigt einige praktische Sicherheitsmaßnahmen an, die Sie während der Konfiguration und Einstellung Ihrer Serverinfrastruktur unternehmen können. Diese Liste ist nicht einhaustiv alles was Sie tun können, um Ihren Servern sicherzustellen, aber dies bietet Ihnen einen startenden Punkt, den Sie über die Zeit weiterentwickeln können. Über die Zeit können Sie sich eine spezieller passende Sicherheitsansatz entwickeln, der die speziellen Bedürfnisse Ihrer Umgebungen und Anwendungen berücksichtigt.

SSH-Keys

SSH, oder Secure Shell, ist ein verschlüsseltes Protokoll, das zur Verwaltung und Kommunikation mit Servern verwendet wird. Wenn Sie mit einem Server arbeiten, verbringen Sie_probably die meiste Zeit in einer Terminal-Sitzung, die mit Ihrem Server über SSH verbunden ist. Als Alternative zu passwortbasierten Anmeldungen verwenden SSH-Schlüssel Verschlüsselung, um eine sichere Möglichkeit zum Anmelden auf Ihrem Server zu bieten und werden für alle Benutzer empfohlen.

Mit SSH-Schlüsseln werden ein privater und ein öffentlicher Schlüssel für die Authentifizierung erstellt. Der private Schlüssel wird geheim und sicher vom Benutzer aufbewahrt, während der öffentliche Schlüssel geteilt werden kann. Dies wird gemeinhin als asymmetrische Verschlüsselung bezeichnet, ein Muster, das Sie auch anderswo antreffen können.

Um die SSH-Schlüssel-Authentifizierung zu konfigurieren, müssen Sie Ihren öffentlichen SSH-Schlüssel auf dem Server an den erwarteten Ort (normalerweise ~/.ssh/authorized_keys) legen. Um mehr über den Ablauf der SSH-Schlüssel-basierten Authentifizierung zu erfahren, lesen Sie Verständnis des SSH-Verschlüsselungs- und Verbindungsvorgangs.

Wie verbessern SSH-Schlüssel die Sicherheit?

Mit SSH ist jede Art von Authentifizierung inklusive der Passwortauthentifizierung vollständig verschlüsselt. Jedoch können unberechtigte Benutzer, insbesondere wenn es eine öffentliche IP-Adresse des Servers gibt, durch automatisierte, mehrfache Versuche, auf einen Server zu loggen, ein Risiko für die Sicherheit darstellen. Obwohl es Möglichkeiten gibt, den Zugriff nach mehreren fehlgeschlagenen Versuchsen zu sperren und schlechtwillige Benutzer praktisch durch die Anzahl der Versuche, die sie pro IP-Adresse machen können, begrenzt werden, so ist jeder Fall, in dem ein Benutzer plausibel sein kann, durch wiederholte Brute-Force-Angriffe auf Ihren Stack zugreifen zu versuchen, ein Sicherheitsrisiko.

Durch die Einrichtung von SSH-Schlüsselauthentifizierung können Sie das Password-basierte Authentifizieren deaktivieren. SSH-Schlüssel haben generell viel mehr Bit als ein Passwort; Sie können aus einem 12 Zeichen Passwort einen Hash mit 128 Zeichen für einen SSH-Schlüssel erstellen. Es gibt jedoch keine heute noch crackbaren Verschlüsselungsalgorithmen. Andere, wie der standardmäßige RSA- Schlüssel, der von modernen SSH-Client generiert wird, sind bisher nicht plausibel, um durch genügend viele Versuche, die Passwort哈希 zu reverse-engineern, zu brechen.

Implementierung von SSH-Schlüsseln

SSH-Schlüssel sind die empfehlten Methoden, um von einer lokalen Maschine über eine Fernverbindung auf eine Linux-Serverumgebung zu loggen. Auf Ihrem lokalen Computer können Sie mithilfe des Befehls ssh eine Paarung von SSH-Schlüsseln erzeugen und dann die öffentliche Schlüssel auf einen Remote-Server übertragen.

Um SSH-Schlüssel auf Ihrem Server zu erstellen, können Sie die Anleitung zur Einrichtung von SSH-Schlüsseln für Ubuntu, Debian oder CentOS folgen.

Für Teile Ihres Stacks, die Password-Zugriffe benötigen oder den Angriffen durch Brute-Force-Attacken unterlegen sind, können Sie eine Lösung wie fail2ban auf Ihren Servern implementieren, um Zugriffsversuche zu begrenzen.

Es ist eine gute Praxis, den Benutzer root nicht direkt über SSH zu authentifizieren. Stattdessen melden Sie sich als unberechtigter Benutzer an und erhalten Sie dann, wenn dieser Vorgang erforderlich ist, privilegien mit einem Werkzeug wie sudo. Diese Methode, die Berechtigungen so zu begrenzen, dass sie minimal sein, wird als Prinzip der minimalen Privilegien bezeichnet. Nachdem Sie mit einem unberechtigten Benutzern an Ihren Server verbunden haben und diesem die Verbindung über SSH verifiziert haben, können Sie die PermitRootLogin no-Directive in /etc/ssh/sshd_config auf Ihrem Server festlegen und dann das SSH-Prozess des Servers mit einem Befehl wie sudo systemctl restart sshd neu starten.

Feuerwälte

Ein Firewall ist ein Software- oder Hardwaregerät, das die Zugriffe auf Dienste kontrolliert und den Typen von Traffic, der ins und aus einem gegebenen Server oder Netzwerk geliefert werden soll, reguliert. Eine richtig konfigurierte Firewall sichert dafür zu, dass nur Services, die öffentlich zugänglich sein sollen, von außerhalb Ihrer Servern oder Netzwerke erreicht werden können.

Auf einem typischen Server sind mehrere Dienste standardmäßig laufend. Diese können in folgende Gruppen eingeteilt werden:

  • Öffentliche Dienste, die von jeder Person anonym über das Internet erreicht werden können. Beispielsweise ist dies ein Webserver, der Ihr eigene Website serviert.
  • Private Dienste, die nur von einer bestimmten Gruppe autorisierter Konten oder aus bestimmten Standorten erreicht werden sollen. Beispielsweise eine Datenbank-Kontrollpanel wie phpMyAdmin.
  • Innere Dienste, die nur innerhalb des Servers selbst zugänglich sein sollen und nicht an die öffentliche Internetverbindung exponiert werden sollen. Beispielsweise eine Datenbank, die nur lokale Verbindungen akzeptieren sollte.

Firewalls können den Zugriff auf Ihre Software nach den Kategorien oben mit unterschiedlichen Graden der Granularität begrenzen. Für Ports, die nicht benutzt werden, ist in den meisten Konfigurationen der Zugriff komplett blockiert. Public services können offen und zur Verfügung gestellt bleiben, private Services können basierend auf verschiedenen Kriterien, wie Connection Types, restriktiert werden. Innere Services sind in den meisten Konfigurationen komplett gegen die Internetverbindung gesperrt.

Wie verbessern Firewalls die Sicherheit?

Auch wenn Ihre Dienste Sicherheitseigenschaften implementieren oder auf den Interfacen begrenzt sind, die Sie ausführen möchten, dienen Firewalls als Basis-Schicht der Schutz durch die Einschränkung von Verbindungen zu und von Ihren Diensten, bevor das Verkehr von einer Anwendung bearbeitet wird.

Eine korrekteinstellte Firewall wird den Zugriff auf alles außer den spezifischen Diensten einschränken, die geöffnet sein sollen, normalerweise durch das Öffnen nur der Ports, die mit diesen Diensten verbunden sind. Zum Beispiel laufen SSH in der Regel auf Port 22 und HTTP/HTTPS-Zugriff über einen Web-Browser normalerweise auf Ports 80 und 443. Es wird nur eine Handvoll Software öffentlich zugänglich gemacht, was den Angriffsflächen Ihres Servers reduziert und die Komponenten, die verwundbar sind, einschränkt.

Wie Firewalls implementieren

Es gibt viele Firewalls, die für Linux-Systeme verfügbar sind, und einige sind komplexer als andere. Im Allgemeinen sollten Sie nur Ihre Firewall-Konfiguration ändern, wenn Sie Änderungen an den Diensten auf Ihrem Server vornehmen. Hier sind einige Optionen, um loslegen zu können:

  • UFW, oder einfach Firewall, ist standardmäßig auf manchen Linux-Distributionen wie Ubuntu installiert. Sie können mehr über es in How To Set Up a Firewall with UFW on Ubuntu 20.04

  • Wenn Sie Red Hat, Rocky, oder Fedora Linux verwenden, können Sie How To Set Up a Firewall Using firewalld lesen, um ihr Standardtooling zu nutzen.

  • Viele Software-Feuerwälle, wie z.B. UFW und firewalld, schreiben ihre konfigurierten Regeln direkt in eine Datei namens iptables. Um zu lernen, wie man direkt mit der iptables-Konfiguration arbeitet, kann man Iptables-Grundlagen: Allgemeine Firewall-Regeln und Befehle anschauen. Beachten Sie, dass einige andere Software, die eigene Port-Regeln implementieren, wie z.B. Docker, ebenfalls direkt in die iptables schreiben und eventuell mit den von Ihnen mit UFW erstellten Regeln in Konflikt treten können. Es ist daher hilfreich, wenn Sie in solchen Fällen eine iptables-Konfiguration lesen können.

Bemerkung: viele Hosting-Provider, inklusive DigitalOcean, erlauben Ihnen, eine Firewall als Dienst zu konfigurieren, der als externes Layer über Ihren Cloud-Server(n) lauft, statt direkt. Diese Konfigurationen, die auf dem Netzwerkrand mit gesteuerten Werkzeugen implementiert werden, sind oft weniger komplex im Praxiseinsatz, können aber schwieriger skripten und replizieren sein. Sie können sich auf die Dokumentation von DigitalOcean’s Cloud-Firewall verlassen.

Sie sollten sicherstellen, dass Ihre Firewall-Konfiguration den Zugriff auf unbekanntes Traffic standardmäßig blockiert. In diesem Fall wird kein neues Service unbeabsichtigt dem Internet zugestanden. Stattdessen müssen Sie explizit Zugriff gewähren, was sie dazu bringen, zu evaluieren, wie ein Service ausgeführt, genutzt und wer ihn benutzen sollte.

VPC-Netzwerke

Virtual Private Cloud (VPC) Netzwerke sind privatreine Netzwerke für Ihre Infrastrukturressourcen. VPC-Netzwerke bieten einen sicheren Zugriff zwischen Ressourcen, weil die Netzwerkinterfaces nicht auf das öffentliche Internet zugänglich sind.

Wie verbessern VPC-Netzwerke die Sicherheit?

Bei manchen Hosting-Provider wird standardmäßig Ihrem Cloud-Server ein öffentliches und ein privates Netzinterface zugewiesen. Die Disabling des öffentlichen Netzinterfaces auf Teilen Ihrer Infrastruktur erlaubt nur die Verbindungen zwischen den Systemen mittels ihrer privaten Netzinterfaces über eine interne Netzwerk, was bedeutet, dass das Traffic zwischen Ihren Systemen nicht durch das öffentliche Internet routiert wird, wo es potentiell ausgedroht oder abgehört werden kann.

Durch die Conditional Exposition nur weniger dedizierter Internet-Gateways, auch als Eingangs Gateways bekannt, als das einzige Zugangspunkt zwischen den Ressourcen Ihres VPC-Netzwerks und dem öffentlichen Internet zu schaffen, haben Sie mehr Kontrolle und Sichtbarkeit in die Public Traffic, die zu Ihren Ressourcen verbindet. Moderne Container orchestration systeme wie Kubernetes haben ein sehr definiertes Konzept von Eingangs-Gateways, weil sie standardmäßig viele private Netzinterfaces erstellen, die ausgewählt zur Exposition sein sollen.

Implementieren Sie VPC-Netzwerke

Viele Cloud-Infrastrukturprovider unterstützen die Erstellung und Hinzufügung von Ressourcen zu einem VPC-Netzwerk innerhalb ihrer Datenzentren.

Hinweis: Wenn Sie DigitalOcean verwenden und einen eigenen VPC-Gateway einrichten möchten, können Sie sich die Guide zur Konfiguration eines Droplets als VPC-Gateway ansehen, um zu lernen, wie Sie Debian-, Ubuntu- und CentOS-basierte Server konfigurieren.

Die Konfiguration einer privaten Netzwerksetzung kann aufgrund der erforderlichen Serverkonfigurationen und Netzwerkwissen eine hohe technische Komplexität bedeuten. Eine Alternative zur Einrichtung eines virtuellen Privatnetzes ist die Verwendung einer VPN-Verbindung zwischen den Servern.

VPNs und Privatenetworking

Ein VPN, oder ein virtuelles privates Netzwerk, ist eine Methode, um sichere Verbindungen zwischen entfernten Computern zu erstellen und die Verbindung so zu gestalten, als ob sie eine lokale privatreine Netzwerksverbindung war. Dies bietet eine Möglichkeit, Ihre Dienste so zu konfigurieren, als würden sie auf einem privaten Netzwerk liegen und entfernte Server über sichere Verbindungen verbinden.

Beispielsweise unterstützen DigitalOceans privaten Netze die Isolation von Kommunikation zwischen Servern innerhalb des gleichen Kontos oder Teams innerhalb desselben Bereichs.

Wie verbessern VPNs die Sicherheit?

Die Nutzung eines VPNs ist eine Methode, um einen privaten Netzwerk zu erstellen, das nur Ihren Servern zugänglich ist. Die Kommunikation wird vollständig privat und sicher sein. Andere Applikationen können über die virtuelle Schnittstelle festlegen, die das VPN-Software bereitstellt, ihre Daten über dieses Interface verarbeiten. In diesem Fall sind lediglich Dienste erforderlich, die für Clients auf dem öffentlichen Netzwerk benötigt werden.

Wie implementiere ich VPNs

Der Einsatz von privaten Netzwerken erfordert in der Regel, dass Sie bei der Erstbereitstellung Ihrer Serverentscheidungen bezüglich Ihrer Netzwerkinterfaces treffen und Ihre Anwendungen sowie den Firewall zugunsten dieser Interfaces konfigurieren. Im Vergleich dazu erfordert die Bereitstellung von VPNs das Installieren zusätzlicher Tools und die Erstellung zusätzlicher Netzwerkschritte, kann jedoch typischerweise auf bestehender Infrastruktur aufgesetzt werden. Jeder Server in einem VPN muss die gemeinsame Sicherheits- und Konfigurationsdaten benötigen, die nötig sind, um eine VPN-Verbindung herzustellen. Nach der Inbetriebnahme eines VPNs müssen Anwendungen so eingestellt werden, dass sie die VPN-Tunnel verwenden.

Wenn Sie Ubuntu oder CentOS verwenden, können Sie sich an die Anleitung Wie ein OpenVPN-Server auf Ubuntu 20.04 einrichten und konfigurieren halten.

Wireguard ist eine weitere populäre VPN-Bereitstellung. Im Allgemeinen folgen VPNs dem gleichen Prinzip, indem der Zugriff auf Ihre Cloud-Server eingeschränkt wird, indem eine Reihe von privaten Netzwerkinterfaces hinter wenigen Eingangspunkten implementiert werden, aber während VPC-Konfigurationen typischerweise eine Kerninfrastruktur betreffen, können VPNs auf eine etwas improvisiertere Basis deployiert werden.

Überwachung der Dienste

Eine gute Sicherheit bedeutet analysieren Sie Ihren Systems, verstanden die verfügbarkeiten Angriffssurfaces und schließen Sie die Komponenten so weit wie möglich ab.

Dienstauditoring ist eine Methode, um zu wissen, welche Dienste auf einem System laufen, welche Ports sie für Kommunikation nutzen, und welche Protokolle diese Dienste sprechen. Diese Information kann helfen, festzustellen, welche Services öffentlich zugänglich sein sollen, Firewall-Einstellungen, Überwachung und Alarmierung einzuschalten.

Wie verbessert Service Auditing die Sicherheit?

Jeder laufende Dienst, ob intern oder öffentlich geplant, repräsentiert einen erweiterten Angriffsraum für unerwünschte Benutzer. Je mehr Dienste Sie laufen lassen, desto größer die Wahrscheinlichkeit, dass eine Vulnerabilität Ihrer Software betroffen ist.

Sobald Sie eine gute Idee haben, was Netzwerkdienste auf Ihrem Gerät laufen, können Sie beginnen, diese Dienste zu analysieren. Wenn Sie einen Dienstanalyse durchführen, stellen Sie sich folgende Fragen über jede laufende Service:

  • Sollte dieser Dienst laufen?
  • Läuft der Dienst auf Netzwerkschnittstellen, auf denen er nicht hören sollte?
  • Die Dienstleistung sollte an einen öffentlichen oder privaten Netzwerkinterface binden?
  • Sind meine Firewall-Regeln so strukturiert, dass legitimierte Traffic zu diesem Dienst passt?
  • Sind meine Firewall-Regeln Traffic blockierend, die nicht legitimiert sind?
  • Haben Sie eine Methode, um Sicherheitsalerts über Schwachstellen für jede dieser Dienste zu erhalten?

Diese Art von Dienstanalyse sollte bei der Konfiguration jedes neuen Servers in Ihrer Infrastruktur Standardpraxis sein. Wenn Sie alle paar Monate einen Dienstanalyse durchführen, können Sie auch unbeabsichtigte Änderungen an den Konfigurationen der Dienste aufspüren.

Implementierung des Dienstanalyses

Um die Netzdienste auf einem System zu prüfen, die auf Ihrem System laufen, verwenden Sie das Befehl ss. Ein Beispiel für einen Befehl, der die Programmnamen, PIDs und die Adressen zeigt, die für TCP und UDP-Traffic zum Listen verwendet werden:

  1. sudo ss -plunt

Die Optionen p, l, u, n, und t funktionieren wie folgt:

  • p zeigt nur Sockete an, die von einem bestimmten Prozess benutzt werden.
  • l zeigt nur Sockets, die aktiv auf Verbindungen warten.
  • u inkludiert UDP-Sockets (zusätzlich zu TCP-Sockets).
  • n zeigt numerische Traffic-Werte.
  • Die Befehle t und netstat sind zwei wichtige Tools für den Systemadministrator, um die Netzwerkaktivität auf einem Linux-System zu überwachen. Mit t können Sie schnell einen Überblick über alle laufenden Prozesse erhalten, die TCP-Sockel benutzen. Dies ist insbesondere hilfreich, wenn Sie eine bestimmte IP-Adresse oder Portnummer suchen, die von einem Prozess verwendet wird.

Die Hauptzeilen, die Sie bei der Analyse der Ausgabe unter t beachten sollten, sind die Netid, die lokale Adresse mit Port sowie der Prozessname. Wenn die lokale Adresse 0.0.0.0 ist, dann akzeptiert das Service Anbindungen auf allen IPv4-Netzwerkinterfacen. Wenn die Adresse [:] ist, dann akzeptiert das Service Anbindungen auf allen IPv6-Netzwerkinterfacen. Im Beispielausgang oben ist SSH und Nginx beide auf allen öffentlichen Interfacen, auf beiden IPv4 und IPv6 Netzwerkstacks angebunden.

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3)) tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=69226,fd=6),("nginx",pid=69225,fd=6)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=812,fd=4)) tcp LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=69226,fd=7),("nginx",pid=69225,fd=7))

Sie könnten entscheiden, ob Sie SSH und Nginx auf beiden Interfacen zu lassen, nur auf einem oder keinem. Generell sollten Sie Services deaktivieren, die auf nicht genutzten Interfacen laufen.

Regelmäßige Updates

Automatische Updates

Die regelmäßigen Updates Ihrer Server sind notig, um ein gutes Basislevel Sicherheit zu gewähren. Server, die nicht regelmäßig updaten und unbehandelt insecurity Versionen von Software laufen, sind für die meisten Sicherheitsanfälle verantwortlich. Regelmäßige Updates können Vulnerabilitäten schützen und Attackern keine Fußfalle auf Ihre Server geben.Unattended Updates machen es möglich, dass sich die Systeme automatisch aktualisieren.

Wie verbessern Unbehandelte Updates die Sicherheit?

Die Implementierung von unbehandelten, d.h. automatischen Updates reduziert den erforderlichen Aufwand, um Ihre Server sicher zu halten und verkürzt die Zeit, in der Ihre Server gegen bekannte Bugs vulnerabel sind. Im Fall einer Vulnerabilität, die auf Software auf Ihren Servern auftritt, sind Ihre Server so lange offen, bis Sie Updates ausführen. Tägliche unbehandelte Upgrades sorgen dafür, dass Sie keine Pakete vermissen und dass Software mit bekannten Fehlern sofort nach Verfügbarkeit der Patches get patcht wird.

Wie implementieren Sie unbehandelte Updates?

Sie können sich How to Keep Ubuntu Servers Updated zur Übersicht implementierter unbehandelter Updates auf Ubuntu ansehen.

Public Key Infrastructure und SSL/TLS-Encryption

Die Public Key Infrastructure, kurz PKI, ist ein System, das zur Erstellung, Verwaltung und Validierung von Zertifikaten für die Identifizierung von Personen und die Verschlüsselung der Kommunikation entwickelt wurde. SSL oder TLS-Zertifikate können zum Authentifizieren verschiedener Entitäten gebrühegt werden und auch zur Einrichtung einer verschlüsselten Kommunikation.

Wie erhöht PKI die Sicherheit?

Die Einrichtung eines Zertifikatsautoritäts (CA) und die Zertifikatmanagement für Ihre Server ermöglicht es jeder Entity innerhalb Ihrer Infrastruktur, die Identität der anderen zu validieren und ihre Traffik zu verschlüsseln. Dies kann dazu beitragen, dass Angriffe durch einen zwischen den Teilnehmern einsetzenden Mann in der Mitte verhindert werden.Jede Server kann konfiguriert werden, um auf eine zentralisierte Zertifikatsautorität zu vertrauen. Nachdem diese festgelegt ist, wird jeder von diesem Authority signierte Zertifikat implizit als vertrauenswürdig gelten.

Wie implementiere ich PKI?

Konfigurieren Sie eine Zertifikatsautorität und setzen Sie die anderen öffentlichen Schlüsselinfrastrukturen ein kann sehr viel Initialeffort erfordern. Außerdem können die Zertifikatmanagementaufgaben zu einem zusätzlichen Administrationsschwerpunkt werden, wenn neue Zertifikate erstellt, signiert oder revokiert werden müssen.

Für viele Benutzer ist es nur sinnvoll, eine vollständige Public Key Infrastructure (PKI) zu implementieren, wenn ihre Infrastrukturbedürfnisse größer werden. Die Sicherung der Kommunikation zwischen Komponenten über einen VPN kann bis dahin eine bessere intermediäre Maßnahme sein, solange Sie nicht den Punkt erreichen, bei dem sich die administrativen Kosten einer PKI lohnen.

Wenn Sie Ihre eigene Zertifikatsautorität erstellen möchten, können Sie auf die nach der verwendeten Linux-Distribution unterschiedlich sein:Guidelines for Setting Up and Configuring a Certificate Authority (CA).

Zusammenfassung

Die in diesem Tutorial vorgestellten Strategien sind ein Überblick einiger Schritte, die Sie unternehmen können, um die Sicherheit Ihrer Systeme zu verbessern. Es ist wichtig zu erkennen, dass Sicherheitsmaßnahmen wirksamer werden, je früher sie implementiert werden. Sicherheit sollte kein Nachdenken sein und muss beim Erstrichten Ihrer Infrastruktur implementiert werden. Nachdem Sie eine sichere Basis für den Aufbau haben, können Sie dann beginnen, Ihre Dienste und Anwendungen mit einigen Gewissenheiten zu installieren, dass sie standardmäßig in einem sicheren Umfeld laufen.

Mit einem sicheren Startumgebung bleibt es immer zu bedenken, dass Sicherheit ein fortlaufender und iterativer Prozess ist. Immer wieder fragen Sie sich bitte, was die Sicherheitsimplikationen einer beliebigen Änderung sein können, und was Sie tun können, um sicherzustellen, dass Sie immer sichere Standardkonfigurationen und Umgebungen für Ihr Software erstellen.

Source:
https://www.digitalocean.com/community/tutorials/7-security-measures-to-protect-your-servers