Skip to content

Forgejo als Tor-Onion-Service betreiben

Innerhalb unseres Hackspaces wird unter anderem gern git verwendet. Anfangs nutzten wir hierfür GitHub und später stiegen wir auf Selbsthosting um.

Die ersten Experimente mit Selbsthosting begannen mit trac. Aus verschiedenen Gründen wurde das jedoch wenig benutzt. Also startete der nächste Versuch mit Gitea. Das wurde deutlich mehr benutzt. Aufgrund der Entwicklungen bei Gitea entschlossen wir uns später, zu Forgejo zu wechseln. Mittlerweile sind alle Repositorys von GitHub umgezogen und die Adresse https://git.kraut.space/ ist der zentrale Ort für die Repositorys des Krautspace sowie von einigen Mitgliedern.

Um das Bild abzurunden, wollte ich die Seite auch als Tor Onion Service verfügbar machen. Einige Personen im Umfeld des Space' nutzen gern Tor und den Tor-Browser. Daher versuchen wir, einige der selbst gehosteten Dienste auch mit Onion-Adressen zu versehen.

Bei der Einrichtung achten wir nicht darauf, den Dienst bzw. dessen IP-Adresse zu verstecken. Wenn man das als “richtigen” Onion-Dienst betreiben will, müsste man noch weitere Einstellungen im Webserver und im Betriebssystem vornehmen.

Die Einrichtung von Forgejo als Tor Onion Service passiert in zwei Schritten:

  1. Konfiguration von Tor
  2. Konfiguration des Webservers

Konfiguration von Tor

Auf unseren Servern kommt Systemd zum Einsatz. Daher richte ich zunächst eine neue Instanz des Tor-Service ein:

tor-instance-create forgejo

Das legt einen neuen Systembenutzer namens _tor-forgejo und Verzeichnisse in /etc sowie /var/lib/tor-instances an. Weiterhin wird von einem Systemd-Template ein neuer Dienst tor@forgejo.service abgeleitet.

Im Verzeichnis /etc/tor/instances gibt es das Unterverzeichnis forgejo und darin liegt die relevante torrc um den Dienst zu konfigurieren.

Üblicherweise würde man dort folgende Zeilen eintragen:

HiddenServiceDir /var/lib/tor-instances/forgejo
HiddenServicePort 80 127.0.0.1:80
HiddenServiceVersion 3

Nach einem Neustart des Systemd-Dienstes wird in obigem Verzeichnis eine Datei namens hostname angelegt. Dort ist die Onion-Adresse.

Ansonsten sorgt Tor dafür, dass alle Anfragen über den virtuellen Port 80 an die Adresse 127.0.0.1 mit Port 80 weitergegeben werden. Damit müsste ein Webserver entsprechend eingestellt werden.

Wir nutzen Forgejo mit einem nginx als Reverse Proxy, d.h. es gibt einen Unix-Socket, über den kommuniziert wird. Diesen kann man natürlich direkt für Tor verwenden:

HiddenServiceDir /var/lib/tor-instances/forgejo
HiddenServicePort 80 unix:/run/forgejo/forgejo.sock
HiddenServiceVersion 3

Nach einem Neustart des Tor-Dienstes wartet dieser nun auf Anfragen.

Konfiguration des Webservers

An sich wäre bei obigem Schritt die Arbeit zu Ende. Allerdings gibt es den HTTP-Header Onion-Location. Damit kann man den Tor-Browser informieren, dass es einen Onion-Dienst gibt und dieser leitet ggf. automatisch auf die Onion-Adresse um.

In den Einstellungen des nginx für den Dienst wird daher noch folgende Zeile eingetragen:

add_header onion-location  http://kqfdxjpzqt345qplxy6yrgkj4rotfokskmxyqz5a4t4yewg6n62ea2ad.onion$request_uri

Nachdem die Konfiguration neu eingelesen wurde, kann man die Adresse https://git.kraut.space aufrufen. Sofern man einen Browser ohne spezifischen “Onion-Fähigkeiten” verwendet, wird einfach die reguläre Seite verwendet. Sollte man einen Tor-Browser oder einen anderen Browser verwenden, der mit Onion-Adressen umgehen kann und den Header kennt, wird man entweder gefragt, ob man zur Onion-Seite weitergeleitet werden möchte oder es wird automatisch gemacht.

