Onion-Site auf VPS mit Tor und nginx hosten
Erstellen Sie einen v3-Onion-Service auf Ubuntu mit Tor und nginx auf 127.0.0.1. Prüfen Sie typische Datenlecks, die Ihre Onion-Adresse mit der öffentlichen IP verknüpfen.
Was Sie erstellen
Eine Onion-Site ist ein normaler Webserver, der nur über das Tor-Netzwerk antwortet. Installieren Sie tor, fügen Sie zwei Zeilen zu /etc/tor/torrc hinzu, lesen Sie die Adresse aus, die tor für Sie schreibt, und binden Sie nginx anschließend an 127.0.0.1, damit am öffentlichen IP-Adresse nichts antwortet. Die Installation dauert zehn Minuten. Der restliche Teil dieses Leitfadens ist eine Liste möglicher Datenlecks. Onion-Sites fallen meist aus, weil ihre eigene Konfiguration direkt auf den Betreiber zurückverweist.
Tor begann als „the onion router“. Ein Onion-Service ist ein Dienst, den Sie nur über Tor erreichen können. Eine Version-3-Adresse besteht aus 56 Zeichen gefolgt von .onion. Diese Zeichen enthalten den öffentlichen ed25519-Schlüssel des Dienstes sowie eine Prüfsumme und ein Versionsbyte, die in base32 codiert sind. Adressen der Version 2 mit 16 Zeichen wurden 2021 aus dem Netzwerk entfernt. Alles, was Sie heute erzeugen, ist daher v3. Die Adresse ist der Schlüssel. Daraus ergeben sich zwei Konsequenzen. Die Verbindung ist Ende-zu-Ende-verschlüsselt und authentifiziert, ohne dass eine Zertifizierungsstelle beteiligt ist. Wenn Sie die Schlüsseldatei verlieren, verlieren Sie die Adresse dauerhaft.
Ihr Server akzeptiert niemals eine eingehende Verbindung. Tor wählt einige Relays als Einführungspunkte aus, lädt ein signiertes Descriptor zu den Directory-Servern hoch und verbindet jeden Besucher über ein Rendezvous-Relay, das der Besucher ausgewählt hat. Jede dieser Verbindungen geht von Ihrem Server aus. Sie müssen keinen Port öffnen und keinen DNS-Eintrag veröffentlichen. Wenn derselbe VPS auch etwas an das Netzwerk zurückgeben soll, ist das eine andere Aufgabe mit umgekehrten Anforderungen, denn ein obfs4-Bridge akzeptiert eingehende Verbindungen von zensierten Clients und benötigt daher einen erreichbaren Port.
Installieren Sie tor aus dem Repository des Tor Project
Ubuntu veröffentlicht ein tor-Paket im Repository universe. Es bleibt jedoch meist nahe an der Version, die beim Einfrieren des Releases aktuell war. Das eigene Repository des Tor Project folgt der aktuellen stabilen Version. Diese Version ist für die Software erforderlich, die entscheidet, ob Ihre Adresse Ihre bleibt. Dass ein Paket in einer Distribution vorhanden ist, sagt nichts darüber aus, ob es noch aktiv weiterentwickelt wird. Das sollten Sie bei jeder selbst gehosteten Anwendung prüfen, denn Searx hat seit 2023 keinen Code-Commit mehr erhalten, während SearXNG dieses Projekt weiterführt.
sudo apt update
sudo apt install -y apt-transport-https gnupg wget
KEYURL=https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
wget -qO- "$KEYURL" | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/nullDer Repository-Eintrag verwendet das deb822-Format. Suites muss dabei der Ubuntu-Codename sein. Lesen Sie ihn aus /etc/os-release aus, statt ihn einzugeben. Ein falscher Codename führt zu einem Repository, das zwar korrekt aufgelöst wird, aber keine Pakete für Ihr Release enthält.
. /etc/os-release
sudo tee /etc/apt/sources.list.d/tor.sources >/dev/null <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $VERSION_CODENAME
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF
sudo apt update
sudo apt install -y tor deb.torproject.org-keyringDas Paket deb.torproject.org-keyring hält den Signaturschlüssel aktuell. Dadurch führt eine Schlüsselrotation nicht dazu, dass apt update in einem Jahr ausfällt. Prüfen Sie, ob tor gestartet wurde und das Netzwerk erreicht:
tor --version
sudo journalctl -u tor@default -n 20Das Journal sollte mit Bootstrapped 100% (done): Done enden. Ein tor-Prozess, der bei Bootstrapped 10% feststeckt, hat keinen ausgehenden Netzwerkpfad. Prüfen Sie daher die Netzwerk-Firewall Ihres Providers und Ihre eigenen Regeln für ausgehenden Datenverkehr: sudo ufw status verbose sollte allow (outgoing) als Standard anzeigen.
Von hier an sind zwei Namen wichtig. Das Paket führt tor unter dem Benutzer debian-tor aus. Die laufende Unit ist tor@default.service, da tor.service unter Debian und Ubuntu ein Wrapper um die Instanz ist. Rufen Sie Status und Logs mit dem Instanznamen ab. Dann erhalten Sie immer den Status des tatsächlichen Prozesses.
Konfigurieren Sie den Onion-Service in torrc
Fügen Sie an /etc/tor/torrc zwei Zeilen an:
HiddenServiceDir /var/lib/tor/onion_site/
HiddenServicePort 80 127.0.0.1:8080HiddenServiceDir enthält die Schlüssel und die Adresse dieses Service, die Tor dort speichert. Erstellen Sie das Verzeichnis nicht selbst. Tor legt es beim Start mit dem erforderlichen Eigentümer und Modus an. Ein Verzeichnis, das Sie als root erstellt haben, verursacht den ersten Fehler in der folgenden Fehlerliste.
HiddenServicePort besteht aus zwei Teilen. Das ist eine häufige erste Fehlerquelle. Die erste Zahl ist der Port, zu dem ein Besucher innerhalb des Tunnels eine Verbindung herstellt. 80 entspricht daher der üblichen Erwartung und muss nicht geändert werden. Der zweite Teil ist die lokale Adresse, an die Tor diesen Datenverkehr weiterleitet. Ein einfaches HiddenServicePort 80 leitet an 127.0.0.1:80 weiter. Wenn Sie die Adresse vollständig angeben und einen hohen Port verwenden, bleibt der Onion-vhost von allem frei, das bereits auf Port 80 lauscht.
sudo systemctl restart tor@default
sudo ls -l /var/lib/tor/onion_site/Die Auflistung sollte hostname, hs_ed25519_public_key, hs_ed25519_secret_key und ein leeres Verzeichnis authorized_clients enthalten.
Lesen Sie Ihre .onion-Adresse
sudo cat /var/lib/tor/onion_site/hostnameEine Zeile wird ausgegeben: 56 Base32-Zeichen und .onion. Diese Zeichenfolge ist die vollständige Identität der Website. Niemand weist sie zu, niemand kann sie übertragen, und niemand kann sie Ihnen nehmen, solange Sie die Schlüsseldatei besitzen. Kopieren Sie die Adresse jetzt, da jede nachfolgende Konfiguration sie benötigt. Im weiteren Verlauf wird sie als <your-address>.onion bezeichnet.
Die Website über nginx bereitstellen, das an 127.0.0.1 gebunden ist
sudo apt install -y nginx
sudo install -d -m 755 /srv/onionSchreiben Sie /etc/nginx/sites-available/onion:
server {
listen 127.0.0.1:8080;
server_name <your-address>.onion;
root /srv/onion;
index index.html;
server_tokens off;
etag off;
access_log off;
error_log /var/log/nginx/onion.error.log error;
}echo '<h1>hello from the onion</h1>' | sudo tee /srv/onion/index.html
sudo ln -s /etc/nginx/sites-available/onion /etc/nginx/sites-enabled/onion
sudo nginx -t
sudo systemctl reload nginxÜberprüfen Sie nun zwei Punkte auf dem Server. Erstens muss nginx auf den Onion-Namen antworten. Dieser Name steht im exakten Host-Header, den tor sendet:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/Zweitens muss nginx dort und nirgendwo sonst antworten:
sudo ss -tlnp | grep 8080In der Adressspalte muss 127.0.0.1:8080 stehen. Wenn dort 0.0.0.0:8080 oder *:8080 steht, ist Ihre Onion-Website auch über das öffentliche Internet erreichbar. Das ist der erste Eintrag in der Liste möglicher Leaks. Eine listen 8080;-Zeile ohne Adresse bindet alle Schnittstellen. Das ist der Standard.
Öffnen Sie die Adresse in Tor Browser. Der erste Ladevorgang dauert einige Sekunden, während der Client Ihren Descriptor abruft und eine Rendezvous-Schaltung aufbaut.
Die Dokumentation des Tor Project empfiehlt anstelle eines Loopback-Ports einen Unix-Socket: HiddenServicePort 80 unix:/var/run/tor/onion_site.sock. nginx lauscht dann auf diesem Pfad. Ein Socket kann von keinem anderen Host erreicht werden, selbst wenn der Server später eine zweite Schnittstelle erhält. Der Nachteil sind die Dateiberechtigungen. nginx erstellt den Socket, und tor verbindet sich als debian-tor damit. Deshalb müssen sich die beiden Benutzer auf das Verzeichnis einigen. Loopback mit einer überprüften Ausgabe von ss ist einfacher korrekt einzurichten. Der restliche Leitfaden setzt diese Variante voraus.
Wenn die Website über Loopback erreichbar ist, benötigt der Server dafür keine eingehende Firewall-Regel. Lassen Sie Port 22 für Ihren Zugriff offen und verweigern Sie den restlichen Datenverkehr (die sinnvollen ufw-Standardeinstellungen für einen VPS). Beachten Sie, dass eine Firewall keinen Dienst außer Kraft setzt, der an 0.0.0.0 gebunden ist. Sie filtert nur Pakete, die die Firewall erreichen. Bei Containern ist das besonders wichtig, weil das Veröffentlichen eines Docker-Ports iptables-Regeln vor ufw einträgt. Dadurch macht -p 8080:80 Ihr Onion-Backend über die öffentliche IP erreichbar, während ufw den Port weiterhin als verweigert meldet. Veröffentlichen Sie Container-Ports als -p 127.0.0.1:8080:80.
Die Leaks, die eine Onion-Site deanonymisieren
Tor verbirgt, wo sich der Server befindet. Tor verbirgt nicht, was der Server ausgibt. Jeder unten aufgeführte Punkt wird von Ihrem eigenen Stack veröffentlicht. Jedes Datenschutztool anhand seiner tatsächlichen Grenze und nicht anhand seines Rufs zu beurteilen, ist dieselbe Gewohnheit, die Ihnen zeigt, was ein selbst gehostetes SearXNG verbirgt: Ihre IP-Adresse vor den Suchmaschinen und nichts weiter.
Dieselbe Site antwortet auf Ihrer öffentlichen IP-Adresse
Dieser Punkt wird häufig übersehen. Scanner indexieren kontinuierlich die HTTP-Antwort jeder routbaren Adresse. Diese Ergebnisse sind öffentlich und durchsuchbar. Wenn Sie dieselbe Seite auf Ihrer öffentlichen IP-Adresse und unter Ihrer Onion-Adresse ausliefern, reicht eine einzige Abfrage, um beide zu verknüpfen: derselbe Titel, derselbe Favicon-Hash, dasselbe ETag und dieselbe Reihenfolge der Header. Die oben gezeigte Zeile listen 127.0.0.1:8080; behebt das Problem. Prüfen Sie dies von einem anderen Rechner aus und nicht vom Server:
curl -sv --max-time 5 http://<your-public-ip>:8080/Connection refused oder ein Timeout ist das korrekte Ergebnis. Jede HTML-Antwort bedeutet, dass die Site öffentlich erreichbar ist. Wenn auf dem Rechner zusätzlich eine Clearnet-Site läuft, geben Sie diesem Vhost ein eigenes Root-Verzeichnis. Lassen Sie außerdem einen expliziten default_server-Block auf dem öffentlichen Listener bestehen, damit ein nicht passender Host-Header niemals an den Onion-Vhost weitergereicht wird.
Versionsbanner
curl -sI http://127.0.0.1:8080/ | grep -i '^server'Ein Standard-nginx antwortet mit Server: nginx/1.24.0. Diese Versionszeichenfolge bildet zusammen mit der exakten Reihenfolge der anderen Header einen Fingerabdruck, der Ihre Onion-Site mit Ihrem Clearnet-Host verknüpfen kann. server_tokens off; reduziert dies auf Server: nginx. Der Header wird dadurch nicht entfernt. nginx verfügt dafür über keine integrierte Direktive. Wenn Sie ihn vollständig entfernen möchten, ist das headers-more-Modul daher die übliche Lösung. PHP fügt X-Powered-By hinzu, bis Sie expose_php = Off setzen. etag off; gehört ebenfalls in diese Liste, weil nginx das ETag aus der Änderungszeit und der Größe einer Datei erzeugt. Dieselben Dateien, die auf zwei Server kopiert werden, liefern daher auf beiden Servern dasselbe ETag.
Absolute URLs, die auf Ihre Clearnet-Domain verweisen
Ein rel="canonical"-Tag, ein Open-Graph-og:url, ein RSS-Feed, eine E-Mail zum Zurücksetzen des Passworts oder eine fest codierte Logo-URL. Jeder dieser Punkte nennt die Clearnet-Site innerhalb einer Seite, die über die Onion-Adresse ausgeliefert wird. Verwenden Sie Root-relative Pfade wie /static/logo.svg. Lassen Sie die Anwendung ihre Basis-URL aus dem Request-Host lesen und nicht aus einer Konstanten. Weiterleitungen sind dasselbe Problem an einer anderen Stelle: return 301 https://example.com$request_uri; in einem Catch-all-Block leitet den Onion-Besucher auf Ihre echte Domain weiter. Der Location-Header liefert die Antwort direkt mit.
Ein TLS-Zertifikat, das mit der Clearnet-Site geteilt wird
Eine Onion-Adresse authentifiziert sich selbst, weil die Adresse der öffentliche Schlüssel ist. Daher ist http:// über eine Onion-Verbindung bereits Ende-zu-Ende-verschlüsselt. Tor Browser behandelt sie außerdem als sicheren Kontext. Wenn Sie Ihr bestehendes Zertifikat auf dem Onion-Vhost installieren, veröffentlichen Sie die Verbindung zwischen beiden Sites. Jedes öffentlich vertrauenswürdige Zertifikat wird in Certificate-Transparency-Logs erfasst. Diese Logs sind öffentlich, dauerhaft und nach Namen durchsuchbar. Belassen Sie Let's-Encrypt-Zertifikate auf dem Clearnet-Vhost und verwenden Sie auf dem Onion-Vhost einfaches HTTP.
Schriftarten und Analytics von Drittanbietern
Eine Schriftart von einem CDN (Content Delivery Network) oder ein Analytics-Skript. Der Browser des Besuchers ruft jedes dieser Elemente direkt ab. Der Drittanbieter erfährt dadurch, dass jemand Ihre Seite geladen hat, und normalerweise auch, welche Seite geladen wurde. Die strengeren Sicherheitsstufen von Tor Browser blockieren diese Anfragen außerdem ohnehin, sodass ein fehlerhaftes Layout zurückbleibt. Hosten Sie jedes von der Seite benötigte Asset selbst.
Nicht übereinstimmender Host-Header
Wenn server_name nicht mit dem von tor gesendeten Host-Header übereinstimmt, verwendet nginx den Default-Server für diese Listen-Adresse. Auf einem Rechner mit nur einem Vhost bleibt das unsichtbar, weil der einzige Server-Block zugleich der Default ist. Wenn Sie später einen Clearnet-Vhost hinzufügen, können Onion-Anfragen auf diesem landen, einschließlich seiner Canonical-Tags und Weiterleitungen. Führen Sie die curl -H 'Host: ...'-Prüfung nach jeder Änderung an nginx erneut aus. Suchen Sie im Ergebnis außerdem nach Ihrer echten Domain:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/ | grep -o 'https\?://[^"]*' | sort -uZu wissen, welcher Prozess welchen Socket verwendet, deckt den größten Teil dieser Aufgabe ab (wie Ports und Listening-Sockets unter Linux funktionieren).
Was in den Logs verbleibt
Jede Anfrage kommt von 127.0.0.1. nginx hat daher keine Besucheradresse, die es protokollieren könnte, und access_log off; verursacht für Sie keine Kosten. Die darüberliegende Anwendung ist ein anderer Fall. Eine Bestellung, eine E-Mail-Adresse oder die Metadaten einer hochgeladenen Datei müssen Sie selbst verwalten. Auch Ihre eigenen Gewohnheiten spielen eine Rolle: Wenn Sie den Rechner über einen nicht abgesicherten Login administrieren, liegt dies außerhalb dessen, was Tor schützt. Betrachten Sie daher SSH-Härtung auf demselben VPS als Teil dieser Einrichtung.
Sichern Sie den privaten Schlüssel, denn er ist die Adresse
/var/lib/tor/onion_site/hs_ed25519_secret_key ist der Dienst. Es gibt keine Registrierungsstelle und keine Wiederherstellungsmöglichkeit. Wenn Sie ihn verlieren, ist die Adresse nicht mehr verfügbar. Kopieren Sie ihn, kann jeder, der die Kopie besitzt, unter Ihrer Adresse eigene Inhalte bereitstellen. Sie haben keine Möglichkeit, dies zu widerrufen.
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -czf onion-keys.tgz onion_site
sudo chmod 600 onion-keys.tgz
sudo systemctl start tor@defaultVerschlüsseln Sie dieses Archiv (gpg -c onion-keys.tgz) und verschieben Sie es vom Server. Für die Wiederherstellung auf einem neuen VPS benötigen Sie das Archiv sowie die Besitzrechte, die Tor erwartet:
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -xzf onion-keys.tgz
sudo chown -R debian-tor:debian-tor /var/lib/tor/onion_site
sudo chmod 700 /var/lib/tor/onion_site
sudo systemctl start tor@default
sudo cat /var/lib/tor/onion_site/hostnameDieselbe Adresse ist auf der neuen Hardware wieder verfügbar, ein bis zwei Minuten nachdem Tor den Descriptor erneut veröffentlicht hat. Das ist die gesamte Migration: keine DNS-Änderung und keine erneute Ausstellung eines Zertifikats.
Onion-Location, wenn die Website auch im Clearnet erreichbar ist
Wenn die Onion-Adresse als Komfortfunktion und nicht als Geheimnis gedacht ist, veröffentlichen Sie sie im Clearnet-VHost:
add_header Onion-Location http://<your-address>.onion$request_uri;Der Tor Browser zeigt dann eine .onion available-Schaltfläche in der Adressleiste an und bietet den Wechsel an. Der Header wird nur berücksichtigt, wenn die Clearnet-Seite über HTTPS ausgeliefert wird und der Wert eine gültige Onion-URL ist.
Eine nginx-Regel ist dabei wichtig. add_header-Direktiven werden nur dann von einem location-Block übernommen, wenn dieser keine eigenen Direktiven deklariert. Ein location-Block mit einem eigenen add_header verwirft Onion-Location daher stillschweigend. Wiederholen Sie die Direktive dort, oder verwalten Sie alle Response-Header an einer zentralen Stelle. Durch die bewusste Veröffentlichung dieses Headers werden die beiden Websites miteinander verknüpft. Das ist für ein Mirror korrekt, aber falsch für Inhalte, die nicht miteinander verknüpft werden sollen.
Vanity-Adressen
mkp224o erzeugt Schlüsselpaare, bis eines davon eine Adresse mit dem gewünschten Präfix ergibt. Das ist eine Brute-Force-Suche. Außer dem Präfix und der gewünschten Wartezeit müssen Sie nichts konfigurieren.
sudo apt install -y git gcc libc6-dev libsodium-dev make autoconf
git clone https://github.com/cathugger/mkp224o
cd mkp224o
./autogen.sh
./configure --enable-amd64-51-30k
make
./mkp224o -d onionkeys blogJeder Treffer wird in onionkeys/<address>.onion/ abgelegt und enthält hostname sowie hs_ed25519_secret_key. Installieren Sie ihn, indem Sie Tor stoppen, dieses Verzeichnis über HiddenServiceDir kopieren und anschließend dieselben chown und chmod 700 wie bei der Wiederherstellung oben anwenden.
Die Länge des Präfixes bestimmt den gesamten Aufwand. Die Adresse verwendet Base32. Jedes zusätzliche gewünschte Zeichen multipliziert die erwartete Anzahl der Schlüssel mit 32. Ein kurzes Präfix wird auf einem Laptop schnell erzeugt. Ein langes Präfix wird auf keinem Gerät fertig, das Sie besitzen. Ein Vanity-Präfix bringt Leser außerdem dazu, nur die ersten Zeichen statt der gesamten Adresse zu erkennen. Genau auf dieser Gewohnheit basieren Phishing-Kopien von Onion-Sites.
Fehlerbilder und die dabei angezeigten Meldungen
Nach dem Neustart gibt es keine Datei hostname. Tor wurde nicht gestartet oder hat das Verzeichnis abgelehnt. sudo journalctl -u tor@default -n 50 nennt den Grund:
/var/lib/tor/onion_site/ is not owned by this user (debian-tor, 108) but by root (0). Perhaps you are running Tor as the wrong user?So sieht ein manuell erstelltes Verzeichnis aus. Korrigieren Sie Eigentümer und Berechtigungen oder löschen Sie das Verzeichnis, damit tor es erstellt.
Tor Browser zeigt Onionsite Not Found (0xF0) an. Der Client konnte keinen Descriptor abrufen. Aus Sicht des Netzwerks wird unter dieser Adresse daher nichts veröffentlicht. Prüfen Sie, ob tor läuft und den Bootstrap-Vorgang abgeschlossen hat. Vergleichen Sie die eingegebene Adresse Zeichen für Zeichen mit sudo cat /var/lib/tor/onion_site/hostname. Prüfen Sie anschließend die Systemzeit. Tor benötigt eine korrekte Zeit, um Descriptoren zu veröffentlichen und zu validieren. timedatectl sollte System clock synchronized: yes melden.
Die Adresse wird aufgelöst, aber die Seite wird nie geladen. Tor hat das Rendezvous abgeschlossen und ist anschließend beim letzten Hop von tor zu nginx fehlgeschlagen. Dieser Hop ist lokal, daher bleibt das Tor-Log leer. Führen Sie auf dem Server curl -sI http://127.0.0.1:8080/ aus. Connection refused bedeutet, dass nginx nicht läuft oder an einer anderen Adresse lauscht, als HiddenServicePort angibt.
Die Seite wird geladen, und jeder Link führt zu Ihrer echten Domain. Die Templates enthalten absolute URLs. Führen Sie die oben genannte Prüfung mit grep -o 'https\?://[^"]*' aus und beheben Sie die dort ausgegebenen Probleme, bevor Sie die Adresse weitergeben.
Es funktioniert zunächst, fällt aber nach einem Neustart aus. Starten Sie den Server einmal absichtlich neu, bevor Sie sich auf die Website verlassen. Führen Sie anschließend sudo systemctl status tor@default und sudo systemctl status nginx aus. Ein manuell gestarteter Dienst sieht bis zum Neustart des Computers genauso aus wie ein aktivierter Dienst.
FAQ
Muss ich in meiner Firewall einen Port für einen Tor-Onion-Dienst öffnen?
Nein. Der tor-Daemon stellt nur ausgehende Verbindungen zu den Verzeichnisservern, seinen Introduction Points und den einzelnen Rendezvous-Relays her. Daher ist keine eingehende Regel erforderlich, und der Webserver selbst lauscht auf 127.0.0.1. Lassen Sie ufw für eingehenden Datenverkehr auf der Standardeinstellung deny und erlauben Sie SSH. Aufgrund derselben Eigenschaft funktioniert ein Onion-Dienst auch auf einem Rechner hinter NAT (Network Address Translation), der überhaupt keine öffentliche IP-Adresse besitzt.
Warum kann ich meine .onion-Adresse im Tor Browser nicht erreichen?
Gehen Sie vom Server aus nach außen vor. sudo journalctl -u tor@default -n 50 sollte Bootstrapped 100% (done): Done anzeigen. Anschließend sollte curl -sI http://127.0.0.1:8080/ auf dem Server eine Statuszeile zurückgeben. Vergleichen Sie dann die eingegebene Adresse mit der Datei hostname, da bereits ein falsches Zeichen auf einen anderen Dienst verweist. Onionsite Not Found (0xF0) bedeutet, dass für die Adresse kein Descriptor gefunden wurde. Meist läuft tor dann nicht, oder die Systemuhr geht falsch.
Kann ich meine Onion-Site auf einen neuen Server verschieben und dieselbe Adresse behalten?
Ja. Die Adresse wird aus hs_ed25519_secret_key abgeleitet. Kopieren Sie daher das vollständige HiddenServiceDir auf den neuen Rechner, setzen Sie den Eigentümer auf debian-tor und den Modus auf 700 und starten Sie tor. Die Adresse ist wieder erreichbar, sobald der Descriptor erneut veröffentlicht wurde. Ein DNS-Eintrag muss nicht geändert werden. Wenn Sie diese Datei verlieren, kann die Adresse nicht wiederhergestellt werden. Sichern Sie sie daher am Tag ihrer Erstellung verschlüsselt außerhalb des Servers.
Benötigt eine Onion-Site ein HTTPS-Zertifikat?
Nein. Die 56 Zeichen lange Adresse ist der öffentliche Schlüssel des Dienstes. Die Verbindung ist daher bereits Ende zu Ende verschlüsselt und authentifiziert. Tor Browser behandelt http:// unter einem .onion-Namen als sicheren Kontext. Das Wiederverwenden Ihres Clearnet-Zertifikats für den Onion-VHost ist schlechter, als nichts zu tun, da Certificate-Transparency-Logs öffentlich sind und dauerhaft festhalten, welche Namen dasselbe Zertifikat verwenden. Der einzige Grund, ein Zertifikat für einen .onion-Namen zu kaufen, ist die Bestätigung der Marke durch eine CA, die solche Zertifikate ausstellt. Diese Zuordnung ist konstruktionsbedingt öffentlich.