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.

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.

Onionshare für den Dateiaustausch verwenden

In regelmäßigen Abständen habe ich das Vergnügen, auf Journalisten aus verschiedenen Ländern der Welt zu treffen. Ich schule diese, wie man Internetsperren umgehen kann, worauf es bei der Anonymität ankommt etc. Eines der Werkzeuge, die ich dabei erwähne und welche Begeisterung auslöst, ist OnionShare (Onion-Link).

Wie der Name schon sagt, geht es um den Austausch (von Dateien) über Onions (also das Tor-Netzwerk). OnionShare entstand ursprünglich als Werkzeug, um eine einfache und sichere Downloadmöglichkeit über Tor Onion Services zur Verfügung zu stellen. Das Gute hieran ist, dass der Austausch komplett über das Tor-Netzwerk läuft, Sender und Empfänger können also unerkannt kommunizieren. Wenn OnionShare beendet wird, dann verschwindet auch der Link und kann auch nicht wieder wiederhergestellt werden. Mittlerweile lassen sich über das Programm Downloads oder Uploads bereitstellen, chatten und auch Webseiten anbieten. All das passiert mit wenigen Klicks. Wie funktionier das?

Für Windows gibt es eine MSI-Datei und für macOS eine DMG-Datei, die man installieren kann. Unter Linux gibt es Flatpak- oder Snap-Pakete. Ich nutze in der Regel das Flatpak. Dazu müsst ihr zunächst Flatpak einrichten. Der konkrete Weg ist abhängig von eurer Distribution und verbirgt sich hinter dem Link. Wenn das eingerichtet ist, kann das dann über flatpak install flathub org.onionshare.OnionShare installiert werden.

Willkommen-Bildschirm beim Start von OnionShare
Willkommen-Bildschirm beim Start von OnionShare

Oben seht ihr das Menü nach dem Start von OnionShare. Im einfachsten Fall klickt ihr auf “Connect to Tor”, OnionShare verbindet sich mit Tor und ihr könnt nun aus vier Möglichkeiten auswählen:

  1. Dateien teilen
  2. Dateien empfangen
  3. Webseite
  4. Anonym chatten

Sollte keine Verbindung zu Tor hergestellt werden können, empfehle ich einen Blick in das Handbuch. Dort stehen verschiedene Möglichkeiten beschrieben, die ihr einstellen könnt.

Die weitere Benutzung von OnionShare ist recht einfach. Ihr wählt den entsprechenden Menüpunkt aus, beantwortet ein paar Fragen und schon kann es losgehen.

Wenn ihr Dateien teilen wollt, klickt auf Dateien oder Ordner hinfügen und wählt diese aus. Wenn ihr damit fertig seid, könntet ihr schon mit dem Teilen beginnen. Allerdings solltet ihr über zwei Punkte nachdenken:

  1. Standardmäßig lässt OnionShare einen Download zu und schließt danach den Onion Service. Das ist sinnvoll, wenn ihr einer Person die Datei(en) schicken wollt. Wenn sich der Download an mehrere richtet, solltet ihr den Menüpunkt “Dateifreigabe beenden, …” deaktivieren. Dann bleibt der Dienst bis zum Schließen von OnionShare erhalten.
  2. Weiterhin richtet OnionShare eine private OnionShare-Adresse ein. Damit wird neben der Onion-Adresse ein privater Schlüssel erzeugt, der an den Empfänger übertragen werden muss. Dies ist einerseits die sichere Variante, andererseits macht das aus meiner Erfahrung mehr Probleme. Daher wähle ich meist aus, dass das ein öffentlicher OnionShare-Dienst ist.

Beide Punkte findet ihr auch bei den anderen Menüpunkten von OnionShare. Wenn ihr eure Auswahl getroffen habt, klickt auf den grünen Knopf und das Teilen kann beginnen.

OnionShare teilt Dateien

OnionShare teilt Dateien

Die obigen Ansicht zeigt euch OnionShare an, nachdem das Teilen begonnen wurde. Ich habe mal eine Datei geteilt, die nsu-akten-gratis.pdf heißt. Wenn ihr den Artikel lest, wird es die Onion-Adresse nicht mehr geben. Die Datei bezieht sich auf eine Veröffentlichung von Frag den Staat und Jan Böhmermann (Alternative). Das Original liegt hier.

