Follow

Bevor wir unsere Mastodon-Instanz aus der Testphase entlassen und Leute aufnehmen, würden wir gern die Speicherung der zuletzt genutzten IP-Adresse lokaler User ganz unterbinden.

Zeigt dieses Ticket den aktuellen Stand der Technik? github.com/tootsuite/mastodon/

Wer möchte eine wie von @rixx beschrieben verfeinerte nginx-Konfiguration mit uns teilen?

/c

Wir haben das jetzt so gelöst:

In /etc/nginx/sites-available/mastodon haben wir alle Zeilen auskommentiert, in denen X-Real-IP oder X-Forwarded-For vorkommen:

X-Real-IP $remote_addr;
X-Forwarded-For $proxy_add_x_forwarded_for;

Nach einem `systemctl reload nginx` steht bei lokalen Usern, die sich neu eingeloggt haben, jetzt nur noch 127.0.0.1 als IP-Adresse. Und diese Instanz scheint immer noch zu funktionieren, oder?

:mastodon: /c

@digitalcourage Ich hab die noch nie aktiviert xD
Und das loggen von nginx mach ich mit folgenden Zeilen: paste.bka.li/view/e5f159d3

@digitalcourage @kromonos verbaut ihr euch damit aber nicht das blocken via Fail2ban ? Das läde aktuell zum brutforcen ein.

@YoSiJo @kromonos Andere RoR-Anwendungen wie GitLab haben eingebautes Rate-Limiting.Hat Mastodon das auch? /c

@digitalcourage @YoSiJo das kann wohl nur @Gargron beantworten ^^
Auch wenn, werden DDoS und BruteForce schon auf Netzwerkebene im Rechenzentrum abgefangen. Hetzner z.B. hat da schon vorgesorgt, soweit mir bekannt ist.

@kromonos @digitalcourage @YoSiJo Mastodon hat eigenes rate limiting das u.a. auf IP basiert. Wenn mastodon nicht die echte IPs sieht kommt es zu Problemen.

@Gargron @kromonos @digitalcourage Wenn der Client annehmende Nginx also die Client IP nicht weiter reicht, müsste dieser Mechanismus entweder nicht funktionieren oder dafür sorgen das die IP 127.0.0.1 geblockt wird. Oder übersehe ich etwas?

@kromonos @Gargron @digitalcourage Ich bin ehrlich. Das sind weniger, gute Fragen als viel mehr, Jahre lange Probleme mit denen ich schon immer zu tun habe. Ich setzte gerne und eigentlich nur Open Source Software ein und habe damit stehts das Problem, das ich annehmen muss, das die Software angreifbar ist. …

@kromonos @Gargron @digitalcourage Ganz klar, properitäre Software um so mehr. Doch setzte ich sie auch im onion netzwerk ein und herrausforderung von erreichbarkeit und sicherheit, durch limitierung ist sehr schwer. Aktuell basiert viel bei mir auf den Konzept; Ja lb (nginx) und Anwendung darf alles sehen, auch die Client IP aber löscht es, sobald es geht.

@Gargron
@kromonos @YoSiJo
OK, aber dann wäre es gut, wenn Mastodon wenigstens eine Option hätte, um zu verhindern, dass alle Moderator.innen die IP-Adresse sehen können, mit der sich ein User zuletzt angemeldet hat. Vielleicht lässt sich auch vermeiden, dass sie auf Platte gespeichert wird? Das Ticket dazu gibt es ja schon – verlinkt im ursprünglichen Tröt. Danke! /c

@digitalcourage @Gargron @kromonos Ich weiß nicht wie rechts sicher dies nun ist; Doch dieses Feature von Mastodon wäre gut aber nicht der Stein der Weisen. Erfahrungsgemäß, knigt die Anwendung immer unter böswilligen Attacken ein. Beste Lösung ist hier häufig, denn lb in die Lage zu versetzten, attacken zu erkennen und zu blocken. Es reicht dabei sehr oft, nginx mit fail2ban zu verheiraten. Ich habe nur einen Fall privat, wo ich nginx mit iptables reden lassen muss, um zu sperren.