Kommunikationswerkzeuge im Jahr 2023

Es wird wieder mal Zeit, die Liste der Kommunikationswerkzeuge zu aktualisieren. Bisher erschienen folgende Beiträge:

Im letzten Jahr stand XMPP/Jabber wegen Spam auf der Abschussliste. Ich habe den XMPP-Server um Spamschutz ergänzt. Dadurch wurde die Lage erträglicher. Dennoch nutze ich das System nahezu überhaupt nicht mehr.

Briar ist mittlerweile in die Riege der nicht mehr benutzten Dienste verschoben worden. Obwohl ich den Messenger an sich wirklich mag und den gern weiter nutzen würde, sind alle Kontakte, die ich dort hatte, nicht mehr vorhanden. Ich könnte also nur noch Selbstgespräche führen. ;-) Aus ähnlichem Grund musste auch Wire gehen.

Twitter/X steht noch mit in der Liste. Allerdings bin ich nur in unregelmäßigen Abständen dort und bekomme eventuell nicht mit, wenn mich jemand anschreibt.

Insgesamt ist die Liste im letzten Jahr etwas kleiner geworden. Derzeit scheint es auch kaum Systeme zu geben, die testenswert sind oder Personen, die testwillig sind. :-)

Nutze ich

  • E-Mail (ist für mich eines der Hauptkommunikationsmittel. Hinweise zum Schlüssel findet ihr auf der Kontaktseite.)
  • Signal
  • Matrix (@qbi:matrix.kraut.space)
  • XMPP/Jabber
  • Threema (PWB22538)
  • Jitsi (meist für Videokonferenzen des Hackspace Jena)
  • BigBlueButton
  • Mumble
  • SMS
  • Twitter/X oder Mastodon DM (nicht aktiv genutzt, wird aber als Kanal genutzt)
  • Zoom
  • Delta.Chat (deltachat[]kubieziel.de ist die korrekte Adresse)
  • SimpleX (Kontakt zum Testen gern auf Anfrage)
  • OnionShare (OnionShare kann seit kurzem auch Chats. Hier finden manchmal kurzzeitig Chats über Onion Services statt.)
  • Auf einem Extra-Rechner kommt für Kundenprojekte noch MS Teams und Google Meet zum Einsatz. Das erwähne ich hier aber eher der Vollständigkeit halber. :-)

Delta.Chat und Wire werden recht selten verwendet. Daher kann es sein, dass die beim nächsten Update in die untenstehende Kategorie verschoben werden.

Nutze ich nicht (mehr)

  • Keybase
  • Mattermost
  • Slack (ist im wesentlichen durch Matrix ersetzt worden)
  • Briar
  • Wire
  • Telegram
  • WhatsApp

Alles, was nicht genannt ist, fällt vermutlich in die Kategorie nicht genutzt. ;-)

Briefe mit politischen Anliegen schreiben

In der aktuellen Ausgabe der Lage der Nation (LdN365) sprechen Ulf und Philipp darüber, dass es sinnvoll wäre, Politiker:innen Briefe zu schreiben und darin die Anliegen zu formulieren. Briefe würden besser funktionieren als E-Mails, da diejenigen viele E-Mails erhalten und weniger darauf antworten.

Ich habe im Laufe der letzten Jahre recht häufig Briefe, E-Mails und sogar Faxe geschrieben und kann den Eindruck so nicht teilen. Nach meiner Erinnerung erhielt ich auf alle E-Mails eine sinnvolle Antwort. Die Ausnahme bildet hier eine Partei, die sich mittlerweile so weit aus dem demokratischen Spektrum entfernt hat, dass ich aufgehört habe, denen etwas zu schreiben.

Allerdings geht es in der Lage wohl eher um die Bundespolitik und ich richte meine Anliegen häufiger an die Landes- oder Kommunalpolitik. So muss sich jemand im Bundestag rein rechnerisch um etwa 115.000 Bürger:innen kümmern. Im Thüringer Landtag sind es nur 24.000 Menschen. Das heißt, es ist damit zu rechnen, dass die Menschen im Bundestag viel häufiger kontaktiert werden als in den Landtagen oder in anderen Einrichtungen. Daher ist vielleicht auch mein Eindruck “verschoben”.

