GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Best Practices für die Sicherheit von Linux-Servern

Der erste Schritt, nachdem Sie einen Linux® Cloud Server erstellt haben, besteht darin, die Sicherheit darauf festzulegen. Sie sollten diesen entscheidenden Schritt auf jedem Server durchführen, um zu verhindern, dass böswillige Akteure unerwünschten Zugriff erhalten. Diese Aktion führt zu einer sichereren Umgebung, die Sie und Ihr Unternehmen vor einer Gefährdung schützt. Das Ausführen dieser grundlegenden Schritte und das Erhöhen der Sicherheit auf Ihrem Server schreckt Angreifer ab und veranlasst sie, sich einem neuen Ziel zuzuwenden.

Benutzerverwaltung

Standardmäßig wird der Root-Benutzer als erster Benutzer auf jedem Linux-System erstellt. Sie sollten ihn über Secure Shell (SSH) deaktivieren. Das Deaktivieren dieses Root-Benutzers über SSH erschwert es einem Angreifer, Zugriff auf das System zu erhalten. Da der Root-Benutzer standardmäßig auf jedem Linux-Server erstellt wird, haben Angreifer bereits die Hälfte der Informationen, die sie benötigen, um sich bei Ihrem Server anzumelden, wenn der Root-Benutzer über SSH aktiviert ist. Diese Situation ermöglicht Brute-Force-SSH-Angriffe, bis der Passwort-Hash bricht.

Um diese Situation zu vermeiden, sollten Sie einen sekundären Benutzer erstellen, wenn Sie sich anmelden und das System verwalten müssen. Jeder Endbenutzer des Systems sollte zu Protokollierungszwecken über eigene Anmeldeinformationen verfügen. Abhängig von den Aktionen, die der Endbenutzer ausführen muss, benötigt er möglicherweise sudo Erlaubnis, Verwaltungshandlungen abzuschließen. Dieser Abschnitt enthält Beispiele dafür, wie Sie einen Benutzer mit sudo-Berechtigung sowohl auf Debian®- als auch auf Red Hat® Enterprise Linux-basierten Systemen hinzufügen.

Richtlinien zur Passwortstärke

Stellen Sie vor dem Erstellen von Benutzern sicher, dass Sie sichere Kennwörter verwenden, die eine Mindestzeichenlänge erfordern (und möglicherweise sogar ein Ablaufdatum enthalten). Hier sind allgemeine Richtlinien, die von Befürwortern der Softwaresystemsicherheit befürwortet werden:

  • Verwenden Sie eine Mindestpasswortlänge von 12 bis 14 Zeichen, sofern zulässig.
  • Falls erlaubt, schließen Sie Klein- und Großbuchstaben, Zahlen und Symbole ein.
  • Passwörter nach Möglichkeit zufällig generieren.
  • Vermeiden Sie es, dasselbe Passwort für mehrere Benutzer, Konten oder Softwaresysteme zu verwenden.
  • Vermeiden Sie Zeichenwiederholungen, Tastaturmuster, Wörter aus dem Wörterbuch, Buchstaben- oder Zahlenfolgen, Benutzernamen, Verwandte oder Kosenamen, romantische Links (aktuelle oder frühere) oder persönliche Informationen (z. B. ID-Nummern, Namen von Vorfahren oder Daten).
  • Vermeiden Sie die Verwendung von Informationen, die öffentlich mit dem Benutzer oder dem Konto in Verbindung gebracht werden oder werden könnten.
  • Vermeiden Sie die Verwendung von Informationen, von denen die Kollegen oder Bekannten des Benutzers wissen könnten, dass sie mit dem Benutzer in Verbindung gebracht werden.
  • Verwenden Sie keine Passwörter, die aus schwachen Komponenten bestehen.

Benutzer hinzufügen (Debian- und Ubuntu-Betriebssystem)