Das Wichtige oben ist die Onion-Adresse. Diese schickt ihr weiter und der Empfänger öffnet diese mit dem Tor-Browser. Dort wird dann folgendes angezeigt:

Download im Tor-Browser
Download im Tor-Browser

Mit einem Klick auf “Download Files” werden die Dateien schließlich heruntergeladen. Probiert das mal aus. Ihr werdet sehen, dass dies wirklich einfach ist.

Doch wie funktionieren die anderen drei Punkte? Findet es heraus! Probiert es mal für euch und teilt eure Erfahrungen in den Kommentaren. Ich freue mich, von euren Erfahrungen zu hören. ;-)

Warum eine Onion-Adresse betreiben anstatt Menschen animieren, Tor zu nutzen

Dieser Text ist eine Übersetzung des Blogpostings Why offer an Onion Address rather than just encourage browsing-over-Tor? von Alec Muffett. Alex pflegt auch eine Liste nützlicher Onion-Adressen.


Es gibt eine Reihe von Gründen, eine Onion-Site einzurichten. Ein Reihe von Vorteilen waren für Plattformen wie Facebook, BBC oder NYTimes von Nutzen.

Die ersten Vorteile sind Authentizität und Verfügbarkeit: Wenn du den Tor-Browser benutzt und genau die richtige Onion-Adresse eingibst, bist du garantiert mit der erwarteten Seite verbunden, was du erwartest - oder eben gar nicht.

Das ist für die Menschen sehr einfach zu begreifen und auch einfach zu erklären.

Diese Funktion entschärft Angriffe, die von möglicherweise bösartigen “Tor-Exit-Knoten” ausgehen können. Die Angriffe sind zwar selten, existieren aber dennoch. Die Tatsache, dass du eine “.onion”-Adresse verwendest, setzt voraus, dass du Tor und den Tor-Browser verwendest. Dies entschärft die folgenden möglichen Angriffe:

  • landesweite Websperren
  • Man-in-the-Middle-Angriffe auf das TLS-Protokoll
  • SNI-Filter
  • Tracking und Zensur von DNS-Anfragen (betrifft sowohl Clients wie auch Exitknoten)
  • Probleme beim Tracking durch Cookies und Fingerprinting-Angriffen
  • … sowie eine Reihe weiterer Probleme

Um es anders zu formulieren: Die Werbung für eine Onion-Adresse ist ein implizites Verkaufsargument für die Nutzung von Tor.

Update: Eine Sache, die ich in der ursprünglichen Version dieses Beitrags vergaß zu erwähnen, ist, dass die Nutzung von Onion-Netzwerken für Seiten mit hohem Traffic den Druck auf die Exit-Node-Infrastruktur von Tor reduziert. Denn der Traffic fließt stattdessen durch die größere und reichhaltigere Menge an Middle-Relays, ohne Exit-Nodes und/oder das Klartext-Internet zu nutzen.

Letzteres ist wichtig und bringt uns zum zweiten (dritten?) Satz von Vorteilen:

Der Betrieb einer Onion-Site ist eine Verpflichtung [der Plattform], mit Tor-Benutzer:innen gerecht umzugehen; bei der normalen Benutzung von Tor werden die Benutzer mit allen anderen vermischt, die aus dem Internet kommen, und (seien wir ehrlich) einige Leute benutzen Tor manchmal zum Herunterladen einer kompletten Webpräsenz (Scraping) oder anderem unangenehmen Verhalten.

Das führt zu der Herausforderung, die “Spreu vom Weizen zu trennen”.

Das Einrichten einer Onion-Adresse ist jedoch ein praktischer Schritt, der zeigt, dass die Plattform explizit auf die Bedürfnisse von Tor-Nutzern eingeht, und nun kehrt sich das Problem um: Ein gewisses Maß an schlechtem Verhalten über die Onion-Adresse kann überwacht und als “schlechtes Verhalten” eingestuft werden, was den Tor-Nutzern maximale Freiheit gewährt.

Dies ist eine Angelegenheit, die ich bei Facebook hautnah miterlebt habe und auf einer Tor-Mailingliste beschrieben habe.

Wenn ich die Vorteile in einem Satz zusammenfassen sollte, wäre es folgender: Eine Onion-Adresse ist ein Versprechen und ein Mechanismus, der sicherstellt, dass du die Bedürfnisse der Leute, die Tor benutzen, ernst nimmst.