Nichtsdestotrotz finde ich es eine sehr gute Idee, die Ansprechpartner:innen zu kontaktieren und sein Anliegen vorzutragen. Auf einer Demonstration gegen Rechtsextremismus meinte der Landrat von Freiberg, Dirk Neubauer, sinngemäß, dass er nicht derjenige sei, der jeden Wunsch der Bevölkerung erfülle. Vielmehr möchte er sich für alle einsetzen, die selbst etwas umsetzen wollen. Die Demokratie ist ein “Mitmachladen”. Der erste Schritt dahin, kann es eben sein, die Vertreter auf Wünsche und Anliegen aufmerksam zu machen.

Demoplakat “Freiheit ist nicht braun”

Doch wie geht man solch ein Schreiben nun an?

  1. Worum geht es? Zuerst solltet ihr euch im Klaren sein, um was es euch geht. Versucht mit einem Schreiben ein Anliegen zu adressieren. Oftmals ist klar, was ihr wollt. Dann ist dieser Schritt einfach. Manchmal schweben jedoch diffuse Ideen im Kopf und dann tendieren diese Schreiben zu Romanen zu werden. Schreibt euch daher die Grundidee als Schlagwort auf einen Zettel und entwickelt das Schreiben um diese Idee.
  2. An wen soll das Schreiben gehen? Es kann den Fall geben, dass ihr eine konkrete Person anschreiben wollt. Hier hilft schon eine Suche im Web und auf der persönlichen Webseite stehen die Kontaktdaten. Wenn ihr mehrere Personen anschreiben wollt, hilft die Suche bei Abgeordnetenwatch (Beispiel: PLZ 07743), beim Bundestag oder bei den Landkreisen.
  3. Wie setze ich das Schreiben auf? Das Schreiben besteht aus Adresse, Anrede, Betreff, dem Text und dem Abschluss. Die Adresse wurde oben ermittelt. Bei der Anrede emfiehlt es sich, klassisch “Sehr geehrt…” zu verwenden und der Betreff sollte möglichst einfach und klar sein. Also etwas in der Art “Ihre Einschätzung zu XY”, “Verbesserungsvorschlag zu Gesetz XY” usw.

    Der eigentliche Text sollte anfangs kurz zusammenfassen, worum es geht. Denn ihr solltet immer daran denken, dass ihr nicht die einzigen seid, die E-Mails oder Briefe schreiben. Wenn sich 1% der Menschen entscheiden, die Abgeordneten zu kontaktieren, bekämen diejenigen im Bundestag 1150 Nachrichten und die im Landtag Thüringen immerhin noch 240 pro Jahr. Geht man davon aus, dass das Lesen und Beantworten 10 Minuten dauert, wären das etwa 24 Arbeitstage im Bundestag und 5 im Landtag, die nur dafür investiert werden müssten.

    Schreibt daher am Anfang eine kurze Einleitung von wenigen Sätzen. Daraus sollte hervorgehen, worum es euch geht.

    Dann finde ich es immer auch schön, mit etwas Positivem einzusteigen. Also ein kleines Lob für eine Aktion oder eie Gemeinsamkeit, die man mit der Person hat. Ich finde, dies erhöht, die Bereitschaft eine solche Nachricht zu lesen und zu bearbeiten.

    Im Text sollten dann einige klare Fakten und Aussagen gemacht werden und es empfiehlt sich, eine Frage an die Person zu stellen. Das macht klar, dass ihr an einer Antwort interessiert seid und könnte die Chance auf ebendiese erhöhen.

    Wenn ihr absolut keine Idee für ein solches Schreiben habt, dann versucht mal, ChatGPT oder eine andere texterzeugende KI zu verwenden. Ich nutze das gern, um mir eine initiale Idee geben zu lassen und aufbauend darauf Dokumente zu verfassen. Aber nutzt das bitte nur als Ideengeber und kopiert nicht einfach den Text in eure Nachricht!

  4. Damit wäre der Brief oder die E-Mail fertig und kann verschickt werden.
  5. Viel Erfolg!

