Connect with us

Wie man

So sichern Sie Ihren Linux-Server mit fail2ban

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri / Shutterstock

Mit fail2banIhr Linux-Computer blockiert automatisch IP-Adressen mit zu vielen Verbindungsfehlern. Es ist selbstregulierende Sicherheit! Wir zeigen Ihnen, wie man es benutzt.

Sicherheit Sicherheit Sicherheit

Herzogin von Windsor, Wallis Simpson, Einmal sagte er berühmt: „Man kann niemals zu reich oder zu dünn sein.“ Wir haben dies für unsere moderne, vernetzte Welt aktualisiert: Sie können niemals zu vorsichtig oder zu sicher sein.

Wenn Ihr Computer eingehende Verbindungsanfragen akzeptiert, z Sichere Shell ((SSH) Verbindungen oder fungiert als Web- oder E-Mail-Server. Sie müssen ihn vor Brute-Force-Angriffen und Kennwortschätzern schützen.

Dazu müssen Sie Verbindungsanforderungen überwachen, die nicht in ein Konto gelangen. Wenn sie sich innerhalb kurzer Zeit wiederholt nicht authentifizieren, sollten sie von weiteren Versuchen ausgeschlossen werden.

Dies kann praktisch nur erreicht werden, indem der gesamte Prozess automatisiert wird. Mit ein wenig einfacher Konfiguration, fail2ban wird die verwalten Überwachung, Verbot und Aufhebung des Verbots für dich.

fail2ban integriert mit die Linux-Firewall iptables. Es erzwingt die Verbote der verdächtigen IP-Adressen, indem der Firewall Regeln hinzugefügt werden. Um diese Erklärung übersichtlich zu halten, verwenden wir iptables mit einem leeren Regelsatz.

Wenn Sie sich Sorgen um die Sicherheit machen, haben Sie wahrscheinlich eine Firewall, die mit einem gut gefüllten Regelsatz konfiguriert ist. fail2ban nur fügt eigene Regeln hinzu und entfernt sie– Ihre regulären Firewall-Funktionen bleiben unberührt.

Mit diesem Befehl können wir unseren leeren Regelsatz sehen:

sudo iptables -L

Fail2ban installieren

Installieren fail2ban ist einfach für alle Distributionen, mit denen wir diesen Artikel recherchiert haben. Unter Ubuntu 20.04 lautet der Befehl wie folgt:

sudo apt-get install fail2ban

Geben Sie auf Fedora 32 Folgendes ein:

sudo dnf install fail2ban

Auf Manjaro 20.0.1 haben wir verwendet pacman::

sudo pacman -Sy fail2ban

Fail2ban konfigurieren

Das fail2ban Die Installation enthält eine Standardkonfigurationsdatei namens jail.conf. Diese Datei wird überschrieben, wenn fail2ban wird aktualisiert, sodass wir unsere Änderungen verlieren, wenn wir Anpassungen an dieser Datei vornehmen.

Stattdessen kopieren wir die Datei jail.conf in eine Datei namens jail.local. Wenn Sie unsere Konfigurationsänderungen in jail.local einfügen, bleiben sie auch bei Upgrades erhalten. Beide Dateien werden automatisch von gelesen fail2ban.

So kopieren Sie die Datei:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Öffnen Sie nun die Datei in Ihrem Lieblingseditor. Wir werden verwenden gedit::

sudo gedit /etc/fail2ban/jail.local

Wir werden nach zwei Abschnitten in der Datei suchen: [DEFAULT] und [sshd]. Achten Sie jedoch darauf, die tatsächlichen Abschnitte zu finden. Diese Beschriftungen erscheinen auch oben in einem Abschnitt, der sie beschreibt, aber das ist nicht das, was wir wollen.

/etc/fail2ban/jail.local wurde in einem gedit-Fenster geöffnet.

Sie finden das [DEFAULT] Abschnitt irgendwo um Zeile 40. Es ist ein langer Abschnitt mit vielen Kommentaren und Erklärungen.

/etc/fail2ban/jail.local wurde in einem gedit-Fenster geöffnet und zu Zeile 89 gescrollt.

Scrollen Sie nach unten zu Zeile 90, und Sie finden die folgenden vier Einstellungen, die Sie kennen müssen:

  • Ignorieren: Eine Whitelist mit IP-Adressen, die niemals gesperrt werden. Sie haben eine permanente Karte „Get Out of Jail Free“. Das localhost IP-Adresse ((127.0.0.1) ist standardmäßig in der Liste enthalten, zusammen mit dem IPv6-Äquivalent (::1). Wenn es andere IP-Adressen gibt, von denen Sie wissen, dass sie niemals gesperrt werden sollten, fügen Sie sie dieser Liste hinzu und lassen Sie zwischen den einzelnen Leerzeichen ein Leerzeichen.
  • Bantime: Die Dauer, für die eine IP-Adresse gesperrt ist (das „m“ steht für Minuten). Wenn Sie einen Wert ohne „m“ oder „h“ (für Stunden) eingeben, wird dieser als Sekunden behandelt. Ein Wert von -1 sperrt eine IP-Adresse dauerhaft. Achten Sie darauf, sich nicht dauerhaft auszusperren.
  • finde Zeit: Die Zeitspanne, in der zu viele fehlgeschlagene Verbindungsversuche dazu führen, dass eine IP-Adresse gesperrt wird.
  • maxretry: Der Wert für „zu viele fehlgeschlagene Versuche“.

Wenn eine Verbindung von derselben IP-Adresse hergestellt wird maxretry Fehlgeschlagene Verbindungsversuche innerhalb der findtime Zeitraum sind sie für die Dauer der verboten bantime. Die einzigen Ausnahmen sind die IP-Adressen in der ignoreip Liste.

fail2ban bringt die IP-Adressen für einen festgelegten Zeitraum ins Gefängnis. fail2ban unterstützt viele verschiedene Jails und jedes stellt die Einstellungen dar, die für einen einzelnen Verbindungstyp gelten. Auf diese Weise können Sie unterschiedliche Einstellungen für verschiedene Verbindungstypen vornehmen. Oder du kannst haben fail2ban Überwachen Sie nur einen ausgewählten Satz von Verbindungstypen.

Sie könnten es von der erraten haben [DEFAULT] Abschnittsname, aber die Einstellungen, die wir uns angesehen haben, sind die Standardeinstellungen. Schauen wir uns nun die Einstellungen für das SSH-Gefängnis an.

Ein Gefängnis konfigurieren

Mit Gefängnissen können Sie Verbindungstypen ein- und aussteigen fail2ban's Überwachung. Wenn die Standardeinstellungen nicht mit denen übereinstimmen, die auf das Gefängnis angewendet werden sollen, können Sie bestimmte Werte für festlegen bantime, findtime, und maxretry.

Scrollen Sie nach unten zu ungefähr Zeile 280, und Sie sehen das [sshd] Sektion.

/etc/fail2ban/jail.local wurde in einem gedit-Fenster geöffnet und zu Zeile 280 gescrollt.

Hier können Sie Werte für das SSH-Verbindungsgefängnis festlegen. Um dieses Gefängnis in die Überwachung und das Verbot einzubeziehen, müssen wir die folgende Zeile eingeben:

enabled = true

Wir geben auch diese Zeile ein:

maxretry = 3

Die Standardeinstellung war fünf, aber wir möchten bei SSH-Verbindungen vorsichtiger sein. Wir haben es auf drei reduziert und dann die Datei gespeichert und geschlossen.

Wir haben dieses Gefängnis hinzugefügt fail2ban's Überwachung und überschrieb eine der Standardeinstellungen. Ein Gefängnis kann eine Kombination aus Standardeinstellungen und gefängnisspezifischen Einstellungen verwenden.

Fail2ban aktivieren

Bisher haben wir installiert fail2ban und konfiguriert es. Jetzt müssen wir es aktivieren, um als Autostart-Dienst ausgeführt zu werden. Dann müssen wir es testen, um sicherzustellen, dass es wie erwartet funktioniert.

Ermöglichen fail2ban Als Dienstleistung nutzen wir die systemctl Befehl::

sudo systemctl enable fail2ban

Wir verwenden es auch, um den Dienst zu starten:

sudo systemctl start fail2ban

Wir können den Status des Dienstes mit überprüfen systemctl, zu:

sudo systemctl status fail2ban.service

Alles sieht gut aus – wir haben grünes Licht, also ist alles in Ordnung.

Mal sehen ob fail2ban stimmt zu:

sudo fail2ban-client status

Dies spiegelt wider, was wir eingerichtet haben. Wir haben ein einzelnes Gefängnis mit dem Namen aktiviert [sshd]. Wenn wir den Namen des Gefängnisses in unseren vorherigen Befehl aufnehmen, können wir uns das genauer ansehen:

sudo fail2ban-client status sshd

Hier wird die Anzahl der Fehler und gesperrten IP-Adressen aufgeführt. Natürlich sind im Moment alle Statistiken Null.

Testen Sie unser Gefängnis

Auf einem anderen Computer stellen wir eine SSH-Verbindungsanforderung an unseren Testcomputer und geben das Kennwort absichtlich falsch ein. Sie erhalten drei Versuche, das Kennwort bei jedem Verbindungsversuch richtig zu machen.

Das maxretry Der Wert wird nach drei fehlgeschlagenen Verbindungsversuchen ausgelöst, nicht nach drei fehlgeschlagenen Kennwortversuchen. Wir müssen also dreimal ein falsches Passwort eingeben, um den Verbindungsversuch 1 fehlzuschlagen.

Wir werden dann einen weiteren Verbindungsversuch durchführen und das Passwort noch dreimal falsch eingeben. Der erste falsche Kennwortversuch der dritten Verbindungsanforderung sollte ausgelöst werden fail2ban.

Nach dem ersten falschen Kennwort bei der dritten Verbindungsanforderung erhalten wir keine Antwort vom Remotecomputer. Wir bekommen keine Erklärung; Wir bekommen nur die kalte Schulter.

Sie müssen Strg + C drücken, um zur Eingabeaufforderung zurückzukehren. Wenn wir es noch einmal versuchen, erhalten wir eine andere Antwort:

ssh dave@ubuntu20-04.local

Zuvor lautete die Fehlermeldung „Berechtigung verweigert“. Diesmal wird die Verbindung komplett abgelehnt. Wir sind eine Persona non grata. Wir wurden verboten.

Schauen wir uns die Details der an [sshd] wieder Gefängnis:

sudo fail2ban-client status sshd

Es gab drei Fehler und eine IP-Adresse (192.168.4.25) wurde gesperrt.

Wie bereits erwähnt, fail2ban Erzwingt Verbote durch Hinzufügen von Regeln zum Firewall-Regelsatz. Schauen wir uns den Regelsatz noch einmal an (er war vorher leer):

sudo iptables -L

Der INPUT-Richtlinie wurde eine Regel hinzugefügt, die SSH-Verkehr an die sendet f2b-sshd Kette. Die Regel in der f2b-sshd Kette lehnt SSH-Verbindungen von 192.168.4.25 ab. Wir haben die Standardeinstellung für nicht geändert bantimeIn 10 Minuten wird diese IP-Adresse nicht mehr gesperrt und kann neue Verbindungsanfragen stellen.

Wenn Sie eine längere Sperrdauer (z. B. mehrere Stunden) festlegen, einer IP-Adresse jedoch erlauben möchten, früher eine andere Verbindungsanfrage zu stellen, können Sie sie frühzeitig auf Bewährung entlassen.

Dazu geben wir Folgendes ein:

sudo fail2ban-client set sshd unbanip 192.168.5.25

Wenn wir auf unserem Remotecomputer eine weitere SSH-Verbindungsanforderung stellen und das richtige Kennwort eingeben, können wir eine Verbindung herstellen:

ssh dave@ubuntu20-04.local

Einfach und effektiv

Einfacher ist normalerweise besser und fail2ban ist eine elegante Lösung für ein kniffliges Problem. Es erfordert nur sehr wenig Konfiguration und verursacht kaum Betriebsaufwand – für Sie oder Ihren Computer.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia