1. TeamSpeak-Logpfad finden:
find / -name "ts3server_*.log" 2>/dev/null
2. Filter-Datei erstellen:
sudo nano /etc/fail2ban/filter.d/teamspeak.conf
Einfügen:
[Definition] failregex = query from <HOST>.*unable to invoke login client.*<HOST>.*flooding ignoreregex =
3. In jail.local hinzufügen:
sudo nano /etc/fail2ban/jail.local
Nach dem SSH-Bereich einfügen:
[teamspeak] enabled = true port = 9987,10011,30033 filter = teamspeak logpath = /PFAD/ZU/IHREM/ts3server_*.log maxretry = 3 bantime = 1h action = %(action_)s %(action_abuseipdb)s[abuseipdb_apikey="IHR-API-KEY", abuseipdb_category="14,15"]
4. Fail2ban neu starten:
sudo systemctl restart fail2ban
5. Testen:
sudo fail2ban-client status teamspeak
Wer einen Server im Internet betreibt, kennt das Problem: Ständig versuchen unbekannte Angreifer, sich per SSH anzumelden. Zu jeder Tages- und Nachtzeit wird alles probiert. Dagegen hilft in der Linux-Welt das Tool Fail2ban.
Aber wäre es nicht großartig, wenn wir diese Angreifer automatisch an eine Datenbank melden könnten, damit sich auch andere davor schützen können? AbuseIPDB macht genau das möglich - komplett kostenlos!
# Alte Config löschen (falls vorhanden) sudo rm /etc/fail2ban/action.d/abuseipdb.conf # Aktuelle Version herunterladen sudo wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/abuseipdb.conf -qO /etc/fail2ban/action.d/abuseipdb.conf # API-Key am Ende der Datei eintragen sudo nano /etc/fail2ban/action.d/abuseipdb.conf
Ganz unten in der Datei einfügen:
abuseipdb_apikey = IHR-API-KEY-HIER
⚠️ Wichtig: Verwenden Sie jail.local
statt jail.conf
!
# jail.local erstellen (falls nicht vorhanden) sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # jail.local bearbeiten sudo nano /etc/fail2ban/jail.local
Suchen Sie den [sshd]
Abschnitt und passen Sie ihn wie folgt an:
🔴 Häufiger Fehler: Wenn enabled = true
fehlt, wird die Konfiguration aus jail.local ignoriert!
sudo systemctl restart fail2ban
Prüfen Sie, ob beide Actions geladen wurden:
sudo fail2ban-client get sshd actions
Die Ausgabe sollte zeigen:
The jail sshd has the following actions: iptables-multiport, abuseipdb
Falls nur iptables-multiport
angezeigt wird:
enabled = true
im [sshd] Abschnitt steht# Status des SSH-Jails anzeigen sudo fail2ban-client status sshd # Test-Ban durchführen sudo fail2ban-client set sshd banip 192.0.2.1 # Logs auf AbuseIPDB-Meldungen prüfen sudo grep -i "abuseipdb" /var/log/fail2ban.log | tail -10
Nach 1-2 Minuten sollten Sie Ihre gemeldeten IPs hier sehen:
Falls keine Meldungen erscheinen:
sudo fail2ban-client status
sudo tail -f /var/log/fail2ban.log
sudo fail2ban-client -d | grep abuseipdb
sudo fail2ban-client reload
💡 Tipp: Mit einem Werbebanner auf Ihrer Website erhalten Sie 3000 statt 1000 Meldungen pro Tag!
1. Account bei AbuseIPDB erstellen
2. API-Key generieren
3. Aktuelle Config herunterladen:
wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/abuseipdb.conf -qO /etc/fail2ban/action.d/abuseipdb.conf
4. API-Key eintragen und in jail.local die action hinzufügen
# Allgemeiner Status sudo fail2ban-client status # Status eines spezifischen Jails sudo fail2ban-client status sshd # Live-Log überwachen sudo tail -f /var/log/fail2ban.log
Schützen Sie Ihren Webserver vor:
[apache-404] enabled = true port = http,https filter = apache-404 logpath = /var/log/apache2/access.log maxretry = 20 bantime = 1h
[postfix-sasl] enabled = true port = smtp,ssmtp filter = postfix[mode=auth] logpath = /var/log/mail.log maxretry = 3
In /etc/fail2ban/jail.local
unter [DEFAULT]:
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 IHRE-IP
Mehrere IPs mit Leerzeichen trennen!
Empfohlene Werte:
# Für SSH (strenger) maxretry = 3 findtime = 10m bantime = 24h # Für Webdienste (moderater) maxretry = 10 findtime = 10m bantime = 1h
# Top 10 gebannte IPs sudo zgrep -h "Ban " /var/log/fail2ban.log* | awk '{print $NF}' | sort | uniq -c | sort -nr | head -10 # Bans der letzten 24 Stunden sudo grep "Ban" /var/log/fail2ban.log | grep "$(date '+%Y-%m-%d')"
backend = systemd
ist schneller als backend = auto
dbpurgeage = 7d
in jail.local# Datenbank-Größe prüfen ls -lh /var/lib/fail2ban/fail2ban.sqlite3