Wie Sichern Sie sich Ihren Linux-Server mit fail2ban

0
468
Fatmawati Achmad Zaenuri/Shutterstock

Mit fail2ban, Ihren Linux-computer automatisch blockiert IP-Adressen, die zu viele Fehler bei der Verbindung. Es ist selbst-Regulierung der Sicherheit! Wir zeigen Ihnen, wie es zu benutzen.

Sicherheit Sicherheit Sicherheit

Die Herzogin von Windsor, Wallis Simpson, der nach einem berühmten Zitat sagte, “Man kann nie zu Reich oder zu Dünn.” Wir aktualisiert haben, diese für unsere moderne, vernetzte Welt: Man kann nie zu vorsichtig oder zu sichern.

Wenn Ihr computer akzeptiert eingehende Verbindungsanforderungen, wie Secure Shell (SSH) verbindungen, oder dient als ein web-oder E-Mail-server, und Sie müssen es schützen vor brute-force-Attacken und Passwort-guessers.

Dies zu tun, müssen Sie die monitor-Verbindungsanforderungen, die nicht in ein Konto. Wenn Sie immer wieder scheitern, sich zu authentifizieren, innerhalb einer kurzen Frist, Sie sollte verboten werden, was weitere versuche.

Der einzige Weg dies erreicht werden kann, praktisch ist die Automatisierung des gesamten Prozesses. Mit ein wenig einfache Konfiguration, fail2ban verwalten der überwachung, Verbot, und unbanning für Sie.

fail2ban lässt sich mit der Linux-firewall iptables. Es erzwingt die Verbote der verdächtigen IP-Adressen, die durch hinzufügen von Regeln für die firewall. Um diese Erklärung zu schlicht, verwenden wir iptables mit einem leeren Regelsatz.

Natürlich, wenn Sie um die Sicherheit besorgt, wahrscheinlich haben Sie eine firewall konfiguriert ist, mit einem gut besiedelten Regelsatz. fail2ban fügt nur und entfernt Sie Ihren eigenen Regeln—Eure regelmäßige firewall-Funktionen bleiben unberührt.

Wir können unsere leeren Regelsatz mit diesem Befehl:

sudo iptables -L

VERWANDTE: Die Anfänger-Leitfaden zum iptables-die Linux-Firewall

Installation von fail2ban

Installation von fail2ban ist einfach auf alle die Distributionen, die wir verwendet, um Forschung in diesem Artikel. Auf Ubuntu 20.04, lautet der Befehl wie folgt:

sudo apt-get install fail2ban

Auf Fedora-32, Typ:

sudo dnf install fail2ban

Auf Manjaro 20.0.1, die wir verwendet pacman:

sudo pacman -Sy fail2ban

Konfiguration von fail2ban

Die fail2ban-installation enthält eine Standard-Konfigurations-Datei namens jail.conf. Diese Datei wird überschrieben, wenn fail2ban aktualisiert wird, so verlieren wir unsere änderungen, wenn wir Anpassungen vornehmen, um diese Datei.

Stattdessen, wir werden kopieren, das Gefängnis.conf-Datei eine sogenannte Gefängnis.local. Indem wir unsere änderungen an der Konfiguration im Gefängnis.lokale, Sie bleiben in den upgrades. Beide Dateien werden automatisch gelesen von fail2ban.

Dies ist, wie die Datei zu kopieren:

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

Öffnen Sie nun die Datei in Ihrem bevorzugten editor. Wir verwenden gedit:

sudo gedit /etc/fail2ban/jail.lokale

Wir suchen für zwei Abschnitte in der Datei: [DEFAULT] und [sshd]. Darauf zu finden die tatsächliche Abschnitte, aber. Diese Bezeichnungen erscheinen auch in der Nähe der Spitze in einen Abschnitt, der beschreibt, aber das ist nicht das, was wir wollen.

Finden Sie die [DEFAULT] – Abschnitt irgendwo um Zeile 40. Es ist eine lange Etappe mit vielen Kommentaren und Erklärungen.

