GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Fail2Ban unter CentOS 7

Die meisten Linux-Server bieten für die Fernverwaltung einen SSH-Login über Port 22 an. Dieser Port ist ein bekannter Port und wird daher häufig von Brute-Force-Angriffen angegriffen. Fail2ban ist eine Software, die Protokolldateien in Echtzeit auf Brute-Force-Anmeldeversuche scannt und die Angreifer mit Firewalld oder Iptables bannt. Fail2ban erkennt unerwünschte Zugriffe oder Sicherheitsverletzungen auf den Server innerhalb des vom Administrator festgelegten Zeitrahmens und blockiert die IP-Adressen, die Anzeichen von Brute-Force-Angriffen oder Wörterbuchangriffen aufweisen. Dieses Programm arbeitet im Hintergrund und durchsucht die Protokolldateien kontinuierlich nach ungewöhnlichen Anmeldemustern und Sicherheitsverletzungsversuchen.

Dieses Tutorial zeigt die Installation und Konfiguration von Fail2Ban mit firewalld unter CentOS 7.

Installation von Fail2Ban

Um Fail2Ban auf CentOS 7 zu installieren, müssen wir zuerst das EPEL-Repository (Extra Packages for Enterprise Linux) installieren. EPEL enthält zusätzliche Pakete für alle CentOS-Versionen, eines dieser zusätzlichen Pakete ist Fail2Ban.

Die folgenden Befehle müssen nach dem Wechsel zum Root-Benutzer ausgeführt werden.

yum install epel-release
yum install fail2ban fail2ban-systemd

Wenn Sie SELinux installiert haben, aktualisieren Sie die SELinux-Richtlinien:

yum update -y selinux-policy*

Einstellungen für Fail2Ban konfigurieren

Nach der Installation müssen wir die Software mit einer jail.local-Konfigurationsdatei konfigurieren und anpassen. Die Datei jail.local überschreibt die Datei jail.conf und wird verwendet, um Ihr benutzerdefiniertes Konfigurationsupdate sicher zu machen.

Erstellen Sie eine Kopie der Datei jail.conf und speichern Sie sie unter dem Namen jail.local:

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Öffnen Sie die jail.local-Datei zur Bearbeitung in Nano mit dem folgenden Befehl.

nano /etc/fail2ban/jail.local

Der Dateicode kann aus vielen Codezeilen bestehen, die ausgeführt werden, um eine Sperrung einer oder mehrerer IP-Adressen zu verhindern, Sperrzeiten festzulegen usw. Eine typische Jail-Konfigurationsdatei enthält die folgenden Zeilen.

[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

Empfang ignorieren wird verwendet, um die Liste der IPs festzulegen, die nicht gesperrt werden. Die Liste der IP-Adressen sollte mit einem Leerzeichen als Trennzeichen angegeben werden. Dieser Parameter wird verwendet, um Ihre persönliche IP-Adresse festzulegen (wenn Sie von einer festen IP auf den Server zugreifen).

Bantime Der Parameter wird verwendet, um die Dauer in Sekunden festzulegen, für die ein Host gesperrt werden muss.

Zeit finden ist der Parameter, mit dem überprüft wird, ob ein Host gesperrt werden muss oder nicht. Wenn der Host in seiner letzten Findtime maxrety generiert, wird er gebannt.

Maxretry ist der Parameter, der verwendet wird, um das Limit für die Anzahl der Wiederholungen durch einen Host festzulegen. Wenn dieses Limit überschritten wird, wird der Host gesperrt.

Fügen Sie eine Jail-Datei hinzu, um SSH zu schützen.

Erstellen Sie eine neue Datei mit dem Nano-Editor

nano /etc/fail2ban/jail.d/sshd.local

Fügen Sie der obigen Datei die folgenden Codezeilen hinzu.

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

Parameter aktiviert auf true gesetzt wird, um Schutz zu bieten, um den Schutz zu deaktivieren, wird es auf false gesetzt. Der Parameter filter prüft die sshd-Konfigurationsdatei, die sich im Pfad /etc/fail2ban/filter.d/sshd.conf.

befindet

Der Parameter Aktion wird verwendet, um die IP-Adresse abzuleiten, die mit dem unter /etc/fail2ban/action.d/firewallcmd-ipset.conf verfügbaren Filter gesperrt werden muss.

Hafen Parameter kann auf einen neuen Wert wie port=1212 geändert werden, wie dies der Fall ist. Bei Verwendung von Port 22 muss dieser Parameter nicht geändert werden.

Protokollpfad stellt den Pfad bereit, in dem die Protokolldatei gespeichert ist. Diese Protokolldatei wird von Fail2Ban gescannt.

Maxretry wird verwendet, um die maximale Grenze für fehlgeschlagene Anmeldeeingaben festzulegen.

Bantime Der Parameter wird verwendet, um die Dauer in Sekunden festzulegen, für die ein Host gesperrt werden muss.

Fail2Ban-Dienst wird ausgeführt

Wenn Sie die CentOS-Firewall noch nicht ausführen, starten Sie sie:

systemctl enable firewalld
systemctl start firewalld

Führen Sie die folgenden Befehlszeilen aus, um die schützende Fail2Ban-Software auf dem Server auszuführen.

systemctl enable fail2ban
systemctl start fail2ban 

Nachverfolgung fehlgeschlagener Anmeldeeinträge

Der folgende Befehl wird verwendet, um zu überprüfen, ob es fehlgeschlagene Versuche gegeben hat, sich über den ssh-Port am Server anzumelden.

cat /var/log/secure | grep 'Failed password'

Wenn Sie den obigen Befehl ausführen, erhalten Sie eine Liste der fehlgeschlagenen Root-Passwortversuche von verschiedenen IP-Adressen. Das Format der Ergebnisse ähnelt dem unten gezeigten:

Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2
Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2
Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2

Prüfung der gesperrten IPs durch Fail2Ban

Der folgende Befehl wird verwendet, um eine Liste gesperrter IP-Adressen zu erhalten, die als Brute-Force-Bedrohungen erkannt wurden.

iptables -L -n

Überprüfen Sie den Fal2Ban-Status

Verwenden Sie den folgenden Befehl, um den Status der Fail2Ban-Jails zu überprüfen:

fail2ban-client status

Das Ergebnis sollte ungefähr so ​​aussehen:

[[email protected] ]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

Eine IP-Adresse entsperren

Um eine IP-Adresse aus der Sperrliste zu entfernen, wird der Parameter IPADDRESS auf die entsprechende IP gesetzt, die entsperrt werden muss. Der Name „sshd“ ist der Name des Gefängnisses, in diesem Fall das „sshd“-Gefängnis, das wir oben konfiguriert haben. Der folgende Befehl erledigt die Aufgabe.

fail2ban-client set sshd unbanip IPADDRESS

Cent OS
  1. So installieren Sie PHP 7, 7.2 und 7.3 auf CentOS 7

  2. So installieren Sie Java 11 und 12 unter CentOS 7

  3. So installieren Sie Wine 4.0 unter CentOS 7

  4. Installieren Sie Fail2ban auf CentOS

  5. So installieren Sie Logaholic auf CentOS

So installieren Sie R unter CentOS 8

So installieren und verwenden Sie Fail2ban unter RHEL 8 / CentOS 8

So installieren und konfigurieren Sie Fail2ban unter CentOS 8

So installieren Sie Fail2Ban auf CentOS

So installieren Sie Fail2Ban unter CentOS 7

So installieren Sie Fail2Ban unter CentOS 8