Dieser Blog-Beitrag ist als allgemeiner Leitfaden für den Betrieb eines Spiegels eines Clear-Net-Dienstes als eepSite gedacht. Er baut auf dem vorherigen Blog-Beitrag über grundlegende I2PTunnel-Tunnel auf.
http://s5cxkrtjnsw3jg52c2rxb2d2jjl3y4ph3eqz373pziq33cnqj6ripyqd.onion
Kurz-URL: https://tinyurl.com/alivendor
Leider ist es wahrscheinlich unmöglich, alle möglichen Fälle abzudecken, in denen eine bestehende Website als eepSite zur Verfügung gestellt werden kann, da es einfach eine zu große Vielfalt an serverseitiger Software gibt, ganz zu schweigen von den praktischen Eigenheiten jeder einzelnen Software. Stattdessen werde ich versuchen, den allgemeinen Prozess der Vorbereitung eines Dienstes für die Bereitstellung im eepWeb oder anderen versteckten Diensten so spezifisch wie möglich darzustellen.
http://dif6iv5fktquosdnarb7ripcg5fmk4eyz4ixjwbzfldawqwn743a4xqd.onion
Kurz-URL: Kurz-URL: http://tinyurl.com/the-alphabay
Ein großer Teil dieses Leitfadens wird den Leser als Gesprächsteilnehmer behandeln. Wenn ich es wirklich ernst meine, werde ich den Leser direkt ansprechen (d.h. ich verwende “Sie” statt “man”) und ich werde häufig Abschnitte mit Fragen einleiten, von denen ich denke, dass der Leser sie stellen könnte. Schließlich handelt es sich hier um einen “Prozess”, an dem sich ein Administrator genauso “beteiligt” sehen muss wie an jedem anderen Dienst.
HAFTUNGSAUSSCHLÜSSE:
Obwohl es wunderbar wäre, ist es wahrscheinlich unmöglich für mich, spezifische Anweisungen für jede einzelne Art von Software zu geben, die man zum Hosten von Websites verwenden könnte. Daher erfordert diese Anleitung einige Annahmen von Seiten des Autors und etwas kritisches Denken und gesunden Menschenverstand von Seiten des Lesers. Um das klarzustellen, bin ich davon ausgegangen, dass die Person, die dieser Anleitung folgt, bereits einen Clear-Web-Dienst betreibt, der mit einer echten Identität oder Organisation verknüpft werden kann, und somit lediglich einen anonymen Zugang anbietet und sich nicht selbst anonymisiert.
Es wird also keinerlei Versuch unternommen, eine Verbindung von einem Server zu einem anderen zu anonymisieren. Wenn Sie einen neuen, nicht verlinkbaren versteckten Dienst betreiben wollen, der Server-zu-Server-Verbindungen herstellt, sind zusätzliche Schritte erforderlich, die in einem anderen Lernprogramm behandelt werden.
Davon abgesehen: Wenn Sie sicher sein können, dass ein brandneuer Dienst, der nicht für das Clear-Web verfügbar ist, niemals eine Server-zu-Server-Verbindung herstellt und keine Server-Metadaten in den Antworten an die Clients preisgibt, dann werden die so konfigurierten Dienste anonym sein.
Schritt Eins: Bestimme, welche Software auf deinem Server läuft
In der Praxis verwendet Ihr Webdienst wahrscheinlich eine Reihe von Dingen, um seine Zuverlässigkeit und Sicherheit zu verbessern. Das können Proxies, Reverse Proxies, Container, Tunnel, Intrusion Detection Systeme, Ratenbegrenzer, Load Balancer und vieles mehr sein. Zu Beginn sollten Sie Ihre Einrichtung durchgehen und feststellen, welche Software Sie verwenden und wofür Sie sie einsetzen.
Stellen Sie sich bei der Untersuchung Ihrer Software die folgenden Fragen
Diese Fragen sollen Ihnen helfen zu beurteilen, welche Teile Ihres Software-Stacks für Ihre I2P eepSite relevant sind.
Arbeitet diese Software auf der Grundlage von IP-Adressen?
Wenn Sie Software verwenden, die das Verhalten des Datenverkehrs auf der Grundlage der IP-Adresse des Absenders ändert, werden diese Dinge wahrscheinlich nicht mit I2P funktionieren, oder auf komplizierte oder unerwartete Weise funktionieren. Das liegt daran, dass die Adresse normalerweise der localhost ist, oder zumindest der Host, auf dem Ihr I2P Router läuft. Software, die manchmal Dinge auf der Basis von IP-Adressen tut, könnte Fail2Ban, iptables und ähnliche Anwendungen sein.
Funktioniert diese Software durch “Tagging” des Datenverkehrs mit zusätzlichen Metadaten ?
Manche Software kann so konfiguriert sein, dass sie dem Datenverkehr, den sie verarbeitet, Informationen hinzufügt. Wenn diese Informationen identifizierend sind, sollten sie natürlich nicht Teil der Dienstleistungskette sein, die dem I2P-Netzwerk zugänglich ist.
Funktioniert diese Software, indem sie mit einer entfernten Ressource kommuniziert? Wodurch wird dieses Verhalten ausgelöst ?
Einige Software kann auch auf entfernte Ressourcen zurückgreifen, um aktuelle Regeln und Sperrlisten zu finden, die zur Abwehr von Angriffen verwendet werden können. Einige davon könnten als Teil des Dienstes, der I2P zur Verfügung gestellt wird, nützlich sein, aber Sie sollten sicherstellen, dass die Regeln anwendbar sind und dass eine Regelaktualisierung nicht als Ergebnis einer normalen Client-Anfrage ausgelöst werden kann. Dies würde eine Server-zu-Server-Kommunikation erzeugen, die das Timing einer I2P-Kommunikation für einen Dritten offenbaren könnte.
Zweiter Schritt: Bestimmen Sie den Port, der an I2P weitergeleitet werden soll und finden Sie optional Ihr TLS-Zertifikat
Nun haben Sie alle Informationen zusammengetragen, die Sie benötigen, um Ihren Dienst an I2P weiterzuleiten. Sobald Sie den Punkt ausgewählt haben, an dem Sie Ihre Seite für I2P verfügbar machen möchten, müssen Sie den Port notieren, den Sie weiterleiten möchten. In einfachen Szenarien wird dies wahrscheinlich nur Port 80 oder Port 8080 sein. In komplexeren Szenarien könnte dies ein Reverse Proxy oder ähnliches sein. Notieren Sie sich den Port.
Einrichten einer gemeinsamen Identität für das Clearnet und Ihre eepSite
Wenn Sie eine nicht-anonyme Organisation sind, die ihren Nutzern durch die Bereitstellung eines versteckten Dienstes mehr Privatsphäre bieten möchte, können Sie eine gemeinsame Identität für die verschiedenen Versionen Ihrer Website einrichten. Da wir jedoch keine .i2p-Domänen zu clearnet TLS-Zertifikaten hinzufügen können, müssen wir dies auf andere Weise tun. Auch wenn Sie den HTTP-Port und nicht HTTPS weiterleiten, sollten Sie sich den Speicherort Ihres TLS-Zertifikats notieren, damit Sie es im letzten Schritt verwenden können.
Prozess Zwei: Leiten Sie Ihren Dienst an eine eepSite weiter
Herzlichen Glückwunsch! Sie haben den schwierigsten Teil hinter sich. Von nun an sind die Entscheidungen, die Sie treffen müssen, und die Konsequenzen, die sie haben werden, viel einfacher und leicht aufzuzählen. Das ist das Schöne an einer kryptographisch sicheren Netzwerkschicht wie I2P!
Schritt drei: Erzeugen Sie Ihre .i2p Tunnel und Adressen
Für eepSites müssen Sie einen HTTP Server Tunnel erstellen. Dabei handelt es sich um ein I2P-Ziel mit einigen speziellen Funktionen für das Hosten von HTTP-Diensten, um Dinge wie Ratenbegrenzung, Filterung und die Aufnahme von Headern zur Identifizierung des Ziels des Clients auf dem Server zu ermöglichen. Dies ermöglicht eine flexible Handhabung von Verbindungen, u.a. im Hinblick auf Lastausgleich und Ratenbegrenzung. Erkunden Sie diese Optionen und wie sie sich auf die Anwendungen beziehen, die Sie in Schritt eins betrachtet haben. Auch wenn eine sehr einfache Einrichtung leicht ist, können größere Sites davon profitieren, diese Funktionen zu nutzen.
Erstelle einen HTTP-Tunnel für deine Anwendung
Wenn Sie schon einmal einen Reverse-Proxy oder einen SSH-Tunnel konfiguriert haben, dann sollte Ihnen die Grundidee hier sehr vertraut sein. Der I2PTunnel leitet im Grunde genommen nur die Ports vom Host zum I2P Netzwerk weiter. Um dies über das Webinterface einzurichten, gehen Sie auf die I2PTunnel Konfigurationsseite.
Wählen Sie unten im Abschnitt “I2P Hidden Services” einen HTTP Service aus dem Dropdown-Menü und klicken Sie auf “Erstellen”.
config stuff
Sie werden sofort auf die detaillierte Tunnelkonfigurationsseite weitergeleitet, die wir nun von oben nach unten durchgehen werden. Die ersten, wichtigsten Einstellungen sind der Tunnelname und der Zielhost:Port. Der Ziel-Host:Port ist der Ort, an dem Sie die Adresse des Dienstes eingeben, den Sie an I2P weiterleiten. Sobald Sie das konfiguriert haben, wird Ihre Website über i2p verfügbar sein. Es gibt aber wahrscheinlich noch ein paar Dinge, die wir verbessern können.
Hostsachen
Als nächstes solltest du einen Hostnamen für deine eepSite wählen. Dieser Hostname muss nicht universell eindeutig sein, er wird vorerst nur lokal verwendet. Wir werden ihn später in einer Adresshilfe veröffentlichen. Wenn das Feld Lokales Ziel noch nicht mit Ihrem Base64-Ziel ausgefüllt ist, sollten Sie nach unten scrollen, die Tunnelkonfiguration speichern und zur Tunnelkonfiguration zurückkehren.
Schlüssel
Ein Stück weiter unten auf der Konfigurationsseite sind die Tunneloptionen verfügbar. Da Sie eine Seite haben, die nicht anonym sein soll, sondern anderen einen anonymen Zugang über ein alternatives Gateway ermöglichen soll, kann es sinnvoll sein, die Anzahl der Hops zu reduzieren, die der Tunnel im I2P-Netzwerk nimmt.
Tunnel-Zeug
Als nächstes folgen die Optionen für das verschlüsselte Leaseset. Da Ihre Seite nicht anonym ist, brauchen Sie wahrscheinlich keine Funktionen wie Blinding oder verschlüsselte Leasesets. Wenn Sie sich für verschlüsselte Leasesets entscheiden, sind Sie für niemanden erreichbar, es sei denn, Sie haben vorher einen Schlüssel mit ihm geteilt.
Die nächsten Abschnitte sind besonders nützlich, wenn Sie eine stark frequentierte Website betreiben oder DDOS-Angriffen ausgesetzt sind. Hier können Sie verschiedene Arten von Verbindungsbegrenzungen konfigurieren.
Ratenbegrenzungen
Danach gibt es einige weitere Möglichkeiten, Verbindungen nach Client-Eigenschaften zu filtern. Erstens können Sie den Zugang über Inproxies wie I2P.to und ähnliche blockieren. Da Sie bereits eine Clearnet-Präsenz haben, ist es vielleicht besser, dies zu ändern, wenn Sie I2P-Nutzer dazu ermutigen wollen, nur Ihre eepSite zu benutzen. Sie können auch Zugriffe über bestimmte User-Agents blockieren, z.B. kann das Blockieren von wget hilfreich sein, wenn Sie Spidering verhindern wollen. Schließlich, und von besonderem Interesse für Fail2Ban-Benutzer, gibt die Option “Eindeutige lokale Adresse pro Client” jedem Client seine eigene lokale IP-Adresse, anstatt dass sie alle für den Server von 127.0.0.1 aus zu sein scheinen.
Grobes Blockieren
Diese nächsten Optionen können Sie wahrscheinlich auf den Standardwerten belassen.
Reduziertes Tunnelmaterial
Zu guter Letzt können Sie eine erweiterte Filterdefinition einrichten. Das Schreiben von Filtern geht über das hinaus, was ich in diesem Dokument zu tun bereit bin, für weitere Informationen siehe die Formatspezifikation für jetzt.
Multi-Home eine Anwendung
Eine interessante Möglichkeit, die I2P bietet, ist das transparente Hosten der gleichen Seite auf mehreren Servern zur gleichen Zeit, was als “Multihoming” bezeichnet wird. Um Ihre Anwendung zu multihoming, müssen Sie zum Tunnelmenü zurückkehren und den Speicherort Ihrer privaten Schlüsseldatei auf einen eigenen, nicht freigegebenen Speicherort ändern.
Multihoming-Schlüssel
Wenn Sie fertig sind, kopieren Sie die neue Schlüsseldatei für Ihren neuen Multihoming-Dienst auf ein Speichergerät. Nun können Sie Ihre Dienst-/Tunnelkonfiguration mit denselben Schlüsseln auf jedem I2P-Router wiederherstellen und die Redundanz Ihres Dienstes erhöhen.
Vierter Schritt: Publizieren und authentifizieren Sie Ihre eepSite
Da Sie eine anonym zugängliche Instanz eines bestehenden Clear-Net-Dienstes betreiben, werden Sie wahrscheinlich eine bestehende Form des Vertrauens nutzen wollen, um Ihre eepSite-URL zu verbreiten, z. B. ein TLS-Zertifikat, das von einer anerkannten und seriösen Behörde unterzeichnet wurde. Was soll ich sagen, wir leben in einer unvollkommenen Welt.
Platzieren Sie Ihren .b32.i2p-Link auf Ihrer Clearnet-Seite
Der einfachste Weg, einen Link zu Ihrer eepSite bereitzustellen und dabei eine bestehende Seite zur Verbreitung des Links zu nutzen, ist die Verbreitung einer sogenannten “Base32”-Adresse. Die Base32-Adresse ist der Hash des öffentlichen Schlüssels Ihres I2P-Ziels, so dass sie nicht gefälscht werden kann, wenn sie von einer zuverlässigen Quelle bereitgestellt wird. Im Falle einer Clear-Net Seite mit einer versteckten Servicepräsenz, ist einer dieser Orte wahrscheinlich diese Clear-Net Seite.
Ihre base32-Adresse ist auf der Hauptseite der i2ptunnel-Konfiguration sichtbar und sieht wie folgt aus:
Ihre Benutzer können diesen Link direkt in ihren I2P-Browser kopieren und einfügen und es wird einfach funktionieren, ohne dass eine zusätzliche Konfiguration erforderlich ist.
Verteilen eines “Addresshelper” Links von Ihrer Clearnet Seite
Sie können auch einen menschenlesbaren Link verteilen, den Sie Ihren potentiellen Nutzern vorschlagen können, indem Sie die “Adressbuch”-Funktion von I2P nutzen, die es den Nutzern erlaubt, einen menschenlesbaren Domainnamen Ihrer kryptographisch gesicherten Identität zuzuordnen. Sie können dies tun, indem Sie einen speziell gestalteten Link verteilen, der den Domainnamen enthält, den Sie vorschlagen möchten, gefolgt von einem Schrägstrich, gefolgt von ?i2paddresshelper=, gefolgt von dem lokalen Ziel des Tunnels, den Sie gerade erstellt haben, welches Sie hier sehen können:
Lokales Ziel
Für die Beispielsite würde ein solcher Link also auf die folgende Adresse zeigen
http://mirror.i2p/? i2paddresshelper=HGPghWp0cEIjgjzqKQg~brL0TXkvV6IqyyEvQxOmVIecPIY~qFD0xYCwLFxTv2Hmi781ngqGo5OImRSeI-4cy167Pb1d0sTArtm6csq~HL8nj~UDP28q1DZFgR4mXX6VJMp7XJR~Mvjfzj0x7- JVaoMhrOKDE0P~tplH5Uik3xbS1rq3VF5vILx9lvkmSyZnu4bD7jk-h-na49gpk1Yx4znP0V3Mi9C6AAEzB4GexiSBxbFJyXFlO3byi-ca- jHqiMqtVE183TbXQNGPBI6FO-iBwYcFtIkWC0cBMneqj~kl3nXEn8RrO-yd-060oueyaza8NyN4FfSTHS5F1r9rru0ntX7GLg1k3QO7fTVhly0q2B0gZqnaHP808aTGD7OFuX69wT40uF3UWPmhsSE- M9AUYbYR64OFmk0jS70qnIApzWrjoye7K3KSaJuyVUQ1sD94aqRUKRKM2QCill6f8XmIyaCv02GkzEJxngBx009OwaDIvmEdOGpLJJLXw7QQBQAEAAcAAA==
Ich sage “vorschlagen”, weil I2P beim Besuch eines solchen Links um die Zustimmung des Benutzers bittet, diesen menschenlesbaren Namen zum lokalen Adressbuch des Benutzers hinzuzufügen. Das bedeutet, dass es keine Erwartung gibt, dass diese Domain von allen Besuchern des I2P Netzwerks akzeptiert wird, während im Fall von base32 Adressen das Gegenteil der Fall ist.
Registrierung bei einem Addresshelper Dienst
Nichtsdestotrotz gibt es öffentlich zugängliche Adress-Abonnement-Feeds und spezielle Dienste zur Entdeckung neuer menschenlesbarer Adressen, wie no.i2p, inr.i2p und stats.i2p. Diese Dienste werden manchmal auch als Address Helpers oder Jump Services bezeichnet und können auch automatisch abonniert werden. Dies kann besonders hilfreich für Nutzer Ihres Dienstes sein, die die Adresse erhalten möchten, ohne I2P zu verlassen oder Ihren Clearnetzdienst zu besuchen.