Leitfaden für Mastodon

Vor etwa einem Jahr schrieb ich hier einen Beitrag zu Mastodon und der DSGVO. Darin beschrieb ich, was Betreiber:innen zur Einhaltung der DSGVO zu beachten haben. Daraufhin wurde ich von der Stiftung Datenschutz kontaktiert. Sie wollten gern einen Leitfaden zum Datenschutz bei Mastodon schreiben und fragten mich, ob ich gern daran mitarbeiten wolle. Natürlich wollte ich. wink

So entstand in einer Zusammenarbeit mit Rebecca Sieber und Malte Engeler der Leitfaden als PDF-Datei sowie weitere sehr hilfreiche Dokumente. Ich habe die Zusammenarbeit sehr genossen und insbesondere der wissenschaftliche Aufsatz von Rebecca Sieber bringt viele interessante Aspekte beim Betrieb des Dienstes ans Licht.

Wenn also jemand von euch Mastodon betreibt, kann ich euch die Lektüre der Dokumente bzw. die Umsetzung unserer Hinweise nur raten. Viele der Hinweise lassen sich auch auf andere Dienste im Fediverse übertragen. Das heißt, auch hier bieten die Dokumente einen Mehrwert. Wenn ihr Fragen, Hinweise oder Kommentare habt, freue ich mich sehr über einen Kommentar hier im Blog. Ihr könnt natürlich auch die Stiftung Datenschutz gern direkt kontaktieren.

Viel Spaß beim Lesen und Umsetzen. :-)

Continue reading "Leitfaden für Mastodon"

Threads auf Mastodon für alle blockieren?

Das Fediverse ist ein dezentrales Netzwerk, wo viele Dienste mittels des Protokolls ActivityPub miteinander kommunizieren können. Hierzu gibt es die schöne Grafik mit dem Baum des Fediverse' und seinen vielen Ästen:

The many branches of the Fediverse von Per Axbom

The many branches of the Fediverse von Per Axbom. https://axbom.com/fediverse

Ein neuer Zweig kam kürzlich hinzu: Threads. Das ist ein Ableger des Meta-Konzern, besser bekannt als Facebook. Mit einem Account bei Instagram lässt sich auch Threads nutzen. Threads setzt auf ActivityPub und kann damit prinzipiell auch mit allen anderen Diensten Daten austauschen.

Nun entstanden Diskussionen, inwieweit dies gewollt ist und ob man Threads als Betreiber:in eines Mastodon- oder anderen Fediverse-Servers sperren solle. Mit einer Sperre ist eine Kommunikation mit Threads auf dem Server nicht mehr möglich. Als Argument wird Datenschutz und der “Vernichtungswille” von Großkonzernen angeführt. Da ich unter der Adresse Freie-Re.de auch einen Mastodon-Server betreibe, habe ich mir dazu auch Gedanken gemacht.

ActivityPub funktioniert als Protokoll im wesentlichen so, dass ein Beitrag in einen Postausgangskorb gelegt wird. Andere Server kommen vorbei und holen diese Nachricht ab. Andere Nutzer:innen werfen eine Nachricht in den eigenen Posteingangskorb und ich hole diese irgendwann dort ab. Das Ganze ist unten sowie auf der Wikipedia-Seite zu ActivityPub genauer beschrieben.

Aktivitäten bei ActivityPub.
Aktivitäten bei ActivityPub. Details unter https://de.wikipedia.org/wiki/ActivityPub

Wenn ich nun Beiträge schreibe, holt Threads diese wie alle anderen aus meinem Postausgang ab. Wie alle anderen, sieht der Server die Inhalte und einige andere Eigenschaften des Beitrages. Was dort genau hinterlegt wird, hängt vom konkreten Dienst ab. Mastodon legt keine zusätzlichen personenbezogenen Daten, wie IP-Adresse oder anderes, ab. Damit kann der fremde Server auch nichts mehr sehen.

Anders sieht es natürlich für die Nutzer:innen von Threads aus. Wer sich dort einen Account anlegt und die App nutzt, gibt eine Vielzahl an Daten an den Dienst. Dazu gehören laut App-Store Kontaktdaten, Standortdaten und viel, viel mehr. Das heißt, wer Bedenken hinsichtlich des Datenschutzes hat, sollte sich gut überlegen, ob ein Account bei Threads eine gute Idee ist.

