Fail2Ban для Teamspeak3 Server

Материал из Home wiki
Версия от 23:39, 24 июля 2018; KOleg (обсуждение | вклад) (Новая страница: «'''Fail2Ban für Teamspeak3 Server''' (На немецком языке, переведу позже) Fail2Ban schützt (Linux-)Server vor Angriffen, indem es…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Fail2Ban für Teamspeak3 Server

(На немецком языке, переведу позже)


Fail2Ban schützt (Linux-)Server vor Angriffen, indem es Logfiles auswertet und bei unerwünschten Vorgängen, wie z.B. zu vielen fehlgeschlagenen Logins, die Client-IP per Firewall für eine bestimmt Zeit sperrt. Man kann damit auch einen Teamspeak3 Server absichern, vorallem wenn man Admin-Zugriffe (Server-Query) von außen zulässt. Wer ab hier weiter liest, sollte bereits etwas Erfahrung mit Fail2Ban und eine lauffähige Version davon in Gebrauch haben.

Teamspeak3 vorbereiten Hier ist nicht viel nötig. Man muss nur wissen, in welchem Verzeichnis sich die Logfiles des TS3 Servers befinden. In meinem Beispiel ist das: /usr/local/bin/teamspeak/logs/ Fail2Ban vorbereiten Die Datei /etc/fail2ban/filter.d/teamspeak.conf anlegen und bearbeiten:

[INCLUDES]
before = common.conf
[Definition]
failregex = ^(.*)query from [0-9]{1,} :[0-9]{1,5} attempted to login with account "(.*)" and failed!$
ignoreregex =

Dieser Filter findet später Einträge im Teamspeak3 Logfile, die in etwa so aussehen:

2015-08-20 12:12:45.825529 | INFO | Query | | query from 5 192.168.0.10:56971 attempted to login with account "serveradmin" and failed!

Die Datei /etc/fail2ban/jail.local (ggf. anlegen und) bearbeiten:

[teamspeak]
enabled = true
port = 2008,2010,9987,10011,30033,41144
filter = teamspeak
logpath = /usr/local/bin/teamspeak/logs/ts3server*.log # deswegen zuerst den Logfile-Pfad von Teamspeak suchen
maxretry = 3 # Anzahl der erlaubten Fehlversuche
bantime = 86400 # = 1 Tag
findtime = 7800 # siehe Anmerkungen weiter unten
action = iptables-multiport[name="teamspeak", port="2008,2010,9987,10011,30033,41144"]

Danach fail2ban neu starten und fertig. Der Parameter findtime ist sehr hoch. Das hat den Grund, dass TS3 Einträge im Logfile immer in UTC Zeit schreibt. Das lässt sich auch nicht ändern. Da wir in Deutschland zwischen +1 und +2 Stunden Verschiebung zu UTC haben, müssen wir also 2x 3600 Sekunden (=1 Stunde) + die eigentlich gewünschte FindTime angeben. Also nicht wundern. Wer eine elegantere Lösung weiß, möge mir das bitte sagen.

ToDo / offene Punkte Bisher werden nur Server-Query Logins überwacht. Da ich keinen TS3 mit Passwort betreibe, kann ich keine Fail2Ban-Regeln für normale User-Logins mit falschem Passwort erstellen. Es wäre schön, wenn mir jemand mal entsprechende Logfiles als Beispiel zusenden könnte.