Fail2ban ist, wie der Name schon sagt, ein Dienstprogramm, das Linux-Computer vor Brute-Force-Angriffen auf ausgewählte offene Ports, insbesondere den SSH-Port, schützt. Aus Gründen der Systemfunktionalität und -verwaltung können diese Ports nicht über eine Firewall geschlossen werden. Unter diesen Umständen ist es eine gute Idee, Fail2ban als zusätzliche Sicherheitsmaßnahme für eine Firewall zu verwenden, um den Brute-Force-Angriffsverkehr auf diesen Ports einzuschränken.
In diesem Artikel werde ich Ihnen zeigen, wie Sie Fail2ban installieren und konfigurieren, um den SSH-Port, das häufigste Angriffsziel, auf einer Vultr Debian 9-Serverinstanz zu schützen.
Voraussetzungen
- Eine neue Debian 9 (Stretch) x64-Serverinstanz.
- Eingeloggt als
root.
- Alle nicht verwendeten Ports wurden mit den richtigen IPTables-Regeln blockiert.
Schritt 1: Aktualisieren Sie das System
apt update && apt upgrade -y
shutdown -r now
Melden Sie sich nach dem Systemstart wieder als an root.
Schritt 2: Ändern Sie den SSH-Port (optional)
Da die Standard-SSH-Portnummer 22zu beliebt ist, um sie zu ignorieren, 38752wäre es eine kluge Entscheidung , sie in eine weniger bekannte Portnummer zu ändern .
sed -i "s/#Port 22/Port 38752/g" /etc/ssh/sshd_config
systemctl restart sshd.service
Nach der Änderung müssen Sie die IPTables-Regeln entsprechend aktualisieren:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 38752 -j ACCEPT
Speichern Sie die aktualisierten IPTables-Regeln aus Persistenzgründen in einer Datei:
iptables-save > /etc/iptables.up.rules
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
echo '#!/bin/sh' >> /etc/network/if-pre-up.d/iptables
echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-pre-up.d/iptables
Auf diese Weise bleiben die IPTables-Regeln auch nach einem Neustart des Systems bestehen. Von nun an müssen Sie sich über den 38752Port anmelden .
Verwenden Sie aptdiese Option, um die derzeit stabile Version von Fail2ban zu installieren 0.9.x:
apt install fail2ban -y
Nach der Installation wird der Fail2ban-Dienst automatisch gestartet. Mit dem folgenden Befehl können Sie den Status anzeigen:
service fail2ban status
Unter Debian werden die Standardeinstellungen für den Fail2ban-Filter sowohl in der /etc/fail2ban/jail.confDatei als auch in der Datei /etc/fail2ban/jail.d/defaults-debian.confgespeichert. Denken Sie daran, dass die Einstellungen in der letzteren Datei die entsprechenden Einstellungen in der ersteren überschreiben.
Verwenden Sie die folgenden Befehle, um weitere Details anzuzeigen:
cat /etc/fail2ban/jail.conf | less
cat /etc/fail2ban/jail.d/defaults-debian.conf
fail2ban-client status
fail2ban-client status sshd
Zu Ihrer Information sind unten Code-Auszüge über SSH aufgeführt:
In /etc/fail2ban/jail.conf:
[DEFAULT]
bantime = 600
...
maxentry = 5
[sshd]
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
In /etc/fail2ban/jail.d/defaults-debian.conf:
[sshd]
enabled = true
Da sich der Inhalt der beiden obigen Konfigurationsdateien bei zukünftigen Systemaktualisierungen möglicherweise ändert, sollten Sie eine lokale Konfigurationsdatei erstellen, um Ihre eigenen Fail2Ban-Filterregeln zu speichern. Auch hier überschreiben die Einstellungen in dieser Datei die entsprechenden Einstellungen in den beiden oben genannten Dateien.
vi /etc/fail2ban/jail.d/jail-debian.local
Geben Sie die folgenden Zeilen ein:
[sshd]
port = 38752
maxentry = 3
Hinweis: Verwenden Sie unbedingt Ihren eigenen SSH-Port. Mit Ausnahme portund maxentryoben erwähnt verwenden alle anderen Einstellungen die Standardwerte.
Speichern und Beenden:
:wq
Starten Sie den Fail2ban-Dienst neu, um die neue Konfiguration zu laden:
service fail2ban restart
Unser Setup ist abgeschlossen. Wenn von nun an ein Computer 38752mehr als dreimal falsche SSH-Anmeldeinformationen an den benutzerdefinierten SSH-Port ( ) des Debian-Servers sendet , wird die IP-Adresse dieses potenziell böswilligen Computers für 600 Sekunden gesperrt.