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

So schützen Sie Apache und SSH mit Fail2Ban unter CentOS 8

Wenn Sie Systemadministrator sind, ist der Schutz Ihres Servers vor verschiedenen Arten von Angriffen ein wesentlicher Bestandteil Ihrer Arbeit. Die Fail2Ban-Firewall kann Ihnen dabei helfen. Fail2Ban ist ein Intrusion-Prevention-System, das in der Python-Sprache geschrieben ist und zum Blockieren bösartiger IPs verwendet wird, die versuchen, Ihre Systemsicherheit zu verletzen. Es scannt verschiedene Protokolldateien und blockiert die IPs, die versuchen, häufige Anmeldeversuche für eine bestimmte Bantime zu unternehmen. Es ermöglicht Ihnen auch, die Stärke und Häufigkeit von Angriffen zu überwachen. Aufgrund seiner Einfachheit gilt es als bevorzugte Software zum Schutz Ihres Servers vor DOS-, DDOS- und Brute-Force-Angriffen.

In diesem Tutorial zeigen wir Ihnen, wie Sie einen SSH- und Apache-Server mit Fail2Ban unter CentOS 8 sichern.

Voraussetzungen

  • Ein frischer CentOS 8 VPS auf der Atlantic.net Cloud Platform.
  • Ein auf Ihrem Server konfiguriertes Root-Passwort.

Schritt 1 – Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

dnf update -y

Schritt 2 – Fail2Ban installieren

Sie können es mit dem folgenden Befehl installieren:

dnf install epel-release -y

Nach der Installation des EPEL-Repositorys können Sie Fail2Ban mit dem folgenden Befehl installieren:

dnf install fail2ban -y

Starten Sie nach der Installation den Fail2Ban-Dienst und aktivieren Sie ihn nach dem Systemneustart:

systemctl start fail2ban
systemctl enable fail2ban

Schritt 3 – SSH mit Fail2Ban sichern

In diesem Abschnitt lernen wir, wie man den SSH-Server mit Fail2Ban sichert.

Fail2Ban für SSH konfigurieren

Mit dem folgenden Befehl können Sie eine jail.local-Datei für SSH erstellen:

nano /etc/fail2ban/jail.local

Fügen Sie die folgenden Zeilen hinzu:

[DEFAULT]
ignoreip = your-server-ip
bantime = 300
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd]
enabled = true

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Fail2Ban-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart fail2ban

Sie können jetzt den Status des SSH-Jails mit dem folgenden Befehl überprüfen:

fail2ban-client status

Sie sollten sehen, dass ein SSH-Jail aktiviert ist:

Status
|- Number of jail:        1
`- Jail list:        sshd

Eine kurze Erläuterung der einzelnen Parameter finden Sie unten:

  • Ignorieren :Wird verwendet, um die IP-Adressen zu definieren, die ignoriert werden sollen.
  • bantime :Wird verwendet, um eine Anzahl von Sekunden festzulegen, für die die IP-Adresse gesperrt wird.
  • Zeit finden :Wird verwendet, um die Zeitspanne zwischen Anmeldeversuchen zu definieren, bevor die IP gesperrt wird.
  • maxretry :Wird verwendet, um die Anzahl der Versuche festzulegen, bevor die IP-Adresse gesperrt wird.
  • Verbot :Sperraktion.
  • aktiviert :Diese Option aktiviert den Schutz für den SSH-Dienst.

SSH gegen Passwortangriffe testen

An diesem Punkt ist Fail2Ban installiert und konfiguriert. Es ist Zeit zu testen, ob es funktioniert oder nicht.

Gehen Sie dazu zum Remote-Rechner und versuchen Sie, eine SSH-Verbindung zur Server-IP-Adresse herzustellen:

ssh [email protected]

Sie werden aufgefordert, das Root-Passwort einzugeben. Geben Sie immer wieder das falsche Passwort ein. Sobald Sie das Limit für Anmeldeversuche erreicht haben, wird Ihre IP-Adresse gesperrt.

Sie können Ihre blockierte IP-Adresse mit dem folgenden Befehl überprüfen:

fail2ban-client status sshd

Sie sollten Ihre blockierte IP in der folgenden Ausgabe sehen:

Status for the jail: sshd
|- Filter
|  |- Currently failed:   7
|  |- Total failed:          39
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:        2
   `- Banned IP list:     190.8.80.42