@digitalcourage
Ich würde versuchen eine Middleware zu bauen, die echte IPs gegen geänderte ersetzt und das Mapping regelmäßig ändert. z.B. Hash(IP + random_salt) und den Salt alle zwei Tage ändern und den alten nicht speichern.
Reicht für Ratelimiting und die echten IPs sind schwer abzuleiten.

@Gargron @kromonos @YoSiJo

@allo @digitalcourage @Gargron @kromonos So als Idee: Via ExecStartPre in der systemd nginx unit ein tmpfs für die log spwnen und dann mit nginx rate limit und fail2ban eine WAF vor Mastadon spannen und via logrotate täglich leeren lassen.

@digitalcourage Web Application Firewall de.wikipedia.org/wiki/Web_Appl
Also mit nginx eine eigene Firewall bauen, anstelle, wie es andere machen, #Cloudflare zu nutzen.
@YoSiJo @allo @Gargron

@kromonos @YoSiJo @allo @Gargron
Das klingt nach einem Projekt, das wir gemeinsam auf dem umsetzen könnten. Seid ihr dabei? Dann könnte man das auf events.ccc.de/camp/2019/wiki/S schon mal ankündigen. /c

@digitalcourage @kromonos @allo @Gargron Dem #cccamp19 werde ich leider nicht beiwohnen aber nehme gerne Remote dran teil. Ist aber eher von euch abhängig, was ihr vor Ort gut nutzten könnt und wie Sinnvoll es ist.

@YoSiJo kann leider auch nicht dabei sein. Bin aber via XMPP und Co. erreichbar.
@digitalcourage @allo @Gargron

@allo @digitalcourage @Gargron @kromonos @YoSiJo
Lua und nginx arbeiten recht performant zusammen. Lua-Funktionen können direkt in der Konfig aufgerufen werden. Vergesst nicht, auch die Error Logs zu definieren, es sei denn, Ihr wollt darin die IPs loggen.

Rechtssicher wird es, wenn die Möglichkeit besteht, die richtige IP herauszugeben. Siehe posteo.de/blog/erster-kommenta

@kromonos
DDoS und BruteForce kann kein Provider zu 100% abfangen, höchstens abmildern. Verlasst Euch nicht auf DDoS auf Rechenzentren-Ebene. Schützt Eure Server zusätzlich. 👍

@digitalcourage @YoSiJo @Gargron

@digitalcourage @kromonos Gute Frage. Die Frage ist aber auch, wie performant es ist. Bruteforce sollte dan abgefangen werden aber eine DDos attacke legt es eventuell noch lahm. Darf ich in der test Phase noch ein paar Scanner auf die Instanz los lassen? IPs würde ich euch noch geben und mich an euer vorgegebenes Zeitfenster halten. Alle Scanner können aber gut 8h brauchen.

@YoSiJo Die Seite rennt bei mir, vor allem bei Postfix direkt ins fail2ban 😂
Und da ich fail2ban so eingerichtet habe, dass nicht nur die Ports blockiert werden, sondern direkt die IP Adresse, funktioniert der Rest der Tests auch nicht xD @digitalcourage

@kromonos @digitalcourage Ok das ist hart gestrafft. Bei mir kommt der Scanner noch locker durch. Aber 4 mal den Scan in der Stunde darf ich auch nicht machen.
Lass mich Raten, du nutzt die Domain nur für dich selbst? ^^

@YoSiJo viele, ja. Aber der failregex von Postfix überprüft auch Verbindungen, nur wenige sekunden dauerten, ohne konkrete Daten zu senden.
@digitalcourage

@digitalcourage da fällt mir ein ... Als ich mich vor einigen Monaten intensiv mit der Proxyeigenschaft von nginx auseinander gesetzt habe, bin ich auch auf ein Rate Limiting in nginx selbst gestoßen: techgrube.de/news-und-infos/ng
Ich denke, damit kann man BruteForce attacken schon ein wenig gegensteuern. Einen gut geplanten DDoS wird es aber nicht aufhalten.
@YoSiJo

@kromonos @digitalcourage Ist auf jedenfall etwas das man nutzten kann. Auch ein Hash aus IP + Agent + date --iso-8601=h kann man gut nutzten. Ist Anonymisierend mMn und gut gegen DDoS nutzbar. Aber das Problem mit den DDoS wird man eh nie ganz los.

Sign in to participate in the conversation
digitalcourage.social

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!