Fügen Sie für die Betriebssysteme Debian und Ubuntu® einen Benutzer hinzu, indem Sie diesen Schritten folgen:

  1. Erstellen Sie einen neuen Benutzer und legen Sie sein Passwort fest:

    useradd {Benutzername}passwd {Benutzername}

  2. Geben Sie dem neuen Benutzer sudo Berechtigungen für privilegierte Vorgänge auf dem System. Dieser Benutzer ist der Hauptbenutzer für die Remote-Anmeldung und das Vornehmen von Änderungen am Server.

    Verwenden Sie eine der folgenden Methoden, um sudo zu implementieren Berechtigungen für den Benutzer.

    a. Führen Sie den folgenden Befehl aus, um den Benutzer zum admin hinzuzufügen Benutzergruppe.

    usermod -aG admin {username}
    

    Alternativ können Sie die sudoers ändern Datei, um dem Benutzer sudo zu geben Berechtigungen.

    a. Führen Sie den folgenden Befehl als Root aus, um die Liste der Benutzerberechtigungen zu bearbeiten:

    visudo
    

    Hinweis: Auf einigen Distributionen verwenden Systeme den vi Texteditor für visudo . Weil vi kein benutzerfreundlicher Editor ist, müssen Sie möglicherweise ein vi-Tutorial zu Rate ziehen, um Hilfe zu erhalten.

    b. Fügen Sie die folgende Zeile direkt nach der Zeile mit root ALL=(ALL:ALL) ALL hinzu :

    {username}     ALL=(ALL:ALL) ALL
    

    c. Speichern und beenden.

  3. Wechseln Sie zum neuen Benutzer und testen Sie dessen Berechtigungen mit sudo um einen Befehl auszuführen, der Root-Zugriff erfordert, wie z. B. der folgende Befehl:

    su {username}
    sudo systemctl status sshd
    

    Sie werden aufgefordert, das Passwort des neuen Benutzers zur Überprüfung einzugeben, bevor Sie den Befehl ausführen.

  4. Sie können auch überprüfen, ob Ihr Benutzer zum root heraufgesetzt werden kann Konto, indem Sie den folgenden Befehl ausführen:

     sudo -i
    

Wenn Sie diese Schritte korrekt ausführen, verfügt Ihr Benutzer jetzt über sudo zugreifen und Berechtigungen erhöhen. Wenn es nicht richtig ausgeführt wird, erhalten Sie eine Meldung, die besagt, dass der Benutzer nicht in den sudoers ist Datei, wenn Sie versuchen, sich zu authentifizieren.

Benutzer hinzufügen (Red Hat und CentOS)

Fügen Sie für Red Hat- und CentOS®-Betriebssysteme einen Benutzer hinzu, indem Sie diesen Schritten folgen:

  1. Erstellen Sie einen neuen Benutzer mit adduser und setzen Sie das Passwort des Benutzers mit passwd :

    useradd {username}
    passwd {username}
    
  2. Geben Sie dem neuen Benutzer sudo Berechtigungen für privilegierte Vorgänge auf dem System. Dieser Benutzer ist der Hauptbenutzer für die Remote-Anmeldung und das Vornehmen von Änderungen am Server.

    Verwenden Sie eine der folgenden Methoden, um sudo zu implementieren Berechtigungen für den Benutzer.

    a. Führen Sie den folgenden Befehl aus, um den Benutzer zum wheel hinzuzufügen Gruppe

    usermod -aG wheel {username}
    

    Alternativ können Sie die sudoers ändern Datei, um dem Benutzer sudo zu geben Berechtigungen.

    a. Führen Sie den folgenden Befehl aus:

    visudo
    

    Hinweis: Bei manchen Distributionen der Texteditor, den das System für visudo verwendet ist vi . Weil vi kein benutzerfreundlicher Editor ist, müssen Sie möglicherweise ein vi-Tutorial zu Rate ziehen, um Hilfe zu erhalten.

    b. Fügen Sie die folgende Zeile direkt nach der Zeile mit root ALL=(ALL:ALL) ALL hinzu :

    {username}     ALL=(ALL)       ALL
    

    c. Speichern und beenden.

  3. Wechseln Sie zum neuen Benutzer und testen Sie dessen Berechtigungen mit sudo So führen Sie einen Befehl aus, der Root-Zugriff erfordert:

    su {username}
    sudo systemctl status sshd
    

    Sie werden aufgefordert, das Passwort des neuen Benutzers zur Überprüfung einzugeben, bevor Sie den Befehl ausführen.

  4. Sie können auch überprüfen, ob Ihr Benutzer zum root heraufgesetzt werden kann Konto, indem Sie den folgenden Befehl ausführen:

     sudo -i
    

Wenn Sie diese Schritte korrekt ausgeführt haben, verfügt Ihr Benutzer jetzt über sudo zugreifen und Berechtigungen erhöhen. Wenn es nicht richtig ausgeführt wird, erhalten Sie eine Meldung, die besagt, dass der Benutzer nicht in den sudoers ist Datei, wenn Sie versuchen, sich zu authentifizieren.

Generieren Sie ein SSH-Schlüsselpaar

Erstellen Sie für eine Anmeldemethode, die sicherer ist als die Verwendung eines Kennworts, ein SSH-Schlüsselpaar zur Verwendung mit dem zuvor erstellten Benutzer. Diese Anleitung funktioniert mit jeder Linux-Distribution.

Hinweis: Diese Anweisungen gelten für Linux- und macOS®-Desktops. Wenn Sie sich von einem Windows®-Desktop aus verbinden, befolgen Sie die Anweisungen unter Generieren von RSA-Schlüsseln mit SSH PUTTYgen und Melden Sie sich mit einem privaten SSH-Schlüssel unter Windows an, um das SSH-Schlüsselpaar zu generieren und hinzuzufügen.

  1. Führen Sie den folgenden Befehl aus, um ein Schlüsselpaar auf Ihrem lokalen zu generieren Linux- oder Mac®-Computer:

    ssh-keygen -b 4096 -t rsa
    

    Wenn Sie gefragt werden, wo der Schlüssel gespeichert werden soll, verwenden Sie den Standardspeicherort. Das Hinzufügen eines Passworts ist optional und sicherer, kann aber unbequem sein.

    Dieser Vorgang erstellt zwei Dateien. Die Standardnamen sind id_rsa für Ihren privaten Schlüssel und id_rsa.pub für Ihren öffentlichen Schlüssel.

  2. Nachdem Sie das Schlüsselpaar auf Ihrem lokalen Computer erstellt haben, laden Sie den öffentlichen Schlüssel für den zuvor erstellten Benutzer auf Ihren Remote-Server hoch.

    Warnung: Achten Sie darauf, die öffentliche hochzuladen Schlüssel und nicht den privaten Schlüssel.

    ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}
    
  3. Stellen Sie eine Verbindung zum Remote-Server her, indem Sie ssh {username}@{remotePublicIPAddress} verwenden und führen Sie den folgenden Befehl aus, um zu überprüfen, ob keine zusätzlichen Schlüssel hinzugefügt wurden, die Sie nicht erwarten:

    cat .ssh/authorized_keys
    

An dieser Stelle haben Sie ssh-key hinzugefügt und Passwortauthentifizierung für den Benutzer. Der nächste Abschnitt behandelt optionale Schritte zum Deaktivieren der Passwortauthentifizierung.

Linux-SSH-Daemon-Konfiguration

Jetzt haben Sie einen neuen Benutzer mit sudo Berechtigungen und ein SSH-Schlüsselpaar können Sie mit der Konfiguration des SSH-Daemons (Server) arbeiten, um die Sicherheit zu verbessern.

Hinweis: Nur für Managed Operations- und RackConnect-Kunden: Um sicherzustellen, dass unsere automatisierten Systeme bei Bedarf Zugriff auf Ihren Server haben, bitten wir Sie, die SSH-Konfiguration nicht zu ändern und mit dem nächsten Abschnitt fortzufahren. Wenn Sie sich mit Ihrem Server verbinden, meldet sich das Rackspace-Supportteam als Benutzer rack an und verwendet die Kennwortauthentifizierung an Port 22. Darüber hinaus erfordert das Neuerstellen vorhandener Server oder das Erstellen eines neuen Servers aus einem Snapshot, dass Sie Root-Anmeldungen aktivieren, indem Sie PermitRootLogin festlegen Option auf yes . Wenn Sie diese Werte ändern müssen, sprechen Sie mit einem Mitglied Ihres Rackspace-Supportteams, damit die Änderung auf eine Weise vorgenommen wird, die unsere Fähigkeit, Ihnen eine Fanatical Experience™ zu bieten, nicht beeinträchtigt.

Die Beispielbefehle für den Rest des Artikels gehen davon aus, dass Sie mit sudo als Ihr neuer Benutzer angemeldet sind um privilegierte Operationen auszuführen.

