Wer kennt das nicht. Man arbeitet an einer Schulung zum Thema IT-Sicherheit und erinnert sich plötzlich an die Frage einer Kollegin, was dieses Darknet eigentlich sei.
Ich konnte ihre Frage zwar in den Grundzügen beantworten, aber meine praktischen Erfahrungen damit hielten sich in Grenzen. Also beschloss ich kurzerhand, eine Website im Darknet verfügbar machen zu wollen.
Ich habe mich dazu an einer der vielen Anleitungen aus dem Internet orientiert, wobei viele davon aktuell nicht mehr funktionieren, nachdem die PGP-Keyserver abgeschaltet wurden. Außerdem habe ich die Servererstellung in der Hetzner Cloud (Empfehlungslink) miteingebaut.
Ich werde zuerst das Hosting einer lokalen Site erklären und am Ende des Beitrags beschreibe ich, wie man eine bestehende Website ins Darknet bringt.
Blogbeiträge wie diese entstehen üblicherweise so, dass ich zuerst versuche, möglichst schnell zu einem halbwegs brauchbaren Ergebnis zu gelangen, dabei die Stolpersteine auszumachen und zu lernen, wie man es ordentlich machen kann. Im vorligenden Fall hatte ich nach einer Stunde und zehn Minuten eine funktionsfähige Darknet-Site. Danach beginne ich noch einmal von Anfang an, versuche dabei möglichst sauber zu arbeiten und erstelle währenddessen den eigentlichen Blogbeitrag, wo dann das vorhin erlernte einfließt. Diesmal habe ich den Probedurchlauf mitsamt Zeitstempel hier dokumentiert. Ist der Beitrag veröffentlicht, lese ich ihn in den folgenden Tagen mehrmals und auf verschiedenen Geräten durch und nehme Optimierungen an Formulierungen und Layout vor.
Server erstellen
In der Hetzner Cloud erstelle ich einen neuen Server mit folgendne Einstellungen:
- Helsinki
- Ubuntu 20.04 (Focal)
- CX11
- Öffentliche IPv4 und IPv6
- SSH-Key
Der CX11 kostet (derzeit) 4,19€ pro Monat (inkl. einer IPv4-Adresse), wobei nach Minuten abgerechnet wird, in denen der Server existiert. Ob er ein- oder ausgeschaltet ist, ist dafür unerheblich.
Mit apt update && apt upgrade
bringe ich das Betriebssystem auf den neuesten Stand.
Tor installieren
Mit nano /etc/apt/sources.list
öffne ich die Liste der Software-Repositories und füge die Tor-Repositories hinzu, da diese in Ubuntu nicht standardmäßig enthalten sind. Dazu füge ich am Ende der Datei folgende Zeilen an.
deb [arch=amd64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main
deb-src [arch=amd64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main
amd64
undfocal
sind sinngemäß je nach Plattform und Betriebssystem anzupassen!
Damit die Signatur der Tor-Software geprüft werden kann, muss der entsprechende GPG-Key geladen werden:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
Danach können die Paketlisten mit apt update
aktualisiert und Tor installiert werden:
apt install tor deb.torproject.org-keyring
Tor konfigurieren
Mit nano /etc/tor/torrc
öffne ich die Konfigurationsdatei und Ent-Kommentiere darin folgende Zeilen, indem ich jeweils die #
entferne.
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
Um die Änderungen wirksam zu machen, muss Tor mit service tor restart
neu gestartet werden. Danach kann man mit cat /var/lib/tor/hidden_service/hostname
nachsehen, wie der neue Hostname im Tor-Netzwerk lautet. In meinem Fall beinhaltet die Datei folgendes:
xi7otaia7o2xo2j7uxjenocaqvelu5ps7g533szi7obkfuahqra47hqd.onion
Webserver installieren
Die Tor-Software funktioniert so, dass sie eine lokal gehostete Website im Tor-Netz zur Verfügung stellt. Somit müssen jetzt ein Webserver installiert und eine Website erstellt werden.
Ich installiere Apache mit apt install apache2
und prüfe anschließend, ob die Default Page von Apache bereits unter der .onion-Domain erreichbar ist.
Um Websites im Darknet aufzurufen, benötigt man den Tor Browser. Es handelt sich dabei um einen angepassten Firefox.
Website erstellen
Im Verzeichnis /var/www/html/
befindet sich die aktuelle index.html
. Diese öffne und bearbeite ich mit nano /var/www/html/index.html
indem ich den Inhalt durch mein Website ersetze. Als Beispiel wähle ich den Text Meine Website im Darknet funktiniert!
und teste die Funktion im Tor Browser.
Firewall aktivieren
Damit der Server besser geschützt ist, konfiguriere ich die Firewall so, dass eingehende Verbindungen nur per SSH erlaubt sind. Anschließend aktiviere ich die Firewall.
ufw allow ssh && ufw enable
Da der Zugriff auf die Website jetzt noch immer klappt, baut die Tor-Software die erforderlichen Verbindung(en) offensichtlich von sich aus nach "außen" auf.
Clearweb-Website im Darknet verfügbar machen
Falls man bereits eine reguläre Website betreibt und diese zusätzlich im Darknet erreichbar machen will, so ist das, wenn auch mit Abstrichen, möglich. Im konkreten Beispiel möchte ich meine Website resch.cloud im Darknet anbieten.
Zuerst kam mir der Gedanke, Apache als Reverse Proxy zu konfigurieren und darüber meine Website aus dem Clearweb im Darknet darzustellen. Natürlich, wie mir wenig später klar wurde, ergibt das keinen Sinn. Nachdem sämtliche Links in der Website auf die URLs im Clearweb verweisen, würde man ja bei jedem Click auf einen Link die Darkweb-Site verlassen.
Kopie der Clearweb-Site erstellen
Mit einem wget
-Kommando, das ich von hier abgeschaut und angepasst habe, lässt sich eine komplette Website in ein lokales Verzeichnis kopieren. Dabei werden beispielsweise absolute Links in relative konvertiert, damit man eben nicht bei jedem Klick die Darknet-Site verlässt.
In meinem Home-Verzeichnis erstelle ich eine neue Datei und mache diese ausführbar:
touch ~/website-download.sh
chmod +x ~/website-download.sh
Mit nano ~/website-download.sh
öffne ich die Datei und befülle sie folgendermaßen:
wget -k -E -r -l 10 -p -N -F https://resch.cloud/
cp -r resch.cloud /var/www/html/
Zu Testzwecken führe ich die Datei mit ./website-download.sh
aus und überprüfe, ob unter /var/www/html/
auch ein neuer Ordner mit der Website erstellt wurde.
Damit Apache die Website aus dem neuen Ordner ausliefert, muss die Konfiguration mit nano /etc/apache2/sites-enabled/000-default.conf
aufgerufen und der Wert von DocumentRoot
von /var/www/html
auf /var/www/html/resch.cloud
geändert werden.
Abschließend muss Apache mit systemctl restart apache2
neu gestartet werden und danach sollte unter der .onion-URL eine Kopie der Website resch.cloud zu sehen sein.
Links auf dieselbe Domain, also resch.cloud, funktionieren jetzt wie gewünscht. Externe Links, also Links auf andere Domains, führen natürlich weiterhin auf die Clearweb-Sites. Will man also eine ernsthafte Darknet-Site betreiben, so ist es vermutlich sinnvoller, diese komplett separat zu erstellen und zu pflegen.
Kopie aktuell halten
Damit Änderungen an der Clearweb-Site auch in der Kopie im Darknet ankommen, muss die Site regelmäßig neu kopiert werden. Das kann man durch einem Crontab-Eintrag mittels crontab -e
bewerkstelligen. Am Ende der Datei ist dann folgende Zeile hinzuzufügen:
30 15 * * * /home/root/download-website.sh >/dev/null 2>&1
In diesem Beispiel wird der Befehl täglich um 15:30 Uhr ausgeführt. Hier kann man sich Crontab-Einträge mit beliebigen Intervallen erstellen lassen.
Wenn du Feedback loswerden möchtest, nutze bitte das Kontaktformular.
Falls dir mein Beitrag weitergeholfen hat, würde ich mich sehr über einen kleinen Kaffee freuen. Oder du nutzt einen meiner Empfehlungslinks und sparst dir damit etwas Geld: Hetzner Cloud (20€ Guthaben), Ufodrive (30€ Rabatt), aWATTar. Außerdem habe ich eine Wunschliste bei Amazon.