Für Nutzer:innen aus dem Fediverse sehe ich hier jedoch keine größeren Gefahren. Die Daten, die eh öffentlich sind, können auch von Threads gelesen werden. Dadurch entsteht also kein zusätzliches Risiko.

Das zweite geäußerte Bedenken ist der “Vernichtungswille”. Viele große Konzerne und große Firmen verfolgen eine Strategie, die als Embrace, Extend und Extinguish bezeichnet wird. Das heißt, anfangs wird ein freies Protokoll oder eine freie Software gelobt und gern verwendet. Irgendwann gibt es dann Erweiterungen des Protokolls oder der Software, die nur für diejenigen nutzbar sind, die Kund:innen der Firma sind. Später werden dann alle Verbindungen in die “freie Welt” gekappt und das Produkt ist nur noch für Kund:innen nutzbar. Beispiele finden sich bei Google, Facebook und anderen Konzernen.

Der Ansatz ist auch hier zu befürchten. Das heißt, am Anfang gibt es eine Verbindung in das Fediverse und alle jubeln, dass Threads sich für ein freies Protokoll entschieden hat. Ich kann mir vorstellen, dass dann vielleicht Bilder und Videos nur in schlechter Auflösung ins Fediverse gelangen. Wer das Original sehen will, braucht ein Threads-Konto. Oder man kann nur mit den Accounts bei Threads interagieren, wenn man dort ein Konto hat. Hier könnt ihr eure Fantasie benutzen, wie sich das sinnvoll einschränken lässt, um andere zu Threads zu locken. Wenn dann genügend Leute Threads nutzen, kann die Verbindung ins Fediverse gekappt werden. Nutzer:innen sind dahin abgewandert und eventuell fristet das Fediverse dann ein Nischendasein. Das ist natürlich im Moment eine Vermutung und was genau passieren wird, weißt außerhalb von Meta niemand.

Ich halte es aufgrund der Beobachtungen anderer Firmen für eine erwartbare Entwicklung und für eine, auf die sich die Betreiber:innen einstellen sollten. Doch bringt ein Block von Threads hier etwas?

Wenn sich viele und insbesondere die großen Instanzen auf einen Block einlassen, würde das sicher etwas bringen. Dann fehlen Threads die initiale Zahl an aktiven Konten und sie müssen den Dienst irgendwie anders zum Laufen bekommen. Hier gibt es für den Konzern viele Möglichkeiten und ein Block wird sie einfach bewegen, anfangs einen anderen Weg zu nutzen.

Wenn sich jedoch nur ein kleiner Teil des Fediverse' zu einem Block durchringen kann, wird Threads weiter föderieren und vielleicht obigen Weg verfolgen. Sollte der Extinguish-Teil klarer werden, ließe sich vielleicht durch die Drohung, dass geblockt wird, Druck aufbauen.

Im allgemeinen bin ich der Meinung, dass weder ein präventiver Block noch ein späterer Block langfristig in dem Sinne etwas bringt, dass man den Konzern umstimmen kann. Hier wäre es wichtig, dass sich die Gemeinschaft der Betreiber:innen frühzeitig zusammenrauft und eigene Strategien entwickelt, wie mit der potenziellen Strategie von Threads umgegangen wird. Innerhalb dieser Strategie kann dann ein Block ein Baustein sein.

Aufgrund dieser Überlegungen habe ich mich daher entschieden, mit Threads zu föderieren und diese nicht zu blockieren. Derzeit überlasse ich das den Nutzer:innen. Wenn es irgendwelche anderen Gründe für einen Block geben sollte, würde ich die Gründe prüfen und aufgrund der Bewertung einen Block vornehmen, so wie das auch bei anderen mache.

Tor entfernt 1000 Server aus dem Netz

Unter dem Titel Safeguarding the Tor network: our commitment to network health and supporting relay operators veröffentlichte das Tor-Projekt einen Blog-Artikel. Darin wurde gemeldet, dass mehrere Server aus dem Netzwerk entfernt wurden.