SSH-Konfigurationsoptionen

Dieser Abschnitt behandelt allgemeine Optionen in der SSH-Konfigurationsdatei, die zur Verbesserung der Sicherheit beitragen. Diese Informationen werden später zur Konfiguration Ihrer Firewall verwendet.

In diesem Abschnitt werden nur einige Optionen zum Ändern beschrieben und beschrieben, was sie bewirken. Einzelheiten zu anderen Konfigurationsoptionen finden Sie in der OpenSSH-Dokumentation.

Dieser Abschnitt konzentriert sich auf die folgenden Optionen:

  • Port XX :Diese Option ist der Port, auf dem der SSH-Daemon lauscht (standardmäßig Port 22).
  • PermitRootLogin :Dieses Flag aktiviert (yes) oder deaktiviert (no) die Root-Anmeldung über SSH. Standardmäßig ist diese Zeile auskommentiert und erlaubt Root-Login.
  • PubkeyAuthentication :Dieses Flag aktiviert (yes) oder deaktiviert (no) SSH-Schlüssel für die Authentifizierung. Standardmäßig ist diese Zeile auskommentiert und erlaubt ssh-key zugreifen.
  • PasswordAuthentication :Dieses Flag aktiviert (ja) oder deaktiviert (nein) die Passwortauthentifizierung. Standardmäßig ist diese Option aktiviert.

SSH verwendet standardmäßig Port 22 für die Kommunikation. Betrüger versuchen Port 22 mit dem Benutzernamen root auf jedem Server, den sie angreifen. Aus diesem Grund hilft das Deaktivieren des Root-Benutzers über SSH und das Ändern von SSH so, dass es auf einem nicht standardmäßigen Port lauscht, um einen Verstoß zu verhindern.

Das Ändern des Ports wird einen entschlossenen Eindringling nicht aufhalten, aber es führt dazu, dass die meisten oberflächlichen Scans nach SSH-Verbindungsmöglichkeiten Ihren Server übersehen. In ähnlicher Weise stört das Entfernen des SSH-Zugriffs für den Root-Benutzer gelegentliche Brute-Force-Angriffe über SSH.

Sie sollten auch überlegen, welche Authentifizierungsmethode Sie bei der Anmeldung verwenden. Standardmäßig verwenden alle Linux-Systeme eine Kennwortauthentifizierung. Es gibt mehrere Möglichkeiten, die Authentifizierung auf dem Server durchzuführen, aber die beiden wichtigsten sind die Verwendung eines Passworts und von SSH-Schlüsseln.

SSH-Schlüssel werden paarweise generiert, einer öffentlich und der andere privat, und Sie können sie nur in Kombination miteinander verwenden. Sie sollten den privaten Schlüssel an einem sicheren Ort auf dem Computer speichern, von dem aus Sie sich verbinden, und Sie sollten ihn niemals herausgeben. Sie können den öffentlichen Schlüssel herausgeben, und es ist der Schlüssel, den Sie auf dem Server hinterlegen, mit dem Sie sich verbinden. Der private Schlüssel auf Ihrem lokalen Computer durchläuft einen Algorithmus, wenn Sie eine Verbindung herstellen, und gewährt Zugriff, wenn der Schlüsselpaar-Hash mit dem öffentlichen Schlüssel übereinstimmt.

sshd_config ändern

