Diese Website ist jetzt als Hidden Service im Tor-Netzwerk erreichbar
Self-Hosting on the Dark Web

David Alvarez Rosa hostet seine statische Website nun selbst als Tor-Hidden-Service unter einer .onion-Adresse. Dafür richtet er einen HiddenServiceDir und HiddenServicePort in der torrc ein, leitet den Port 80 auf einen lokalen nginx-Server um und baut die Seite mit Hugo ein zweites Mal mit der .onion-Adresse als baseURL. Die Deploy-Pipeline erzeugt und synchronisiert beide Varianten – Clearnet und Tor – automatisch.
Tor relays and encrypts your traffic as it passes through thousands of volunteer-run servers, so that no single party can link who you are to what you are doing; a hidden service extends that anonymity to the server itself.
- p4bl0
Meine persönliche Website wird seit Jahren über Tor gehostet. Das ist einfach von zu Hause aus zu machen, selbst hinter einem NAT, weil es aus deiner Sicht eine ausgehende Verbindung ist (was es auch zu einer großartigen Möglichkeit macht, lokale Dienste verfügbar zu machen, selbst wenn du hinter einem NAT bist und keine statische IP hast), und durch das Design ist deine persönliche IP vor deinen Besuchern verborgen.
Ich habe vor fast zehn Jahren (schon?!) in 2600 darüber geschrieben. Eine Kopie meines Artikels findest du hier: https://pablorauzy.fr/outreach/2600/how-to-run-a-tor-hidden-...
Wenn du eine Onion-Kopie deiner Website hast, vergiss nicht den Onion-Location HTTP-Header, der Tor-Browser-Nutzer automatisch zur Onion-Version der Website weiterleitet, selbst wenn sie sie unter der Clearnet-Adresse besuchen.
Falls es Leute interessiert, ich habe auch einen Folgeartikel über I2P: https://pablorauzy.fr/outreach/2600/how-to-run-an-i2p-hidden...
- ivanmontillam
Was ich an Onion-Seiten wirklich liebe, ist, dass Performance-Engineering, wenn sie groß genug sind, wirklich Tor-spezifisch wird. Ein paar Beispiele:
- Assets als base64 einbetten (img src des Header-Logos als base64, alles CSS sollte inline sein, usw.).
- CSS so weit wie möglich nutzen (wenn du Animationen und Übergänge verwendest, nutze dafür so weit wie möglich CSS, vermeide JS dafür).
- Stelle sicher, dass deine Website größtenteils im Backend gerendert wird. Wenn du JS haben willst, sollte deine Website auch ohne funktionieren.
- Sicherheit wird WIRKLICH lustig, im Sinne von: vermeide XSS-, CSRF-, SQL-Injection-Angriffe und alle anderen Injections so weit wie möglich.
Wie jemand in einem anderen Kommentar[0] zusammenfasst: Halte die Gesprächigkeit so minimal wie möglich. Unter Gesprächigkeit verstehe ich, dass sie meinen, packe so viele Daten wie möglich in dieselbe Keep-Alive-Verbindung. Vermeide so weit wie möglich neue HTTP-Anfragen, da jede einzelne einer neuen Onion-Route zugewiesen werden könnte, was die Dinge langsam macht.
Wenn du deine Website in einer einzigen Verbindung zum Browser bringen kannst, hast du gewonnen.
Ich war immer beeindruckt von der Performance dieser großen Onion-Seiten; sie treiben die Grenzen der Kreativität im Software-Engineering wirklich voran, angesichts dieser Einschränkungen und der Natur von Tor.
--
[0]: https://news.ycombinator.com/item?id=49872320
EDIT: Formatierung der Aufzählungspunkte.
- basilikum
Du willst wahrscheinlich den Onion-Location-Header zur Clearnet-Seite hinzufügen, damit der Tor Browser den Besucher automatisch darüber informieren kann: https://community.torproject.org/onion-services/advanced/oni...
- mzajc
Neben der Verwendung eines separaten Ports würde ich auch vorschlagen, den Hidden Service an eine andere Bind-Adresse als 127.0.0.1 zu binden, nur für den Fall, dass du jemals etwas anderes auf diesem Port hostest und vergisst, den Hidden Service zu deaktivieren:
> HiddenServicePort 80 127.13.37.1:8080
> listen 127.13.37.1:8080;
Auf diese Weise können Fremde keine Verbindung zu einem Dienst herstellen, der an 127.0.0.1 gebunden ist, falls du jemals beschließt, den Port wiederzuverwenden und vergisst, den Hidden Service zu deaktivieren.
Du musst auch separate Ports und/oder Bind-Adressen verwenden, wenn du mehrere Hidden Services hostest und nicht willst, dass Leute sie korrelieren können – wenn nginx den Host-Header nicht abgleicht, wird es die Website ausliefern, die alphabetisch zuerst kommt.
- dherls
Was ist der Vorteil, dieselbe Website zweimal mit unterschiedlichen Hostnamen zu erstellen, anstatt relative Links zu Inhalten auf derselben Domain zu verwenden?
- tombert
Ich habe darüber nachgedacht, als ich mein Blog noch selbst gehostet habe, rein weil ich dachte, es hätte einen gewissen Ordnungsfaktor, ehrlich sagen zu können: „Ich habe eine Seite im Dark Web.“
Irgendwann habe ich das Blog zu Cloudflare Pages verschoben, hauptsächlich weil ich Cloudflare Workers für die Kommentare nutzen wollte, obwohl ich immer noch darüber nachgedacht habe, es doppelt zu veröffentlichen, nur um weiterhin sagen zu können, dass ich es getan habe.
- coldblues
Ich empfehle Leuten, auch I2P und Yggdrasil auszuprobieren, besonders Yggdrasil. Es macht keine Kompromisse bei Geschwindigkeit und Latenz, aber es bietet keine Anonymität.
- sowbug
In einem Leitfaden wie diesem könnte es hilfreich sein, das Sichern des generierten privaten Schlüssels zu betonen, dessen Verlust dazu führen würde, dass du deine Onion-Adresse ändern müsstest.