Anstatt ihnen zum Beispiel eine endlose Reihe von CAPTCHAs auf Basis der IP-Reputation aufzudrängen.

 

 

Onion Services zum Mitnehmen

Eines meiner Hauptthemen hier im Blog ist Tor bzw. die Anonymität. So versuche auch ich dogfooding zu betreiben, also Tor beim täglichen Browsen zu verwenden. Hin und wieder stoße ich dabei auf Probleme. Entweder ich stoße auf die CAPTCHAs von CloudFlare oder die Seite öffnet sich gleich gar nicht. In letzteren Fällen wird Tor aktiv ausgesperrt. Doch was tun, wenn man die Seiten dennoch per Tor besuchen will?

Zum Glück gibt es das »Darknet«. :-) Mittels Tor Onion Services ist es möglich, beliebige Seiten zu spiegeln. Das heißt, eine Rechner ruft die Seite auf und liefert das Ergebnis über eine Onion-Seite aus. Bei der praktischen Umsetzung hilft das Enterprise Onion Toolkit (EOTK).

Untenstehend findet ihr einige Onion Services, die ich für mich oder andere aufgesetzt habe. Wenn ihr weitere Wünsche habt, hinterlasst einen Kommentar. Ich erwarte, dass die Liste im Laufe der Zeit weiter wächst:

Ich erhielt eine Nachfrage, Wikipedia auch als Onion Service anzubieten. Die Seite lässt sich über Tor problemlos aufrufen und sperrt Bearbeitungen von Tor-Servern. Alec Muffett hat dies schon versucht und mir dringend abgeraten, dies ebenfalls zu tun. Hier erscheint es sinnvoller, Überzeugungsarbeit bei Wikipedia zu leisten.

Infosec Bytes -- Videoanleitungen zur sicheren Kommunikation

Ich habe in den letzten Tagen ein wenig mit Infosec Bytes zusammengearbeitet. Die Organisation enstammt dem Centre for Investigative Journalism und möchte anderen Journalisten Trainings im sicheren Umgang mit dem Rechner und dem Netz bieten. Hierzu wurden eine Reihe von Videos veröffentlicht, andere Publikationen sind noch in der Pipeline.

Hier findet ihr beispielsweise eine kleine Einführung zu Tor:

Why journalists and whistleblowers need to understand infosecurity

Geheimdienst versucht, Tor-Admin anzuwerben

Bei Buro Jansen & Jansen erschien ein Bericht eines Tor-Admins. Der niederländische Geheimdienst versuchte, ihn anzuwerben.

Laut seiner Aussage versucht der Geheimdienst eine Joint SIGINT Cyber Unit (JSCU) aufzubauen und spricht dafür, Studentinnen und Studenten aus dem IT-Bereich an. Insbesondere sollte die Person auch Deutschland bereisen und hier Hackspaces sowie Vertretungen des CCC besuchen. Dem Geheimdienst schien es besonders wichtig zu sein, Landsleute im Ausland zu beobachten. Außerdem schienen sie Leute im Umfeld von Tor und Tails zu suchen.

Insgesamt passiert es Hackerinnen und Hackern immer wieder, dass diese von Geheimdiensten oder Militärs angesprochen werden. Ich würde auch davon ausgehen, dass das in Deutschland vermehrt passiert, da auch hier die Behörden mehr Cyber machen wollen. Daher ist es wichtig, sich so zu verhalten, wie der junge Mann in dem Bericht. Er hat seinen Besuchern klar gesagt, dass er kein Interesse an einer Zusammenarbeit hat. Auch nach den dann folgenden Drohungen ist er nicht eingebrochen.

Die IT-Industrie insbesondere im Bereich IT-Sicherheit bietet jungen Talenten genügend Möglichkeiten, sich auf einem ethisch sauberen Weg zu betätigen. Viele Privatpersonen und Firmen haben großen Bedarf in der Absicherung ihrer Infrastruktur. Hier könnt ihr helfen. Weiterhin versucht die Initiative Security without Borders bei Bedrohungen im Bereich der IT-Sicherheit zu helfen. Sucht euch daher lieber ein solches Thema und helft den Menschen da draußen!

cronjob