Zu diesem Zeitpunkt haben Sie mit sudo einen neuen Benutzer hinzugefügt Berechtigungen, erstellte ein SSH-Schlüsselpaar und lud Ihren öffentlichen SSH-Schlüssel hoch. Sie können jetzt Ihre SSH-Konfigurationsdatei ändern, um Ihre Sicherheit zu verbessern. Dazu können Sie SSH so ändern, dass es auf einem benutzerdefinierten Port lauscht, die Root-Anmeldung über SSH einschränken, die Public-Key-Authentifizierung aktivieren und die Kennwortauthentifizierung deaktivieren, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die SSH-Daemon-Konfigurationsdatei zum Bearbeiten:

    sudo vim /etc/ssh/sshd_config
    
  2. Ändern Sie die folgenden Zeilen:

    Hinweis :Standardmäßig der Port und PermitRootLogin Zeilen sind auskommentiert, wie durch # angegeben Symbol. Wenn sie auskommentiert sind, werden diese Zeilen als Standardoptionen gelesen, selbst wenn Änderungen an der Zeile vorgenommen werden. Um diese Änderungen zu implementieren, müssen Sie die zugehörigen Zeilen auskommentieren, indem Sie das # entfernen Symbol am Anfang der zugehörigen Zeile. Außerdem vor dem Deaktivieren von PasswordAuthentication Stellen Sie sicher, dass Sie einen SSH-Schlüssel konfiguriert haben, oder Sie können keine Verbindung zum Server herstellen.

    Änderung:

    #Port 22
    #PermitRootLogin yes
    PasswordAuthentication yes     
    

    An:

    Port 2222
    PermitRootLogin no
    PasswordAuthentication no
    

    Ersetzen Sie 2222 mit dem Port, den Sie verwenden möchten. Stellen Sie mithilfe von netstat sicher, dass der neue Port nicht bereits von einem anderen Programm verwendet wird.

    Wichtig: Wie bereits erwähnt, sollten Sie diese Änderung nicht an sshd_config vornehmen Datei, wenn Ihr Server über ein Managed Operations-Servicelevel verfügt. Diese Änderungen könnten Rackspace den Zugriff auf Ihren Server verweigern.

  3. Testen Sie die geänderte SSH-Konfiguration auf Fehler, indem Sie den folgenden Befehl ausführen:

    sshd -t
    

Wenn Sie keine Fehler erhalten, ist SSH jetzt so konfiguriert, dass es auf einem benutzerdefinierten Port ausgeführt wird und nur Nicht-Root-Benutzer akzeptiert, die einen gültigen SSH-Schlüssel übergeben. Damit diese Einstellungen gelten und bestehen bleiben, müssen Sie den SSH-Dienst neu starten. Starten Sie den Dienst jedoch noch nicht neu. Wenn Sie SSH jetzt neu starten, werden Sie möglicherweise vom Server ausgeschlossen, sodass Sie den Rettungsmodus oder die Webkonsole verwenden müssen, um die Konfiguration wiederherzustellen. Sie müssen die Firewall konfigurieren, bevor Sie den Server neu starten. Wir besprechen die Firewall im nächsten Abschnitt.

Software-Firewall ändern und SSH neu starten

Hinweis: RackConnect-Kunden: Verwenden Sie zum Verwalten von Firewall-Regeln die RackConnect-Verwaltung anstelle von iptables auf dem Server. Sie sollten den SSH-Port nicht ändern, wenn Sie RackConnect verwenden. Weitere Informationen zu Firewalls und RackConnect finden Sie unter Netzwerkrichtlinien von RackConnect v2.0 verwalten.

Jede Linux-Distribution verwendet eine andere Software-Firewall-Lösung. In Red Hat Enterprise Linux (RHEL) und CentOS 7 ist die Standard-Firewall firewalld . Auf Debian- und Ubuntu-basierten Distributionen ist die Standard-Firewall-Lösung Uncomplicated Firewall (UFW). Für RHEL und CentOS 6 ist die Standardlösung iptables . Informationen zum Betriebssystem Ihres Servers finden Sie im folgenden Abschnitt.

RHEL, CentOS 7 und firewalld
  1. Öffnen Sie den neuen SSH-Port, indem Sie die folgenden Befehle ausführen:

     sudo firewall-cmd --permanent --remove-service=ssh
     sudo firewall-cmd --permanent --add-port=2222/tcp
     sudo firewall-cmd --reload
    

    Ersetzen Sie 2222 mit dem Port, den Sie für den SSH-Daemon verwendet haben.

  2. Starten Sie sshd neu Dienst durch Ausführen des folgenden Befehls:

     sudo systemctl restart sshd
    
  3. Stellen Sie sicher, dass Ihr benutzerdefinierter SSH-Port auf dem Server geöffnet ist:

     netstat -plnt | grep ssh
    

Wenn Sie diesen Schritten gefolgt sind, sollten Sie etwas Ähnliches wie die folgende Ausgabe sehen:

    tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      1341/sshd           
    tcp6       0      0 :::2222                 :::*                    LISTEN      1341/sshd 
