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

Linux-Sicherheit:Schützen Sie Ihre Systeme mit fail2ban

Sicherheit ist für Systemadministratoren ein ständiger Kampf, da Sie Ihre Systeme ausreichend sichern müssen, um sie vor unerwünschten Angriffen zu schützen, aber nicht so sehr, dass die Benutzerproduktivität behindert wird. Es ist schwierig, das Gleichgewicht zu halten. Es gibt immer Beschwerden über "zu viel" Sicherheit, aber wenn ein System kompromittiert wird, reichen die Beschwerden von "Es gab nicht genug Sicherheit" bis zu "Warum haben Sie keine besseren Sicherheitskontrollen verwendet?" Der Kampf ist echt. Es gibt Kontrollen, die Sie einrichten können, die sowohl wirksam gegen Eindringlinge sind als auch heimlich genug, um Benutzern zu ermöglichen, auf allgemein uneingeschränkte Weise zu arbeiten. Fail2ban ist die Antwort, um Dienste vor Brute-Force- und anderen automatisierten Angriffen zu schützen.

Hinweis:Fail2ban kann nur zum Schutz von Diensten verwendet werden, die eine Benutzername/Kennwort-Authentifizierung erfordern. Beispielsweise können Sie Ping nicht mit fail2ban schützen.

In diesem Artikel zeige ich, wie man den SSH-Daemon (SSHD) vor einem Brute-Force-Angriff schützt. Sie können Filter einrichten, wie fail2ban ruft sie auf, um fast jeden Abhördienst auf Ihrem System zu schützen.

Installation und Ersteinrichtung

Glücklicherweise gibt es ein fertiges Paket für fail2ban das beinhaltet alle Abhängigkeiten, falls vorhanden, für Ihr System.

$ sudo dnf -y install fail2ban

Aktivieren und starten Sie fail2ban .

$ sudo systemctl enable fail2ban

$ sudo systemctl start fail2ban

Es sei denn, Sie haben ein Syntaxproblem in Ihrem fail2ban Konfiguration, werden Sie keine Standard-Ausgabemeldungen sehen.

Nun, um ein paar grundlegende Dinge in fail2ban zu konfigurieren um das System zu schützen, ohne dass es sich selbst stört. Kopieren Sie die /etc/fail2ban/jail.conf Datei nach /etc/fail2ban/jail.local . Die jail.local file ist die für uns interessante Konfigurationsdatei.

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

Öffnen Sie /etc/fail2van/jail.local in Ihrem bevorzugten Editor und nehmen Sie die folgenden Änderungen vor oder überprüfen Sie, ob diese wenigen Parameter gesetzt sind. Suchen Sie nach der Einstellung ignoreip und fügen Sie alle IP-Adressen zu dieser Zeile hinzu, die Zugriff haben müssen, ohne dass die Möglichkeit einer Sperrung besteht. Standardmäßig sollten Sie die Loopback-Adresse und alle lokalen IP-Adressen des geschützten Systems hinzufügen.

ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20

Sie können auch ganze Netzwerke von IP-Adressen hinzufügen, aber das nimmt Ihnen viel von dem Schutz, den Sie mit fail2ban wünschen zum. Halten Sie es vorerst einfach und lokal. Speichern Sie jail.local Datei und starten Sie fail2ban neu Dienst.

$ sudo systemctl restart fail2ban

Sie müssen fail2ban neu starten jedes Mal, wenn Sie eine Konfigurationsänderung vornehmen.

Gefilterten Dienst einrichten

Eine Neuinstallation von fail2ban bringt dir nicht wirklich viel. Sie müssen für jeden Dienst, den Sie schützen möchten, sogenannte Filter einrichten. Nahezu jedes Linux-System muss per SSH erreichbar sein. Es gibt einige Umstände, unter denen Sie SSHD mit Sicherheit stoppen und deaktivieren würden, um Ihr System besser zu sichern, aber ich gehe davon aus, dass jedes Linux-System SSH-Verbindungen zulässt.

Passwörter sind bekanntlich keine gute Sicherheitslösung. Es ist jedoch oft der Standard, nach dem wir leben. Wenn also der Benutzer- oder Administratorzugriff auf SSH beschränkt ist, sollten Sie Maßnahmen ergreifen, um ihn zu schützen. Verwenden von fail2ban SSHD auf fehlgeschlagene Zugriffsversuche mit anschließendem Bann zu "beobachten" ist ein guter Anfang.

Hinweis:Bevor Sie eine Sicherheitskontrolle implementieren, die den Zugriff eines Benutzers auf ein System behindern könnte, informieren Sie die Benutzer darüber, dass diese neue Kontrolle sie für zehn Minuten (oder wie lange Sie entscheiden) von einem System ausschließen kann, wenn ihre fehlgeschlagenen Anmeldeversuche Ihre Schwellenwerteinstellung überschreiten .