Sie können auch das SSH-Protokoll auf fehlgeschlagene Anmeldungen überprüfen:

tail -5 /var/log/secure | grep 'Failed password'

Sie sollten die folgende Ausgabe sehen:

Mar  1 03:55:03 centos8 sshd[11196]: Failed password for invalid user bpadmin from 190.8.80.42 port 55738 ssh2

Sie können eine bestimmte IP-Adresse auch manuell sperren und entsperren.

Um beispielsweise die IP 190.8.80.42 zu entsperren, führen Sie den folgenden Befehl aus:

fail2ban-client set sshd unbanip 190.8.80.42

Führen Sie den folgenden Befehl aus, um die IP 190.8.80.42 zu blockieren:

fail2ban-client set sshd banip 190.8.80.42

Schritt 4 – Apache mit Fail2Ban sichern

Sie können den Apache-Webserver auch vor verschiedenen Arten von Angriffen schützen. Sie müssen die jail.local-Datei für Apache wie unten gezeigt konfigurieren:

nano /etc/fail2ban/jail.local

Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:

[apache-auth]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

[apache-badbots]
enabled = true
port    = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1

[apache-noscript]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Fail2Ban-Dienst neu, um die Änderungen zu implementieren:

systemctl restart fail2ban

Sie können jetzt den Status aller Jails mit dem folgenden Befehl überprüfen:

fail2ban-client status

Sie sollten die folgende Ausgabe sehen:

Status
|- Number of jail:        5
`- Jail list:        apache-auth, apache-badbots, apache-noscript, sshd

Eine kurze Erklärung der einzelnen Gefängnisse finden Sie unten:

  • Apache-Auth :Dieses Jail wird verwendet, um Apache vor fehlgeschlagenen Anmeldeversuchen zu schützen.
  • Apache-Badbots :Dieses Gefängnis wird verwendet, um Hosts zu sperren, deren Agent Spammer-Roboter identifiziert, die das Web nach E-Mail-Adressen durchsuchen.
  • apache-noscript :Wird verwendet, um die IP zu blockieren, die versucht, nach auszuführenden Skripts auf der Website zu suchen.

Schlussfolgerung

Im obigen Tutorial haben wir gelernt, wie man SSH- und Apache-Server mit Fail2Ban schützt. Es ist ein sehr nützliches Intrusion-Prevention-System, das Ihrem Linux-System zusätzliche Sicherheit verleiht. Sie können Fail2Ban jetzt so konfigurieren, dass es Ihren spezifischen Sicherheitsanforderungen entspricht. Beginnen Sie noch heute mit Fail2Ban mit VPS-Hosting von Atlantic.Net!


Linux
  1. So verwenden Sie Fail2ban zum Sichern von SSH unter CentOS 7

  2. So installieren Sie Apache Hive mit Hadoop auf CentOS, Ubuntu und LinuxMint

  3. Wie installiere und konfiguriere ich Fail2ban unter CentOS 8?

  4. So installieren Sie Apache 2.4.2 von der Quelle auf CentOS 6.2 mit SSL

  5. Wie untersucht man ein Speicherleck mit Apache und PHP?

So installieren Sie Apache mit virtuellem Host unter CentOS 8

So installieren und konfigurieren Sie GlusterFS unter CentOS 7/CentOS 8

So installieren Sie Drupal auf CentOS 7 mit Apache

So installieren Sie WordPress auf CentOS 7.1 mit Apache

So installieren und konfigurieren Sie Memcached mit Apache und PHP

So sichern Sie SSH mit Fail2Ban