🔒 Server-Sicherheit: 10 Tipps für Teamspeak Server

📌 Tipp 1: TeamSpeak mit Fail2ban in 5 Minuten einrichten

TeamSpeak mit Fail2ban absichern

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
📌 Tipp 2: SSH mit Fail2ban absichern und böse IPs an AbuseIPDB melden

SSH-Brute-Force-Angriffe blockieren und melden

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!

Was brauchen wir?

Schritt 1: AbuseIPDB vorbereiten

  1. Kostenlosen Account bei AbuseIPDB.com erstellen
  2. Unter "API" einen neuen API-Key generieren
  3. Key sicher aufbewahren (wird später benötigt)

Schritt 2: Aktuelle AbuseIPDB-Config installieren

# 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

Schritt 3: SSH-Jail konfigurieren

⚠️ 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:

[sshd] enabled = true # WICHTIG: Diese Zeile darf nicht fehlen! port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s maxretry = 5 findtime = 10m bantime = 10m # Meldung an AbuseIPDB action = %(action_)s %(action_abuseipdb)s[abuseipdb_apikey="IHR-API-KEY", abuseipdb_category="18,22"]

🔴 Häufiger Fehler: Wenn enabled = true fehlt, wird die Konfiguration aus jail.local ignoriert!

Schritt 4: Fail2ban neu starten

sudo systemctl restart fail2ban

Schritt 5: Konfiguration testen

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:

Schritt 6: Funktionstest

# 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

Schritt 7: Erfolg überprüfen

Nach 1-2 Minuten sollten Sie Ihre gemeldeten IPs hier sehen:

Fehlerbehebung

Falls keine Meldungen erscheinen:

  1. Fail2ban-Status prüfen: sudo fail2ban-client status
  2. Logs auf Fehler prüfen: sudo tail -f /var/log/fail2ban.log
  3. Debug-Modus: sudo fail2ban-client -d | grep abuseipdb
  4. Actions neu laden: sudo fail2ban-client reload

Kategorien für SSH-Angriffe

💡 Tipp: Mit einem Werbebanner auf Ihrer Website erhalten Sie 3000 statt 1000 Meldungen pro Tag!

📌 Tipp 3: AbuseIPDB Integration einrichten

Böse IPs automatisch melden

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

📌 Tipp 4: Fail2ban Status überwachen

Wichtige Überwachungsbefehle

# 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
📌 Tipp 5: Apache/Nginx mit Fail2ban schützen

Webserver absichern

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
📌 Tipp 6: E-Mail-Server (Postfix) absichern

Postfix vor Spam-Attacken schützen

[postfix-sasl]
enabled = true
port = smtp,ssmtp
filter = postfix[mode=auth]
logpath = /var/log/mail.log
maxretry = 3
📌 Tipp 7: Whitelist für vertrauenswürdige IPs

Eigene IPs vor Bans schützen

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!

📌 Tipp 8: Ban-Zeit und Retry-Limits anpassen

Optimale Sicherheitseinstellungen

Empfohlene Werte:

# Für SSH (strenger)
maxretry = 3
findtime = 10m
bantime = 24h

# Für Webdienste (moderater)
maxretry = 10
findtime = 10m
bantime = 1h
📌 Tipp 9: Fail2ban Logs richtig auswerten

Nützliche Log-Analyse-Befehle

# 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')"
📌 Tipp 10: Fail2ban Performance optimieren

Performance-Tipps

# Datenbank-Größe prüfen
ls -lh /var/lib/fail2ban/fail2ban.sqlite3