Verlauf der Relays über die letzten TageAuf der obigen Grafik ist die Delle deutlich zu sehen. Auch eine Suche nach Relays findet um die 1000 Tor-Server. Was ist passiert?

In den Kommentaren im Tor-Blog und auch an anderen Stellen im Internet wird auf ATOR verwiesen. Dies ist eine Cryptocoin, die darauf basiert, dass andere Tor-Server betreiben. Soweit ich das sehe, muss in der torrc der String ator mit Werten enthalten sein. ATOR scheint dann auszuwerten, wie lange die Server online und auf der Basis Geld auszuschütten. Das ist zumindest das, was ich mir aufgrund divreser Quellen zusammengereimt habe.

Das Tor-Projekt hat nun herausgefunden, dass es diese Server gibt und begonnen, die Relays aus dem Netzwerk zu verbannen. Eine Suche ergibt immer mal einzelne neue, aber weitestgehend sind die aus dem Netzwerk verschwunden.

Die Gründe hierfür sind vielfältig. Im Allgemeinen geht das Projekt davon aus, dass die Betreiber:innen die Relays nicht aus eigener intrinsicher Motivation betreiben, sondern des Geldes wegen. Dies eröffnet natürlich Raum für Angriffe und ist in der wissenschaftlichen Welt seit etwa 15 Jahren diskutiert worden. Über die letzten Jahre war nun immer wieder zu sehen, dass verschiedene Gruppen Angriffe versuchen. Daher lässt das Projekt mittlerweile auch viel mehr Vorsicht walten, was es als gute oder bösartige Relays ansieht. In dem Fall war die Wahl dann klar.

"Direkt vor unseren Augen" von Daniel Moßbrucker

Daniel Moßbrucker hat ein Buch geschrieben, was sich einem heiklen und emotional sehr aufgeladenen Thema widmet: sexualisierte Gewalt an Kindern und dessen Dokumentation. In der öffentlichen Diskussion wird oftmals der verharmlosende Begriff Kinderpornographie verwendet.

Moßbrucker versucht mit dem Buch, Fakten zu liefern. Dazu hat er in diversen Foren recherchiert. Dies ist insbesondere schwer, da schon der Versuch der Beschaffung eine Straftat ist. Moßbrucker schildert in dem Buch beeindruckend, dass er mit drastischen Mitteln versuchte, keine solchen Darstellungen angezeigt zu bekommen. So war es ihm möglich, die Foren zu betreten und anhand der Dateinamen und anderer Eigenschaften abzuschätzen, was dort passiert.

Seine Recherchen führten bereits in der Vergangenheit zu überraschenden Erkenntnissen. Denn offensichtlich bleiben die Darstellungen im Netz und niemand kümmert sich um die Entfernung der Inhalte:

Mit dem Buch geht Daniel Moßbrucker analytisch vor. Er beschreibt zunächst das Problem, erklärt, woher die Darstellungen kommen und wie diese dann in den Foren landen. Dabei geht nicht nur um reine Nackt- oder schlimmere Darstellungen, sondern um eine große Bandbreite. So wird von einem Benutzer berichtet, der tausende Bilder von Kindern in Daunenjacken teilte. Im Kontext wird dann klar, dass diese Bilder in einem sexuellen Kontext gelesen werden.

Dieser Teil des Buches macht klar, wie hier vorgegangen wird, welche Art von Darstellungen interessant sind und auch wie diese technisch gehostet werden. Das liefert dann die Grundlage für den nächsten Teil. Dort geht es um mögliche Maßnahmen. Dabei werden sowohl solche besprochen, die seitens der Politik immer wieder diskutiert werden wie auch solche, die eventuell zielführender erscheinen.

Moßbrucker beschreibt die Sachverhalte in einem nüchteren, unaufgeregtem Ton. Aufgrund seiner Erfahrungen wirkt der Text glaubwürdig und er macht sich viele Gedanken, wie sich die Lage wirklich verbessern kann.

Ich würde mir sehr wünschen, wenn das Buch gerade von Fachleuten in dem Bereich gelesen wird und sich diese mit den Erkenntnissen wirklich dem Schutz von Kindern widmen würden.

cronjob