Blättern Sie nach unten, um um die Zeile 90 finden Sie die folgenden vier Einstellungen, die Sie wissen müssen über:

  • ignoreip: Eine whitelist von IP-Adressen, die niemals gebannt wird. Sie haben eine permanente Holen Aus dem Gefängnis Frei-Karte. Die localhost-IP-Adresse (127.0.0.1) ist in der Liste standardmäßig zusammen mit seiner IPv6-äquivalent (::1). Wenn es andere IP-Adressen, die Sie kennen sollten niemals gebannt werden, fügen Sie Sie dieser Liste und lassen Sie ein Leerzeichen zwischen den einzelnen ein.
  • bantime: die Dauer, für Die eine IP-Adresse ist verboten (das “m” steht für Minuten). Wenn Sie einen Wert eingeben, ohne ein “m” oder “h” (Stunden) wird er behandelt, als Sekunden. Ein Wert von -1 wird dauerhaft eine IP-Adresse sperren. Seien Sie sehr vorsichtig, nicht, um sich dauerhaft selbst sperren.
  • findtime: Die Menge der Zeit, innerhalb, die zu viele fehlgeschlagene Verbindungsversuche führen zu einer IP-Adresse verboten.
  • maxretry: Der Wert für “zu viele Fehlversuche.”

Wenn eine Verbindung von der gleichen IP-Adresse lässt maxretry fehlgeschlagenen Verbindungsversuche innerhalb der findtime-Zeitraum, Sie sind verboten, für die Dauer der bantime. Die einzigen Ausnahmen sind die IP-Adressen in der ignoreip Liste.

fail2ban legt die IP-Adressen im Gefängnis für einen festgelegten Zeitraum. fail2ban unterstützt viele verschiedene Gefängnisse, und jeder vertritt halt die Einstellungen gelten für eine einzelne Verbindung geben. Dies ermöglicht Ihnen, unterschiedliche Einstellungen für verschiedene Verbindungstypen. Oder man kann fail2ban monitor nur einen ausgewählten Satz von Verbindungs-Typen.

Haben Sie vielleicht erraten es von der [DEFAULT] section-Namen, aber die Einstellungen, die wir betrachtet haben, sind die Standardwerte. Nun, schauen wir uns die Einstellungen für die SSH-jail.

RELATED: Wie zum Bearbeiten von Text-Dateien Grafisch auf Linux Mit gedit

Konfigurieren einer Jail

Jails lassen, die Sie bewegen, Anschluss-Typen in und aus der fail2ban monitoring. Wenn die Standard-Einstellungen nicht mit denen übereinstimmen, die Sie wollen, angewendet auf das Gefängnis, Sie können bestimmte Werte festlegen, die für die bantime, findtime, und maxretry.

Blättern Sie nach unten, um über die Linie 280, und du wirst sehen, die [sshd] – Abschnitt.

Dies ist, wo Sie festlegen können, Werte für die SSH-Verbindung Gefängnis. Dieses Gefängnis in der überwachung und dem Verbot, die wir haben, zu geben Sie die folgende Zeile:

enabled = true

Wir auch geben Sie diese Zeile:

maxretry = 3

Die Einstellung war fünf, aber wir wollen, vorsichtiger zu sein mit SSH-verbindungen. Wir ließen es zu drei, und dann gespeichert und die Datei geschlossen.

Wir Hinzugefügt, das Gefängnis zu fail2ban überwachung, und überschrieb man die Standard-Einstellungen. Ein Gefängnis kann eine Kombination von Standard-und Gefängnis-spezifischen Einstellungen.

Fail2ban aktivieren

Bisher haben wir fail2ban installiert und konfiguriert. Nun, wir haben, damit es für die Ausführung als Dienst automatisch starten. Dann müssen wir testen, um sicherzustellen, dass es funktioniert wie erwartet.

Aktivieren fail2ban als eine Dienstleistung, die wir verwenden, der systemctl Befehl:

sudo systemctl enable fail2ban

Wir verwenden es auch um den Dienst zu starten:

sudo systemctl starten Sie fail2ban

Wir können überprüfen Sie den status des service mit systemctl auch:

sudo systemctl status fail2ban.service

Alles sieht gut aus—wir haben grünes Licht, also alles ist gut.

Mal sehen, ob fail2ban stimmt:

sudo fail2ban-client status

Dies spiegelt das, was wir. Wir haben es ermöglicht, ein einziges Gefängnis, namens [sshd]. Wenn wir den Namen der jail mit unserem vorherigen Befehl können wir einen tieferen Blick auf Sie:

sudo fail2ban-client status sshd

Dieser listet die Anzahl der Ausfälle und gesperrte IP-Adressen. Natürlich, alle Statistiken sind null im moment.

Testen Sie Unser Gefängnis

Auf einem anderen computer, machen wir eine SSH-Verbindung Anfrage an unsere test-Maschine und gezielt falsch eingeben das Kennwort ein. Sie erhalten drei versuche, um das Passwort direkt auf jedem Verbindungsversuch.

Der Wert maxretry auslösen wird nach drei fehlgeschlagenen Verbindung versucht, nicht drei fehlgeschlagenen Kennwort-versuche. So, wir haben dreimal ein Falsches Kennwort eingeben, um fehl-Verbindung versuchen, eine.

Wir werden dann eine neue Verbindung versuchen, und geben Sie das Kennwort falsch weitere drei mal. Das erste Passwort ist falsch Versuch des Dritten connection-request auslösen soll fail2ban.

Nach der ersten falschen Passwort auf der Dritten Anschluss-Anforderung, die wir nicht bekommen, eine Antwort von der remote-Maschine. Wir bekommen keine Erklärung; wir bekommen nur die kalte Schulter.

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

ssh dave@ubuntu20-04.local

Vorher, die Fehlermeldung war “Permission denied.” Diese Zeit, die Verbindung ist geradezu verweigert. Wir sind persona non grata. Wir haben gebannt wurde.

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

sudo fail2ban-client status sshd

Es gab drei Ausfälle, und eine IP-Adresse (192.168.4.25) gebannt wurde.

Wie wir bereits erwähnt, fail2ban erzwingt Verbote, indem Sie Regeln hinzufügen, um das Regelwerk der firewall. Werfen wir noch einen Blick auf die Regelsatz (es war leer vor):

sudo iptables -L

In der Regel wurde Hinzugefügt, um die INPUT-policy, senden SSH-Verkehr auf der f2b-sshd-Kette. Die Regel in der f2b-sshd-Kette lehnt SSH-verbindungen von 192.168.4.25. Wir wussten nicht, ändern Sie die Standardeinstellung für die bantime, so, in 10 Minuten an, die IP-Adresse entbannt und können die neue Verbindung anfordert.

Wenn Sie einen längeren ban Dauer (wie viele Stunden), aber möchten, dass eine IP-Adresse zu einer anderen Verbindung Wunsch früher, kann man Bewährung ist es zu früh.

Wir geben Sie den folgenden, um dies zu tun:

sudo fail2ban-client set sshd unbanip 192.168.5.25

Auf dem remote-computer, wenn wir eine weitere SSH-Verbindung anzufordern, und geben Sie das richtige Kennwort ein, wir werden erlaubt sich zu verbinden:

ssh dave@ubuntu20-04.local

Einfach und Effektiv

Einfacher ist oft besser, und fail2ban ist eine elegante Lösung für ein heikles problem. Es dauert sehr wenig Konfiguration und erlegt kaum Verwaltungsaufwand—für Sie oder Ihren computer.

LESEN SIE WEITER

  • › Können Sie Ihr iPhone Gehackt Werden?
  • › Wie Sie Ihre Facebook Fotos und Videos zu Google-Fotos
  • › So Erstellen Sie eine Benutzerdefinierte Zoom-Hintergrund
  • › Wie die Suche im Text-Nachrichten auf dem iPhone oder iPad
  • › Wie Verwalten Sie Ihre LinkedIn-Privatsphäre-Einstellungen