Mit einem Tor-Onion-Dienst erreichen Menschen Ihre Website über das Tor-Netzwerk, ohne dass eine Seite die IP-Adresse der anderen erfährt. Der Server baut die Verbindung zu Tor selbst auf und benötigt daher überhaupt keinen offenen eingehenden Port. Dieser Leitfaden richtet einen solchen Dienst auf einem Ubuntu-VPS ein, wobei Nginx eine kleine Website ausliefert.
Was ein Onion-Dienst Ihnen bietet
- Eine
.onion-Adresse, die aus einem Schlüssel abgeleitet wird, sich also selbst authentifiziert und keine Zertifizierungsstelle braucht. - Ende-zu-Ende-Verschlüsselung zwischen Besucher und Ihrem Server innerhalb von Tor.
- Sie müssen die öffentliche IP-Adresse Ihres Servers nicht gegenüber Besuchern offenlegen.
Er macht die Inhalte Ihrer Website nicht legal und verbirgt keine Fehler, die Sie anderswo machen, etwa eine Clearweb-Domain, die auf dieselbe Maschine zeigt.
Schritt 1: Tor und Nginx installieren
sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor
Schritt 2: Nginx nur an localhost binden
Der Webserver darf nicht auf der öffentlichen Schnittstelle antworten, sonst lassen sich die Clearweb-IP und die Onion-Seite verknüpfen. Bearbeiten Sie Ihre Site-Konfiguration so, dass sie auf Loopback lauscht.
server {
listen 127.0.0.1:8080;
server_name _;
root /var/www/onion;
index index.html;
server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
Schritt 3: Den versteckten Dienst deklarieren
Fügen Sie diese Zeilen zu /etc/tor/torrc hinzu:
HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname
Der letzte Befehl gibt Ihre 56 Zeichen lange .onion-Adresse aus. Öffnen Sie sie zum Testen im Tor Browser. Sichern Sie den Ordner /var/lib/tor/my_site/: Der darin enthaltene Schlüssel ist Ihre Adresse, und sein Verlust bedeutet eine neue Adresse.
Schritt 4: Optionale Client-Autorisierung
Für einen privaten Dienst fügen Sie einen Schlüssel hinzu, den nur freigegebene Besucher besitzen. Erstellen Sie die Datei /var/lib/tor/my_site/authorized_clients/alice.auth mit einer Zeile der Form descriptor:x25519:PUBLIC_KEY und laden Sie Tor dann neu. Besucher ohne den passenden privaten Schlüssel können nicht einmal erkennen, dass der Dienst existiert.
Schritt 5: Die häufigsten Lecks schließen
- Verweisen Sie auf Ihren Seiten niemals auf Clearweb-Assets, Schriftarten oder Analysedienste.
- Gestalten Sie Fehlerseiten und Header neutral und behalten Sie
server_tokens offbei. - Halten Sie die Serveruhr genau; Tor benötigt das.
- Sperren Sie per Firewall alles außer SSH:
sudo ufw default deny incoming, da Tor keinen eingehenden Port braucht. - Betreiben Sie auf demselben Host keine Clearweb-Website, es sei denn, Sie haben beide vollständig getrennt.
Lesen Sie OpSec-Gewohnheiten für Server, bevor Sie etwas veröffentlichen, und nutzen Sie die Härtungs-Checkliste auf einem neuen Server.