1 / 7
Jul 2020

Hallo liebe Community :black_heart:

Ich würde Egroupware gerne mit Fail2Ban absichern. Dazu benötige ich natürlich eine Logfile, aus der fehlgeschlagene LogIn Versuche (und derren IPs) hervorgehen. Diese konnte ich nicht ausmachen.

Lässt sich das irgendwo ablesen oder festlegen, in wie weit Egroupware derartige Daten loggt ?

Z.Zt. ist Egroupware 17.1 betroffen, installiert mit apt-get auf Ubuntu 18.04. Dies soll aber bald durch das 19.1 ersetzt werden (Paket: egroupware-docker). Ich denke mit der 19.1 muss wegen Docker dann wieder anders auf die Logs zugegriffen werden als mit der 17.1 ?

Lieben Dank vorab.

  • created

    Jul '20
  • last reply

    Jul '20
  • 6

    replies

  • 1.2k

    views

  • 4

    users

  • 3

    links

Hallo DarkTrinity.

Das Zugangsprotokoll findest du unter
Admin/Admin/Zugangsprotokoll anzeigen
und die Datenbanktabelle heißt
egw_access_log

Docker ändert daran gar nichts. Die DB läuft/liegt auf dem Host. Habe ich ausführlich dokumentiert:

Hast du dich denn mal mit den Möglichkeiten in
/Admin/Admin/Konfiguration der Anwendung/Sicherheit
beschäftigt? Insbesondere 2FA.
Ich verwende auch noch einen Geo-Blocker. Das zusammen wirkt.

Stefan

Moin,

ich kann DarkTrinity’s Ansinnen durchaus nachvollziehen. Ich habe auch schon Webserver mit fail2ban abgesichert. z.B. auch ssh Ports.

Der Vorteil von fail2ban ist einfach, das eine iptables Chain angelegt wird. Dadurch werden die Anfragen gar nicht mehr bis an den Webserver gelinkt. Bei DDOS Angriffen durchaus sinnvoll!

In diesem Fall müsste DarkTrinity wohl erst mal eine regelmäßigen SQL Abfrage in ein file machen. Das kann fail2ban dann auswerten.

@DarkTrinity: Wenn Du Dir etwas gebastelt hast, kannst Du dann das Ergebnis mitteilen?

Grüße

Gregor

PS Landeten Anmeldungen nicht auch im apache log?

@StefanU
Danke für Infos. Aber ich würde Fail2Ban gegenüber einer 2FA als Alleinlösung klar bevorzugen. Dazu sind die Ausgaben in der UI (Admin -> Admin -> Zugangsprotokoll) ungeeignet. Die mySQL Tabelle (egw_access_log) zu triggern erscheint mir zu umständlich.

@grefabu
Mit den Browser- Entwicklertoolz erkennt man, daß bei einem fehlgeschlagenen LogIn der HTTP Code 200 ausgegeben wird. Die Apache Logs sind also ebenfalls ungeeignet - zumindest erstmal :thinking:

Aber mit dem folgenden “Patch” habe ich Egroupware dazu erzogen, bei falschen LogIns den passenderen HTTP Code 401 zurück zu geben. Dadurch ist die Analyse der Apache- Logs für Fail2Ban wieder möglich:

Dazu in der ersten Zeile von Datei /usr/share/egroupware/login.php diesen Code ergänzen:
if($_GET['cd'] == 5) { header('HTTP/1.1 401 Unauthorized'); }

Der Nachteil ist natürlich, daß man diesen Patch wahrscheinlich nach jedem Update von Egroupware wiederholen müsste. Aber es ist eine schnelle und nicht unbedingt unelegante Lösung, zu der ich mich hier erstmal entschlossen habe.

Ich habe das jetzt mal in master und 20.1 commited:

Für 19.1 will ich ein bisschen warten, ob es damit mit “exotischeren” Browsern keine Probleme gibt.

Wenn Du den HTTP Status 401 verwendest musst Du natürlich darauf achten, nicht beim ersten mal zu bannen, da Basic Auth wie es die *DAV Protokolle verwenden auch auf die Challenge von 401 warten dürfen, bevor sie Credentials senden.

Grundsätzlich banned / blocked EGroupware nach einer einstellbaren Anzahl fehlgeschlagener Login Versuche den betroffenen User oder die IP Adresse für eine einstellbare Zeit. EGroupware kann alle drei Parameter (Anzahl pro IP, User und die Zeit) konfigurieren, damit z.B. für eine Firma mit fester IP nicht einfach alle Logins blockiert.

Ralf

2FA als alleinige Lösung war auch nicht gemeint. Wenn du die Zugänge gegen Loginversuche absichern willst, ist das aber ein probates Mittel um Logins gegen Wörterbuch-Attacken und social Hacking abzusichern.
Wie Ralf ausführte und ich das oben ansprach, kann da EGw von sich aus schon einiges:

Darum fragte ich, ob du dir das angeschaut hast.

2FA ist aber natürlich auch in Hinblick auf die DSGVO zu berücksichtigen. Falls du davon betroffen bist.

DDOS-Attacken zu verhindern ist natürlich noch eine andere Sache. Du hast aber auch nichts über dein Ziel geschrieben.
Ich verwende bei meinem AG GeoIP-Block, die Block-Möglichkeiten von EGw und 2FA. Das ist für mich eine ausreichend runde Sache.

Stefan

8 days later

Also ich habe jetzt die Egroupware- eigene Sperre so konfiguriert, daß diese vor Fail2Ban anschlägt und bei danach wiederholten Fehlanmeldungen schlägt Fail2Ban zu. Das erscheint mir eine gute Lösung zu sein.

Danke für Eure Hilfe :slight_smile: