Erstellen eines versteckten Dienstes für eine Website in Nginx (clearnet und darknet)

Du willst eine Webseite mit einem Nginx-Server erstellen und diese Webseite auch als versteckten Dienst für Tor-Benutzer anbieten? Hier ist eine Anleitung, wie man das unter Debian GNU/Linux macht.

Zuerst installieren wir die folgenden Pakete:

sudo apt install nginx tor

Entkommentier dann die folgenden Zeilen in der Datei /etc/tor/torrc:

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

Es sollt so aussehen:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

Dann starten wir den Tor-Dienst neu:

sudo systemctl restart tor

Wenn Tor neu startet, erstellt es das Verzeichnis hidden_service/ und füllt es mit der URL des versteckten Dienstes (Datei hostname) und den öffentlichen und privaten Schlüsseln.

Wenn wir sowohl Nginx als auch Tor als Dienste laufen lassen und die Adresse in /var/lib/tor/hidden_service/hostname aufrufen, können wir die Nginx-Willkommensseite sehen.

Standardmäßig sollte sich die Website für Nginx im Pfad /var/www/html/ befinden. Wir müssen also nur die Website an diesem Ort entwickeln. Es spielt keine Rolle, ob du die Tor-URL oder eine herkömmliche URL verwendest, die Website ist dieselbe. Beachte, dass du relative URLs verwenden musst, damit Links zu anderen Seiten auf deiner Website mit .onion-URLs funktionieren.

Extra: Kopfzeile .onion verfügbar hinzufügen

Du musst einfach die folgende add_header-Zeile zum Teil der Datei, der location / sagt, in der Nginx-Konfigurationsdatei1 hinzufügen.

location / {
    # Aliaj aferoj, kiuj troviĝas en location /
    add_header Onion-Location http://[der_Name_deines_verstecktes_Dienst]/$request_uri;
}

Du musst [der_Name_deines_verstecktes_Dienst] durch den Namen ersetzen, der in der Datei /var/lib/tor/hidden_service/hostname zu finden ist und etwa so aussieht2.

location / {
    add_header Onion-Location http://63xpbju6u6kzge3k5mobwivob2seui4ka26l2iboraw5lxz262brgjad.onion/$request_uri;
}

  1. In diesem Fall /etc/nginx/sites-available/default

  2. Der Name des versteckten Dienstes ist ein Beispiel. Kopiere ihn nicht und füg nicht ihn so ein, sondern gib den Namen des von dir erstellten versteckten Dienstes ein. 

Kommentare