Nextcloud DDoS Schutz

german
nextcloud

#1

Hallo Univention Team!

Ich habe ein Problem mit der Nextcloud App (entdeckt).
Wie auf der App-Seite beworben, hat Nextcloud einen DDos Schutz eingebaut. Da Nextcloud aber in einem Docker Container hinter einem reverse Proxy läuft, ist dieser Schutz relativ sinnlos (oder sehe ich das falsch?), da alle Anfragen an den Server von ein und der selben IP kommen, nämlich der lokalen des UCS.
Jetzt hatte ich das Problem, dass ich Nextcloud in einer Umgebung mit 40 Usern installiert habe und es nicht lange gedauert hat, bis der DDoS Schutz die interne IP des UCS auf die Blacklist gesetzt hat, was sich an einer 30sek Verzögerung beim Login bemerkbar macht. (wenn 50% 1x ihr Passwort fasch eingeben sind das auch schon 20 fehlversuche von ein und der selben IP…)
Bin dann den harten Weg gegangen und hab als workaround den DDoS Schutz in der Config deaktiviert und die Einträge zur IP aus der Nextcloud Datenbank gelöscht.

Ist das ein generelles Problem oder hab nur ich das?

Liebe Grüße
Felix


#2

Hallo,

das wäre dann ein generelles Problem. Ich würde Nextcloud darauf hinweisen.
Was genau muss man denn tun, um den DDoS-Schutz zu deaktivieren?

Wäre für andere sicherlich auch hilfreich :slight_smile:

Schönen Gruß,
Michael Grandjean


#3

Hi, danke für deine Antwort!

Die genaue Vorgehensweise ist hier sehr gut beschrieben.

  1. Um das aber in Univention durchführen zu können, muss man sich per docker cp das config file von Nextcloud (var/www/html/config/config.php soweit ich mich erinnern kann) holen, editieren und per docker cp zurück in den container schieben.
  2. Danach müssen noch die bestehenden Einträge aus der PostgreSQL DB.
  3. Erste muss (zumindest kurzfristig) in der Config von Postgres die md5 authentifizierung aktviert werden. Allerings nicht nur für postgres, sondern für alle. Somit soll in einer Config line dann “local all all md5” stehen.
  4. Noch schnell die DB neu starten service postgresql restart
  5. Aus /etc/postgresql-nextcloud.secret das Passwort für den DB User “nextcloud” holen (kopieren, ist sehr lang).
  6. Mit psql -U nextcloud -W -c nextcloud mit der DB verbinden. Nach Aufforderung das kopierte PW einsetzen.
  7. Jetzt können wir mit SELECT * FROM oc_bruteforce_attempts; die Einträge der Tabelle sehen
  8. Mit TRUNCATE table oc_bruteforce_attempts; alle Einträge löschen
  9. Mit \q den Postgres Client beenden
  10. Zur Sicherheit noch mit docker exec [containername] bash ne Shell im Container starten und mit chown www-data /var/www/html/config/config.php sicherstellen, dass das Config File auch wieder für den Server beschreibbar ist.
  11. Zum Schluss sicherheitshalber noch die Zeile aus der Postgres Config wieder raus nehmen.
  12. Danach am besten ein kompletter neustart es UCS

Kann durchaus sein, dass es ne bessere Lösung dafür gibt, korrigiert mich dann bitte =D

Ich hoffe ich hab nichts vergessen…

Lg. Felix


#4

Super, danke :slight_smile:
Ich habe das mal hier als Issue angelegt: https://github.com/nextcloud/univention-app/issues/21


#5

Hallo,

In der Version 12 von Nextcloud soll ein Whitelist feature hinzukommen um dies zu behandeln, leider aber nicht für 11
Mit viel Glück ist ja die 12er Version auch bald als UCS App da :slight_smile:

https://apps.nextcloud.com/apps/bruteforcesettings

LG
Christian