Ubuntu, Debian und UFW
  1. Öffnen Sie den neuen SSH-Port, indem Sie die folgenden Befehle ausführen:

     sudo ufw allow 2222
    

    Ersetzen Sie 2222 mit dem Port, den Sie für den SSH-Daemon verwendet haben.

  2. Starten Sie sshd neu Dienst durch Ausführen des folgenden Befehls:

     sudo systemctl restart sshd
    
  3. Überprüfen Sie, ob Ihr benutzerdefinierter SSH-Port auf dem Server geöffnet ist, indem Sie den folgenden Befehl ausführen:

     netstat -plnt | grep ssh
    

Wenn Sie diesen Schritten gefolgt sind, sollten Sie etwas Ähnliches wie die folgende Ausgabe sehen:

    tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      1341/sshd           
    tcp6       0      0 :::2222                 :::*                    LISTEN      1341/sshd 
CentOS 6 und iptables

Hinweis :RHEL und CentOS 6 werden im November 2020 als End of Life gekennzeichnet. Für optimale Sicherheitspraktiken empfehlen wir Ihnen dringend, eine neuere Betriebssystemversion zum Hosten Ihrer Anwendung oder Website in Betracht zu ziehen.

  1. Öffnen Sie den neuen SSH-Port, indem Sie den folgenden Befehl ausführen:

    sudo iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
    sudo service iptables-save
    

    Ersetzen Sie 2222 mit dem Port, den Sie für den SSH-Daemon verwendet haben.

  2. Führen Sie den folgenden Befehl aus, um den SSH-Daemon neu zu starten, damit der Daemon die von Ihnen eingerichtete neue Konfiguration anwendet:

    sudo service sshd restart
    
  3. Überprüfen Sie, ob Ihr benutzerdefinierter SSH-Port auf dem Server geöffnet ist, indem Sie den folgenden Befehl ausführen:

     netstat -plnt | grep ssh
    

Wenn Sie diesen Schritten gefolgt sind, sollten Sie etwas Ähnliches wie die folgende Ausgabe sehen:

    tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      1341/sshd           
    tcp6       0      0 :::2222                 :::*                    LISTEN      1341/sshd 

Nachdem Sie die Änderungen für Ihr Betriebssystem vorgenommen haben, öffnen Sie ein weiteres Terminalfenster auf Ihrem lokalen Computer und melden Sie sich beim Server als der Benutzer an, den Sie zuvor erstellt haben. Denken Sie daran, den neu geänderten Port anzugeben. Lassen Sie Ihre ursprüngliche Verbindung aktiv, falls Sie Fehler in der Konfiguration beheben müssen.

Um mit der neuen Konfiguration eine Verbindung zu SSH herzustellen, müssen Sie möglicherweise die zu verwendende Portnummer und den zu verwendenden Schlüssel angeben. Zum Beispiel:

    ssh -p 2222 -i ~/.ssh/id_rsa {username}@{remotePublicIPAddress}

Das -p Die Option gibt den Port und den -i an Die Option gibt den privaten Schlüssel an, der für die Verbindung verwendet werden soll.

Wenn Sie sich von einem Windows-Desktop aus verbinden, können Sie beim Erstellen der Verbindung in PuTTY die Portnummer und einen privaten Schlüssel angeben.

Einfacher Angriffsschutz

Die meisten potenziellen Eindringlinge führen mehrere Angriffe gegen denselben Port durch, um zu versuchen, etwas zu finden, das sie in der Software ausnutzen können, die auf diesem Port läuft. Glücklicherweise können Sie ein Intrusion-Prevention-Tool wie Fail2ban auf Ihrem Server einrichten, um wiederholte Angriffe auf einen Port zu blockieren /P>

Hinweis: Managed Operations-Server haben fail2Ban standardmäßig installiert und konfiguriert, um SSH-Anmeldeversuche zu überwachen. Wenden Sie sich bei Fragen oder Bedenken an Ihr Support-Team.

fail2ban überwacht Protokolle und blockiert automatisch Verbindungen, wenn innerhalb kurzer Zeit zu viele vom selben Host erkannt werden. Zum Einrichten und Konfigurieren von fail2ban Führen Sie auf Ihrem Server die folgenden Schritte aus:

  1. Um fail2ban zu installieren Führen Sie auf Ihrem Server einen der folgenden Befehle aus.

    RHEL und CentOS:

    sudo yum install fail2ban
    

    Debian und Ubuntu:

    sudo apt-get install fail2ban
    
  2. Verwenden Sie den folgenden Befehl, um Ihren Standard fail2ban zu kopieren Konfig. Die neu erstellte Datei überschreibt die Standardkonfiguration und ermöglicht Ihnen, die Datei sicher zu ändern.

    sudo cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  3. Ändern Sie Ihre Datei, um Ihre Sicherheitsstufe in fail2ban anzupassen .

    vim /etc/fail2ban/jail.local
    

    In dieser Datei können Sie die folgenden Optionen festlegen:

    • ignoreip :Mit diesem Parameter können Sie jede IP-Adresse angeben, die nicht gesperrt werden soll.
    • bantime :Mit diesem Parameter können Sie die Anzahl der Sekunden angeben, um eine IP-Adresse zu sperren.
    • findtime :Dieser Parameter sucht nach Hinweisen auf maxretry löst in der angegebenen Zeit aus.
    • maxretry :Dieser Parameter legt die Anzahl der zulässigen Wiederholungen fest, bevor die IP-Adresse gesperrt wird.
  4. Erstellen Sie eine Jail-Datei für SSH-Anmeldeversuche.

    vim /etc/fail2ban/jail.d/sshd.local
    
  5. Kopieren Sie in der erstellten Datei den folgenden Text und fügen Sie ihn ein:

    [sshd]
    enabled = true
    port = ssh
    #action = firewallcmd-ipset
    logpath = %(sshd_log)s
    maxretry = 3
    bantime = 86400
    

    Diese Optionen sperren eine IP-Adresse nach drei fehlgeschlagenen Verbindungsversuchen über SSH für 24 Stunden. Wenn Sie Ihre lokale IP-Adresse kennen, empfehlen wir Ihnen dringend, diese IP-Adresse im vorherigen Abschnitt als ignoreip hinzuzufügen Parameter.

  6. Starten und aktivieren Sie fail2ban auf Ihrem Server mit den folgenden Befehlen:

    RHEL und CentOS 7 oder Debian und Ubuntu:

     sudo systemctl start fail2ban
     sudo systemctl enable fail2ban
    

    RHEL und CentOS 6:

     sudo service fail2ban start
     sudo chkconfig fail2ban on
    

Intrusion Detection

Ein Intrusion Detection System (IDS) kann einem Administrator dabei helfen, Systeme auf verdächtige Aktivitäten und mögliche Exploits zu überwachen. Ein IDS ist robuster als ein Präventionstool wie fail2ban Die Einrichtung und Wartung kann jedoch komplizierter sein.

Ein beliebtes Open-Source-IDS ist OSSEC. OSSEC verwaltet Agenten auf mehreren Systemen, die an den Hauptserver zurückmelden, was die Untersuchung von Protokollen und Warnungen von einem möglicherweise kompromittierten Server ermöglicht, selbst wenn dieser Server heruntergefahren ist.

Wenn Sie vermuten, dass ein System bereits kompromittiert ist, können Sie dies mit Verfahren untersuchen, z. B. auf Hintertüren und Eindringlinge prüfen und im Rettungsmodus untersuchen.

Halten Sie Ihr Betriebssystem auf dem neuesten Stand (Patching)

Es ist sehr wichtig, Ihren Kernel, Ihre Pakete und Abhängigkeiten auf dem neuesten Stand zu halten, insbesondere für sicherheitsrelevante Module und Pakete. Bei einigen Updates, wie z. B. Kernel-Updates, müssen Sie Ihren Server neu starten. Sie sollten Wartungsarbeiten so planen, dass sie zu Zeiten stattfinden, die die Benutzer am wenigsten stören, da diese Wartungsarbeiten eine kurze Ausfallzeit verursachen.

Wichtig :Obwohl es von entscheidender Bedeutung ist, Ihr System auf dem neuesten Stand zu halten, stellen Sie sicher, dass die von Ihnen angewendeten Updates Ihre Produktionsumgebung nicht negativ beeinflussen.

Führen Sie die folgenden Befehle aus, um auf Ubuntu-Betriebssystemen und Debian nach Updates zu suchen und diese zu installieren:

sudo apt-get update
sudo apt-get upgrade

Führen Sie den folgenden Befehl aus, um auf CentOS-, Red Hat- und Fedora-Systemen nach Updates zu suchen und diese zu installieren:

sudo yum update

Betriebssystemende

Finden Sie heraus, wann die Linux-Distributionsversion, die Sie auf Ihren Servern ausführen, ihr Lebensende (EOL) erreicht. Wenn eine Veröffentlichung ihr EOL erreicht, unterstützen die Betreuer der Distribution sie nicht mehr und liefern keine Paketaktualisierungen mehr über ihre offiziellen Repositories. Sie sollten Ihre Migration zu einer neueren Version rechtzeitig planen, bevor Ihre aktuelle Version ihr EOL erreicht.

Verwenden Sie die folgenden Links, um herauszufinden, wann das EOL Ihrer Linux-Distribution erreicht wird:

  • Ubuntu-Betriebssysteme:https://wiki.ubuntu.com/Releases
  • Red Hat Enterprise Linux (RHEL):https://access.redhat.com/support/policy/updates/errata/
  • CentOS:Gleich wie Red Hat
  • Fedora:https://fedoraproject.org/wiki/End_of_life
  • Debian:https://wiki.debian.org/DebianReleases

Sicherheit auf Kontoebene

Obwohl die Sicherung Ihrer Server ein wesentlicher Bestandteil des Betriebs im Internet ist, ist die Sicherung Ihres Kontos ebenfalls erforderlich. Ihr Kontoname, Ihr Passwort und Ihre API-Schlüssel sind wesentliche Bestandteile Ihrer Interaktion mit den Cloud-Angeboten von Rackspace. Genau wie alle anderen Passwörter oder Zugangsdaten möchten Sie sie sicher aufbewahren. Sie müssen Ihrem Team jedoch auch erlauben, Maßnahmen zu ergreifen und notwendige Aufgaben auszuführen.

Mithilfe der rollenbasierten Zugriffskontrolle (Role Based Access Control, RBAC) können Sie Benutzer erstellen und Personen oder Anwendungen, die für die Nutzung verschiedener Rackspace-Dienste verantwortlich sind, Berechtigungen erteilen. Durch die Nutzung von RBAC können Sie Ihrem Team und Ihren Auftragnehmern nur Zugriff auf die Dienstprogramme gewähren, die sie benötigen, und den Zugriff bei Bedarf widerrufen.

Im Folgenden sind einige Anwendungsszenarien aufgeführt:

  • Geben Sie Auftragnehmern Zugriff, um die Umgebung einzurichten, mit deren Erstellung Sie sie beauftragt haben, aber schränken Sie ihre Möglichkeiten ein, Kreditkarteninformationen anzuzeigen oder zu ändern oder Ihr Konto zu löschen.
  • Gestatten Sie Ihrem Buchhalter, die Rechnung einzusehen, aber nicht Ihre Server zu löschen.
  • Stellen Sie einen Datenbankadministrator (DBA) ein und gewähren Sie dem DBA Zugriff auf Ihre DBaaS-Instanzen.
  • Gestatten Sie einem Client, Dateien direkt in Ihr Cloud Files-Konto hochzuladen.
  • Konfigurieren Sie Ihre Server, um bestimmte Benutzer für Ihre Überwachungs- und Backup-Agenten zu registrieren und zu verwenden, die von Ihrem Administratorkonto getrennt sind.

Weitere Informationen zu RBAC finden Sie in den häufig gestellten Fragen zur rollenbasierten Zugriffssteuerung (RBAC).


Linux
  1. Benutzer in Linux auflisten - Beste Methode

  2. 8 Best Practices mit sudo unter Linux – Do’s and Dont’s von sudo

  3. Best Practices für die Sicherheit von Windows-Servern

  4. Best Practices für WordPress-Sicherheit unter Linux

  5. sudo-Befehlsbeispiele in Linux

Best Practices für DNS für Sicherheit und Leistung

10 Best Practices für die Docker-Sicherheit

10 Best Practices für die Datenbanksicherheit

Linux-Server-Härtung – Best Practices

Ubuntu Server Setup – Best Practices für die Sicherheit

5 Best Practices für Linux SSH-Sicherheit zum Schutz Ihrer Systeme