Um gefilterte Dienste einzurichten, müssen Sie eine entsprechende "Jail"-Datei unter /etc/fail2ban/jail.d erstellen Verzeichnis. Erstellen Sie für SSHD eine neue Datei namens sshd.local und geben Sie Anweisungen zur Dienstfilterung ein.

[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600

Erstellen Sie die [sshd] Überschrift und geben Sie die Einstellung, die Sie oben sehen, als Startpunkt ein. Die meisten Einstellungen sind selbsterklärend. Für die beiden, die nicht intuitiv offensichtlich sind, beschreibt die Einstellung "Aktion" die gewünschte Aktion fail2ban im Falle eines Verstoßes zu übernehmen. Für uns fail2ban verwendet iptables die IP-Adresse des angreifenden Systems für eine „Bantime“ von 600 Sekunden (10 Minuten) zu sperren.

Sie können natürlich jede dieser Einstellungen ändern, um sie Ihren Bedürfnissen anzupassen. Zehn Minuten scheinen lang genug zu sein, um einen Bot oder ein Skript dazu zu bringen, zu weniger sicheren Hosts „weiterzuwandern“. Zehn Minuten reichen jedoch nicht aus, um Benutzer vor den Kopf zu stoßen, die ihr Passwort mehr als dreimal falsch eingeben.

Wenn Sie mit den Einstellungen zufrieden sind, starten Sie fail2ban neu Dienst.

So sieht ein Bann aus

Auf dem geschützten System (192.168.1.83), tail die /var/log/fail2ban.log um aktuelle Sperraktionen anzuzeigen.

2020-05-15 09:12:06,722 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions        [25417]: NOTICE  [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions        [25417]: NOTICE  [sshd] Unban 192.168.1.69

Sie können sehen, dass die IP-Adresse 192.168.1.69 um 09:12 Uhr gesperrt und zehn Minuten später um 09:22 Uhr wieder freigegeben wurde.

Auf dem entfernten System 192.168.1.69 sieht eine Sperraktion wie folgt aus:

$ ssh 192.168.1.83

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

$ ssh 192.168.1.83

ssh: connect to host 192.168.1.83 port 22: Connection refused

Sie können sehen, dass ich mein Passwort dreimal falsch eingegeben habe, bevor ich gesperrt wurde. Der gesperrte Benutzer weiß nicht, warum er das Zielsystem nicht mehr erreichen kann, es sei denn, er wird ausdrücklich darauf hingewiesen. Der fail2ban Filter führt eine Silent-Ban-Aktion durch. Es gibt dem entfernten Benutzer keine Erklärung, noch wird der Benutzer benachrichtigt, wenn die Sperre aufgehoben wird.

Ein System entsperren

Es kommt zwangsläufig vor, dass ein System gebannt wird, das schnell wieder entbannt werden muss. Mit anderen Worten, Sie können oder wollen nicht warten, bis die Sperrfrist abgelaufen ist. Der folgende Befehl entbannt ein System sofort.

$ sudo fail2ban-client set sshd unbanip 192.168.1.69

Sie müssen den fail2ban-Daemon nicht neu starten, nachdem Sie diesen Befehl ausgegeben haben.

Abschluss

So funktioniert fail2ban funktioniert. Sie richten einen Filter ein, und wenn die Bedingungen erfüllt sind, wird das Remote-System gesperrt. Sie können für längere Zeit sperren und mehrere Filter einrichten, um Ihr System zu schützen. Denken Sie daran, dass fail2ban ist eine Einzellösung und schützt Ihr System nicht vor anderen Schwachstellen. Ein mehrschichtiger, facettenreicher Sicherheitsansatz ist die Strategie, die Sie verfolgen möchten. Keine einzelne Lösung bietet genügend Sicherheit.

Sie können Beispiele für andere Filter und einige erweiterte fail2ban finden Implementierungen beschrieben unter fail2ban.org.

[ Möchten Sie mehr über Sicherheit erfahren? Schauen Sie sich die Checkliste für IT-Sicherheit und Compliance an. ]


Linux
  1. Stellen Sie Ihr System mit dem Einzelbenutzermodus in Linux Mint / Linux Mint 12 wieder her

  2. Geben Sie der Firewall Ihres Linux-Systems einen Sicherheitsschub

  3. Überleben eines Sicherheitsaudits mit Enterprise Linux

  4. Balance zwischen Linux-Sicherheit und Benutzerfreundlichkeit

  5. 13 Linux-Sicherheits-Tutorials

Screenshot Ihrer Linux-Systemkonfiguration mit Bash-Tools

So retten Sie Ihr Windows- oder Linux-System mit Rescatux

So prüfen Sie ein Remote-Linux-System mit dem Lynis Security Tool

Linux-Sicherheitsaudit mit Lynis

Sicherheitsaudit mit Lynis

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