Einen Tor hidden service auf uberspace einrichten

Ich habe hier bereits erwähnt, dass ich meinen Blog als hidden service mit einer .onion-Domain verfügbar gemacht habe und möchte nun erläutern, wie ich dabei vorgegangen bin.

Disclaimer: Ich habe meinen Blog nur zusätzlich als hidden service verfügbar gemacht. Wenn jemand eine Seite ausschließlich als hidden service veröffentlichen will ist uberspace vermutlich der falsche Platz dafür. Soweit ich weiß liefert der Webserver dort nur Dateien aus, die unter ~/html/ liegen und diese sind auch öffentlich erreichbar. [Update]
Man könnte zwar die Auslieferung per .htaccess verbieten aber ich weiß nicht ob das so sauber ist. Wenn euer Leben davon abhängt, dass ihr nicht mit der .onion-Seite in Verbindung gebracht werdet, solltet ihr besser wo anders (selbst?) hosten.

Libevent installieren
Beispiel verwende ich release-2.1.8-stable:
Beispiel verwende ich release-2.1.8-stable:
Beispiel verwende ich release-2.1.8-stable:
iel verwende ich release-2.1.8-stable:

::: {.highlight} $ mkdir ~/build $ cd ~/build $ wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz $ tar xvf libevent-2.1.8-stable.tar.gz $ cd libevent-2.1.8-stable $ ./autogen.sh $ ./configure –prefix=${HOME} $ make $ make install :::

Tor installieren
herunter, in diesem Beispiel tor-0.3.0.7:
herunter, in diesem Beispiel tor-0.3.0.7:
herunter, in diesem Beispiel tor-0.3.0.7:
or-0.3.0.7`:

::: {.highlight} $ cd ~/build $ wget https://www.torproject.org/dist/tor-0.3.0.7.tar.gz $ tar xvf tor-0.3.0.7.tar.gz $ cd tor-0.3.0.7 :::

verbirgt:~~
::: {.highlight} $ openssl version -a :::
In meinem Fall sieht die Ausgabe so aus:

enssl version -a :::

In meinem Fall sieht die Ausgabe so aus:

::: {.highlight} OpenSSL 1.0.2h 3 May 2016 built on: reproducible build, date unspecified platform: linux-x86_64 options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_HEARTBEATS -Wa,–noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM OPENSSLDIR: “/package/host/localhost/openssl-1.0.2h/ssl” :::

Relevant ist der Pfad in der letzten Zeile, den wir ohne das /ssl am Ende zum Kompilieren mit einem aktuellen OpenSSL benötigen:

Nun kompilieren wir Tor mit einem aktuellen OpenSSL:

::: {.highlight} $ ./configure –enable-static-openssl –with-openssl-dir=/package/host/localhost/openssl –prefix=${HOME} $ make $ make install :::

Tor hidden service konfigurieren
eigenen Benutzernamen zu ersetzen ist:
eigenen Benutzernamen zu ersetzen ist:
eigenen Benutzernamen zu ersetzen ist:
eigenen Benutzernamen zu ersetzen ist:
men zu ersetzen ist:

::: {.highlight} SocksPort 0 Log notice file /home/USER/etc/tor/tor.log DataDirectory /home/USER/lib/tor HiddenServiceDir /home/USER/lib/tor/blog/ HiddenServicePort 80 127.0.0.1:80 :::

Tor auf Uberspace aktivieren
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
lassen:
sen:

::: {.highlight} $ cat <<EOF > ~/etc/tor/run #!/bin/sh exec ~/bin/tor -f ~/etc/tor/torrc 2>&1 EOF

$ chmod +x ~/etc/tor/run
$ ln -s ~/etc/tor ~/service/tor

:::

Tor kann nun mit svc -u ~/service/tor gestartet, mit svc -d ~/service/tor beendet oder mit svc -du ~/service/tor neu gestartet werden.

Domain konfigurieren
skt4odto3ycrngsv.onion, befindet:
::: {.highlight} $ cat ~/lib/tor/blog/hostname :::
skt4odto3ycrngsv.onion, befindet:
::: {.highlight} $ cat ~/lib/tor/blog/hostname :::

} $ cat ~/lib/tor/blog/hostname :::

Bei mir wurde die Adresse skt4odto3ycrngsv.onion ausgegeben.

da Zugriffe sonst unterbunden werden:
::: {.highlight} $ uberspace-add-domain -d skt4odto3ycrngsv.onion -w :::
Eine erfolgreiche Rückmeldung sieht z.B. so aus:

crngsv.onion -w :::

Eine erfolgreiche Rückmeldung sieht z.B. so aus:

::: {.highlight} The webserver’s configuration is adapted; it will get active within at most 5 minutes. Now you can use the following records for your dns: A -> 95.143.172.208 AAAA -> 2001:1a50:11:0:5f:8f:acd0:f3 :::

Das war es, schon kann eure Website als hidden service aufgerufen werden.

Subdomains
uberspace](https://wiki.uberspace.de/domain:subdomain):
::: {.highlight} $ ln -s /var/www/virtual/${USER}/html/blog /var/www/virtual/${USER}/blog.skt4odto3ycrngsv.onion :::
Zusätzlich muss die Subdomain aber auch noch dem Webserver bekannt gemacht werden:
::: {.highlight} $ uberspace-add-domain -d blog.skt4odto3ycrngsv.onion -w :::
gemacht werden:
::: {.highlight} $ uberspace-add-domain -d blog.skt4odto3ycrngsv.onion -w :::

:::

Nun ist die Seite, die unter ~/html/blog abgelegt ist, auch unter blog.skt4odto3ycrngsv.onion aus dem Tor-Netzwerk aufrufbar.

[Update 2017-05-31]

Im Schritt Tor auf Uberspace aktivieren muss es natürlich ~/etc/tor/torrc und nicht ~/etc/torrc heißen.

[Update 2017-06-07]
  • Man kann immer das OpenSSL aus dem Pfad /package/host/localhost/openssl zum kompilieren benutzen, auch wenn openssl version -a etwas anderes ausgiebt, siehe diesen Kommentar.
  • Der Befehl zum Anlegen des daemons war fehlerhaft, siehe diesen Kommentar.
[Update 2017-06-10]

Bei einem Gespräch per Email mit Uberspace wegen eines anderen Themas fiel mir auf, dass diese Aussage nicht ganz richtig ist. Wenn man direkt ein Verzeichnis /var/www/virtual/${USER}/skt4odto3ycrngsv.onion anlegt, statt nach ~/html/ zu linken, ist die Webseite ausschließlich im dark web und nicht im clear web erreichbar. Ich bleibe aber trotzdem bei meiner Empfehlung keinen shared hoster zu nutzen, wenn das eigene Leben von der Anonymität abhängt.

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.

In den Kommentaren können folgende Formatierungen genutzt werden.