Anonym im Internet - Seite 8

Das I2P-Netzwerk

I2P („Invisible Internet Project“) besteht aus einer Reihe auf Java basierender Anwendungen und Server/Router, mit der ein anonymisierendes und verschlüsselndes Netzwerk aus verteilten Rechnern errichtet wird. Das I2P-Netzwerk liegt mit seinen eigenen Protokollen, Funktionen zur Anonymisierung und Verschlüsselung als zusätzliche Schicht dem bekannten Internet auf.

Da Internet-Knoten keinen direkten Zugriff auf Dienste und Inhalte im I2P-Netzwerk haben, wenn sie selbst keine I2P-Teilnehmer sind, das I2P-Netzwerk keine Daten im Klartext transportiert und Rückverfolgbarkeit bzw. Zuordnung von Verbindungen und Angeboten zu einem I2P-Teilnehmer erschwert sind, wird gerne der modische Begriff des Darknet auf das I2P-Netzwerk angewendet. Die Netz-Knoten stellen die I2P-Teilnehmer des I2P-Netzwerks, die ähnlich wie beim Tor-Netzwerk als Teil von Transportketten aus mehreren I2P-Routern den I2P-Datenverkehr durch das Internet in I2P-Tunnels transportieren, die durch die I2P Verschlüsselungs- und Anonymisierungsfunktionen gebildet werden. Anders als im Tor Netzwerk nimmt jeder I2P-Teilnehmer, der seinen I2P-Router entsprechend konfiguriert hat, wechselnd die Rolle des Eingang-, Mittelsmann- und Ausgang-Knoten in den Tunnels aller anderen I2P-Teilnehmer innerhalb des I2P-Netzwerks ein.

Gleichzeitig können I2P-Teilnehmer des I2P-Netzwerks selbst Anbieter von Diensten sein, die von anderen Benutzern und ihnen selbst anonymisiert genutzt werden können. Dazu zählen z. B. eigene Websites, -foren und blogs, Torrent-Tracker oder Mailserver. I2P enthält die BitTorrent Anwendung I2Psnark, mit dem Benutzer über I2P Torrent-Tracker Daten austauschen können, eine Webserverkomponente, um Websites (sogenannte „Eepsites“) im I2P-Netzwerk aufzubauen, einen Webmail Client („SusiMail“) für den Postman E-Mail Dienst, mit dem E-Mails auch von Nicht-I2P-Nutzern empfangen und an sie per Webmail, SMTP und POP3 gesendet werden können.

Bei I2P handelt es sich also in erster Linie um ein geschlossenes Netzwerk (oder eben „Darknet“), das über Proxy Dienste von I2P-Nutzern um „Schnittstellen“ zum übrigen Internet erweitert werden kann. So gibt es z. B. einen I2P HTTP-Outproxy, über den das WWW außerhalb des I2P Netzwerks anonymisiert genutzt werden kann oder einen I2P IRC-Proxy zur Nutzung von IRC Servern. Umgekehrt können Internetnutzer, die I2P nicht installiert haben, auf I2P-Eepsites über WWW → I2P HTTP-Inproxys wie z. B. I2PinProxy und Invisible Internet Proxy zugreifen.

Die Bedienung und Einrichtung des eigenen I2P-Routers wird primär über die „I2P-Routerkonsole“ in einem beliebigen Webbrowser durchgeführt. Weitere bzw. erweiterte Konfigurationen können in den I2P Konfigurationsdateien (*.config) durchgeführt werden.

I2P zeichnet sich wie andere Anonymisierungs-Netzwerke durch eine Dokumentation und "Anwenderhilfe" (innerhalb der Routerkonsole) aus, die jenseits der Entwicklerkreise für viele I2P-Nutzer schwer bis überhaupt nicht zu verstehen sein dürfte.

Installation

Java

sudo aptitude install openjdk-7-jre

I2P

Auf der Seite Debian I2P Packages wird erläutert, wie man das I2P Launchpad Repository hinzufügt, um I2P über die Pakete des I2P Maintainer Teams zu installieren. Wer I2P lieber manuell installieren möchte, kann dieser Anleitung folgen:

  • Download des aktuellen Java Installationsarchivs i2pinstall_version.jar und der GnuPG Signaturdatei i2pinstall_version.jar.sig über die I2P oder geti2p.net Website. Details zu vorgenommenen Versionsänderungen können über die Releaseinformationen eingesehen werden.
  • Import des GnuPG Signaturschlüssels für das I2P Java Installationsarchiv mit GnuPG, der auf der Release Signing Key Seite angegeben wird, Überprüfen der angegebenen SHA-256 Prüfsumme und der GnuPG Signatur:

    sha256sum [/pfad/]i2pinstall_version.jar
    gpg [/pfad/]i2pinstall_version.jar.sig
  • Anlage des „i2p“ I2P Systemnutzers:

    sudo adduser --system --home /var/lib/i2p --shell /bin/false --no-create-home --group --disabled-password i2p
  • Installation von I2P nach /var/lib/i2p:

    sudo java -jar i2pinstall_version.jar -console
     
    press 1 to continue, 2 to quit, 3 to redisplay
    1
    Select target path
    /var/lib/i2p
    press 1 to continue, 2 to quit, 3 to redisplay
    1
  • Besitzrechte für den i2p Systemnutzer ändern:

    sudo chown -Rf i2p:i2p /var/lib/i2p
  • Angabe, dass I2P mit dem i2p Systemnutzer laufen soll und Modifikation, damit i2prouter unter Ubuntu startet:

    sudo vi /var/lib/i2p/i2prouter
     58   RUN_AS_USER="i2p"
    688 # ADDITIONAL_PARA="$ADDITIONAL_PARA \"$1\""  
          ADDITIONAL_PARA="$ADDITIONAL_PARA $1"
    698 # su - $RUN_AS_USER -c "\"$REALPATH\" $ADDITIONAL_PARA"
          sudo -H -u $RUN_AS_USER $REALPATH $ADDITIONAL_PARA
  • Anlage der Init-Symlinks, um I2P als Daemon zu starten:

    sudo /var/lib/i2p/i2prouter install

I2P-JBigI

Zur Beschleunigung der Ver- und Entschlüsselungsoperationen kann man sich nach dem ersten erfolgreichen Start von I2P gemäß der Rebuilding and Testing JBigI Anleitung die Java BigInteger Bibliothek (JBigI/jbigi) für das eigene System neu übersetzen und nutzen.

1. Installieren benötigter Bibliotheken und des Java-JDK

sudo aptitude install openjdk-7-jdk libgmp10 libgmp-dev

2. Download (und Überprüfung) des I2P-Quellcodearchivs

3. Entpacken des core/c/ Unterverzeichnisses aus dem Quellcodearchiv

4. Kompilieren, Testen und Installieren der libjbigi.so und libjcpuid.so Bibliothek

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
export I2P=/var/lib/i2p/
cd core/c/jbigi/
./build.sh dynamic
 
Running test with standard I2P installation...
Running test with new libjbigi...
 
cd ../jcpuid
./build.sh

Wenn die Tests (s. o.) ergeben, dass die Laufzeit der kompilierten libjbigi.so Bibliothek < Laufzeit der von I2P ausgewählten und im I2P Installationsverzeichnis gespeicherten Bibliothek ist, werden die kompilierten Bibliotheken in das I2P Installationsverzeichnis kopiert:

sudo cp ../jbigi/libjcpuid.so /var/lib/i2p/
sudo cp ../jbigi/lib/libjbigi.so /var/lib/i2p/
sudo cp lib/freenet/support/CPUInformation/libjcpuid-x86[version].so /var/lib/i2p/
sudo chown i2p:i2p /var/lib/i2p/libj*.so
sudo chmod 644 /var/lib/i2p/libj*.so

Erster Start

Nach dem ersten Start mit sudo service i2p start präsentiert sich die I2P-Routerkonsole im Browser so:

Um eine übersichtlichere Anzeige der Homepage zu erhalten, auf der man alle Daten auf einen Blick zu sehen bekommt, klickt man auf Home Seite anpassen und speichert die Benutze die alte Home Seite Option.

Danach sieht die Homepage so aus:

Der Netzwerk-Status steht noch auf Firewall aktiv statt OK, weil die enstprechende Konfiguration für den Paketfilter und/oder die Port-Weiterleitung aussteht.

Konfiguration

Es wird nur auf Einstellungen und Optionen eingegangen, die essentiell für den I2P Betrieb und die Nutzung der I2P Dienste sind. Zur Konfiguration ruft man Einstellungen in der I2P-Routerkonsole auf.

Bandbreite und Netzwerk

Wer über keine statische IP-Adresse verfügt, sollte sich ein Konto bei einem DynDNS Diensteanbieter einrichten, um den DynDNS Hostnamen in der Netzwerk-Konfiguration verwenden zu können.

Zuerst wird über EinstellungenBandbreite angegeben:

  1. der Anteil der Downstream-Bandbreite des Internetzugangs, der für eingehenden I2P-Datenverkehr genutzt wird.
  2. der Anteil der Upstream-Bandbreite des Internetzugangs, der für ausgehenden I2P-Datenverkehr genutzt wird.
  3. der Anteil des ausgehenden I2P-Datenverkehrs, der allen anderen I2P-Teilnehmern zur Verfügung steht bzw. zu dem man sich als I2P-Router an anderen I2P-Tunnels beteiligt.

Die Einstellungen im Beispiel werden für eine 750/72 kByte (6000/576 kBit bzw. 6/0,5 Mbit) ADSL-Leitung verwendet, wobei u. a. neben I2P weitere Dienste die Up- und Downstream-Bandbreiten beanspruchen. Für entsprechende Anbindungen mit größerer Bandbreite sind die Werte angepasst auf die eigenen Dienste-Angebote und -Nutzungen umzurechnen.

Beim Einsatz von Filesharing-Anwendungen wie I2Psnark oder Imule bzw. Diensten mit hohem Uploadaufkommen, muss deren maximaler Upstream-Bandbreitenverbrauch mit dem Anteil der Upstream-Bandbreite und dem Prozentwert für die Beteiligung abgeglichen werden. Beispiel:

Bandbreite kBytes
Upstream 40 60
I2Psnark -20 -20
70 % 28 42

Im ersten Fall sollen 40 kBytes der Upstream-Bandbreite für I2P bereitstehen und 70% für die Beteiligung – also 28 kBytes – abfallen. Es wird aber nicht berücksichtigt, dass bei Nutzung von I2Psnark öfters 20 kBytes verbraucht werden, so dass maximal 20 kBytes und nicht 28 kBytes für die Beteiligung zur Verfügung stehen. Deshalb wird I2P Tunnelanfragen bzw. die Beteiligung wg. Erreichen des Bandbreitenlimits abweisen müssen. Im zweiten Fall wurde I2Psnark berücksichtigt und bis auf 2 kBytes entspricht der zur Verfügung stehenden Upstream-Anteil dem zu erreichenden Beteiligungsgrad von 70%. Um die 2 kBytes auszugleichen, könnte zusätzlich in der I2Psnark Anwendung das Bandbreiten-Limit auf 18 statt 20 kBytes gesetzt werden.

Über EinstellungenNetzwerk folgt zunächst die Einstellung, welchen Hostnamen bzw. welche IP-Adresse, die für die anderen I2P-Router erreichbar sein müssen, I2P verwenden soll bzw. wie diese zu ermitteln sind.

Da davon ausgegangen wird, dass man entweder über eine statische IP-Adresse oder einen (DynDNS) Hostnamen verfügt, zur zusätzlichen Absicherung auf UPnP und andere Techniken verzichtet und für die leichtere Konfiguration von Paketfilter/Port-Weiterleitung statische Ports für I2P nutzt, wird in das entsprechende Feld die IP-Adresse oder der Hostnamen eingetragen.

Auf den sogenannten „Versteckten Modus“ sollte verzichtet werden, da die Option dem gesamten I2P-Netzwerk und allen anderen I2P-Teilnehmern nur schadet.

Hier folgt die Zuweisung der statischen Portnummern für UDP und TCP. Beide Ports sind in Paketfiltern freizuschalten und in Routern zu dem Rechner weiterzuleiten, auf dem I2P läuft. Wenn man Verbindungen über die UDP/TCP Ports „deaktivieren“ will, kann man auch direkt auf I2P verzichten.

Für die zu verwendende IP-Adresse bzw. den zu verwendenden Hostnamen gilt das oben Gesagte.

Service

Da I2P automatisch als Daemon während des Systemstarts gestartet wird und man jederzeit die I2P-Routerkonsole im Browser öffnen kann, erübrigt sich die folgende Option unter Service und sie kann deaktiviert werden, falls aktiv:

Aktualisierungen

Sofern I2P über das PPA Repository oder manuell installiert und aktualisiert wird, kann unter Aktualisierungen die Aktualisierungsregel auf Nur benachrichtigen eingestellt werden. Andernfalls wird eine Archivdatei heruntergeladen und die Signatur überprüft oder auch danach installiert.

Tunnel

I2P unterscheidet zwischen drei Tunneltypen:

  • Erkundungstunnel
  • Kliententunnel, die mehrere I2P-Anwendungen gemeinsam nutzen
  • separate Kliententunnel für einzelne I2P-Anwendungen

Für jeden Tunneltyp werden Eingang-Tunnel für eingehenden Datenverkehr und Ausgang-Tunnel für ausgehenden Datenverkehr gebildet. Für die Eingang- und Ausgang-Tunnel wird festgelegt:

  • Anzahl der beteiligten I2P-Router
  • Anzahl zu bildender bzw. vorzuhaltender Eingang- bzw. Ausgang-Tunnel
  • Anzahl der Ersatztunnel

Erkundungstunnel & netDB

Die Auswahl der obigen Parameter für Erkundungstunnel wird direkt in den Einstellungen der I2P-Tunnel vorgenommen.

Erkundungstunnel werden für das Management der Kliententunnel verwendet wie z. B. für die Zufallsauswahl geeigneter I2P-Knoten, das Testen geschalteter I2P-Tunnel und Nutzung der netDB. Erkundungstunnel werden nicht für die Verbindungen anderer I2P-Teilnehmer oder die eigene Nutzung von I2P-Diensten über Kliententunnel verwendet.

Die netDB ist eine Adress-Datenbank, die über mehrere Floodfill I2P-Router per Kademlia DHT verteilt, Informationen und Daten der teilnehmenden I2P-Router (Routerinfos) speichert und aktualisiert. I2P-Router mit hoher Bandbreite und geringer Latenz werden automatisch zu Floodfill I2P-Routern, die gemeinsam mit anderen Floodfill I2P-Routern die netDB verwalten und vorhalten. Außerdem enthält die netDB die aktuellen Daten, über welche Eingang-Gateway Router und Eingang-Tunnel I2P-Eepsites bzw. I2P-Dienste zu erreichen sind (Leasesets). Statistische und grafische Auswertungen der gesamten netDB bietet die stats.i2p Eepsite:

Ein Teil der netDB, bestehend aus den Daten der I2P-Router, zu denen sich der eigene I2P-Router über Erkundungstunnel, aufgrund von Abfragen und Beteiligungen verbunden hat, wird lokal im netDb/ Verzeichnis zwischengespeichert.

Standardmäßig werden z. Zt. laut I2P Client Protocol (I2CP) für die Eingang- und Ausgang-Tunnel zwei I2P-Router verwendet. Da sich für die Ende-zu-Ende Verbindungen zwischen dem eigenen I2P-Router und dem I2P-Router des Endpunkts bzw. I2P-Dienstes Eingang-Tunnel und Ausgang-Tunnel 2x miteinander verbinden, sind insgesamt vier externe I2P-Router am Datentransport für den ausgehenden und eingehenden Datenverkehr beteiligt:

Ausgehender Datenverkehr >
Alice (A-Gateway) → A-Mittelsmann → A-Endpunkt → E-Gateway → E-Mittelsmann → Bob (E-Endpunkt)
< Eingehender Datenverkehr
Alice (E-Endpunkt) ← E-Mittelsmann ← E-Gateway ← A-Endpunkt ← A-Mittelsmann ← Bob (A-Gateway)

Theoretisch kann man maximal sieben I2P-Router in jedem Tunnel verwenden. Für die Anonymisierung bei ausreichender Geschwindigkeit und Datenübertragungsmenge reichen praktisch drei I2P-Router. Man kann entweder immer drei Router verwenden oder zwei Router, die um einen dritten Router als Zufallskomponente erweitert werden können – der Tunnel wird mal mit zwei, mal mit drei Routern gebildet.

Theoretisch können für jeden Tunneltyp maximal sechszehn Eingang-Tunnel und unbegrenzt viele Ausgang-Tunnel gebildet und vorgehalten werden. Die I2P-Routerkonsole limitiert die Anzahl auf maximal sechs Tunnel und praktikabel sind zwei bis drei Eingang- bzw. Ausgang-Tunnel. Die Ersatztunnel sollen zur sofortigen Umschaltung auf einen Ersatztunnel dienen, falls die eigentlichen Eingang- bzw. Ausgang-Tunnel zusammenbrechen. Da jeder Tunnel nur eine begrenzte Lebensdauer von 10 Minuten hat und danach durch einen neu gebildeten Tunnel ersetzt wird, erübrigen sich eigentlich Ersatztunnel, wenn man mindestens zwei Eingang- und Ausgang-Tunnel unterhält. Mögliche (sinnvolle) Kombinationen wären also:

Anzahl E/A-Tunnel Anzahl Ersatztunnel Anonymisierung
1 1 „mittel“
2 0 „hoch“
2 1 „hoch“
3 0 „sehr hoch“

Bei der Wahl der Anzahl an I2P-Routern pro Tunnel und der Anzahl der Eingang- und Ausgang-Tunnel sollte man zusätzlich die zur Verfügung stehende Up- und Downstream-Bandbreite des Internetzugangs, die CPU und RAM Austattung des eigenen Rechners (oder Servers), das eigene I2P-Nutzungsprofil in Betracht ziehen und dabei berücksichtigen, welche Einstellungen dem I2P-Netzwerk insgesamt eher nutzen oder schaden.

Die obigen Ausführungen gelten ebenso für Kliententunnel.

Klienten- & Servertunnel im Tunnel-Manager

Da die Einstellungen für Kliententunnel in den Einstellungen der I2P-Tunnel nur temporär gelten, kann man sie besser ignorieren und stattdessen sofort permanente Einstellungen über den I2P Tunnel-Manager vornehmen.

I2P wird mit einem Server- und sechs Kliententunnel installiert. Der „I2P webserver“ Servertunnel ist nur von Belang, wenn man eine Eepsite über I2P hosten will. Sollen nicht verwendete Tunnel deaktiviert werden, klickt man zuerst den Stopp Button an, danach den Namen des Tunnel und deaktiviert die Automatischer Start Checkbox. Neben dem Servertunnel für eine Eepsite bzw. HTTP Server können Servertunnel für IRC Server oder Medien Server, die Streams per UDP ausliefern, erstellt werden.

Die Standard Kliententunnel:

Klient Informationen
HTTP Proxy über den Proxy werden als „Eepproxy“ Anfragen zu internen I2P-Eepsites und I2P Diensten und als „Outproxy“ zu externen Websites ohne TLS-Verschlüsselung weitergeleitet. Der Tunnel sollte immer aktiviert sein.
IRC Proxy Nutzung der internen I2P IRC-Server
Monotone Nutzung des I2P Quellcode-Repository
Postman E-Mails mit Thunderbird u. a. MUAs per SMTP und POP3 senden und abholen. Alternativ kann Webmail über die susimail I2P Anwendung verwendet werden. Anonyme Kontoregistrierung bei Postman nötig.
HTTPS Proxy über den Proxy werden als „Outproxy“ Anfragen zu externen Websites mit TLS-Verschlüsselung weitergeleitet

Die HTTPS Proxys oder andere Proxys können ihrerseits die Anfragen zusätzlich über Tor weiterleiten, so dass bei einem parallel installierten Tor der HTTPS Proxy unnötig ist. Wie ein Proxy von einem I2P-Teilnehmer eingerichtet wurde, erfährt man entweder über dessen I2P-Eepsite, falls eingerichtet oder im I2P-Forum.

Zusätzlich zu den genannten Tunnels können SOCKS Kliententunnel und Streamer Kliententunnel für Medienstreams eingerichtet werden.

Die 127.0.0.1:Port Angabe der Kliententunnel wird in den Proxyeinstellungen der externen Anwendung (z. B. Webbrowser, IRC- und Mail-Client) eingetragen, um deren Verbindungen in oder durch das I2P-Netzwerk zu leiten.

Hat man den Namen eines Kliententunnel angeklickt, können in den erweiterten Netzwerkoptionen die gleichen Tunnel Einstellungen wie in der Konfiguration der Erkundungstunnel vorgenommen werden. Standardmäßig sind für Kliententunnel jeweils zwei Tunnel mit drei I2P-Routern für den eingehenden und ausgehenden Datenverkehr ohne zusätzliche Zufallsauswahl („Varianz“) und Ersatztunnel festgelegt.

Unterhalb des Ausgehende Proxies Feldes befindet sich die in der deutschprachigen Oberfläche schwer lesbare verschiedene Klienten („shared clients) Option. Wenn die Option aktiviert ist, hat das zwei Auswirkungen:

  1. die Tunnel Einstellungen werden für alle Kliententunnel mit aktivierter Option gleich gesetzt, wenn man die Einstellungen in einem Kliententunnel ändert. D. h., will man für Kliententunnel unterschiedliche Tunnel Einstellungen setzen, muss die Option deaktiviert sein
  2. alle Kliententunnel mit aktivierter Option benutzen gemeinsam gleiche Tunnel, was u. U. zu Identitäts-Korrelationen beiträgt. Deshalb die Option nur für die Postman Kliententunnel aktivieren und im Zweifelsfall separate Kliententunnel ohne gemeinsame Tunnelnutzung für jeden Anwendungstyp einrichten. Siehe dazu Shared Clients, Correlation, and Collusion und Rename misleading term "shared clients".

Wenn I2P Anwendungen wie z. B. I2Psnark eigene Tunnel Einstellungen anbieten, werden die Einstellungen in der Anwendung selbst vorgenommen. Im I2Psnark Beispiel können neben Anzahl und Länge der Tunnel zusätzliche Optionen des I2P Client Protokolls (I2CP) in das entsprechende Feld eingetragen werden.

Klienten

Die Einstellungen für die Klienten, das Klienten-Interface und die WebApplikationen werden alle in der Konfiguration der I2P-Klienten vorgenommen. Auf die Installation und Konfiguration von Zusatzprogrammen (Plugins) wird später eingegangen.

Klienten-Konfiguraton

Java-Klient Autostart/Starten Informationen
Routerkonsole Ja für die Verwendung der I2P-Routerkonsole im Webbrowser
SAM ggf. wenn man externe Anwendungen und Plugins einsetzt, die über die SAM (Simple Anonymous Messaging) Brücke an den I2P-Router angebunden werden
Anwendungstunnel Ja für die Verwendung der Erkundungs- und Kliententunnel
Webserver ggf. für das Hosten einer eigenen Eepsite oder den Einsatz externer Anwendungen und Plugins, die einen Webserver verwenden
Routerkonsole
Browseranzeige
Nein kein automatischer Start eines Webbrowsers zur Anzeige der I2P-Routerkonsole
BOB ggf. wenn man externe Anwendungen und Plugins einsetzt, die über die BOB (Basic Open Bridge) Brücke an den I2P-Router angebunden werden

Erweiterte Einstellungen Klienten-Interface

Die Eintellungen des externen I2CP-Interfaces (I2P-Klienten-Protokoll) sind nur von Belang, wenn man externe Java-Anwendungen, die außerhalb der I2P JVM (Java Virtual Machine) in einer eigenen JVM laufen und das I2P-Klienten-Protokoll (I2CP) unterstützen, an I2P anbinden will. Da die meisten externen Nicht-Java Anwendungen entweder über den I2P HTTP-Proxy, SAM oder BOB an den I2P-Router angebunden werden, während interne Java-basierte I2P-Anwendungen und Plugins innerhalb der I2P JVM laufen und das interne I2P-Klienten-Protokoll nutzen, kann die Einstellung mit Deaktiviert - Klienten außerhalb dieses Javaprozesses können sich nicht verbinden i. d. R. abgeschaltet bleiben.

WebApp-Einstellungen

WebApplikation Autostart/Starten Informationen
Adressbuch Ja „Namensauflösung“, Aktualisierung und Verwaltung der I2P-Hostnamen („host.i2p“) von Eepsites/Diensten
I2Psnark ggf. I2Psnark ist die interne Standard BitTorrent Anwendung. Alternativ kann man Robert (per BOB) einsetzen.
I2Ptunnel Ja siehe Klienten- & Servertunnel im Tunnel-Manager
Routerkonsole da die Routerkonsole bereits über die Klienten-Konfiguration automatisch gestartet wird, ist die Checkbox ausgegraut.
SusiDNS Ja Web-Oberfläche zur Nutzung und Konfiguration der Adressbuch Anwendung
SusiMail ggf. für die Verwendung des Postman E-Mail Dienstes über die SusiMail Web-Oberfläche, falls keine externe E-Mail Anwendung wie z. B. Thunderbird eingesetzt wird.

Schlüsselbund

Hat der Betreiber einer Eepsite bzw. eines I2P-Dienstes in den Servereinstellungen die Leaseset-Verschlüsselung aktiviert, muss man im Besitz der Kontaktdaten und des Leaseset-Schlüssels sein, um die Eepsite aufrufen zu können. Nachdem man den Hostnamen und den Zielschlüssel der Eepsite in sein Privates Adressbuch aufgenommen hat, fügt man auf der Schlüsselbundseite in das obere Feld den Hostnamen, den Base 64 Hash oder den kompletten Zielschlüssel (wie in den Details zu einem I2P-Hostnamen zu sehen) und in das untere Feld den Leaseset-Schlüssel ein.

Reseeden

Nach dem ersten Start muss der eigene I2P-Router einmalig RouterInfo Informationen aktueller I2P-Router anderer I2P-Teilnehmer bzw. einen aktuellen Snaphot eines Teils der netDB erhalten, um die Erkundungs- und Kliententunnel zu bilden und sich selbst in das I2P-Netzwerk zu integrieren.

Auch zu einem späteren Zeitpunkt kann es nötig sein, den Snapshot über einen Reseed zu erneuen – z. B., wenn der eigene I2P-Router über einen längeren Zeitraum inaktiv war oder sich aufgrund von Fehlern und falschen Netzwerk-Einstellungen über einen längeren Zeitraum nicht in das I2P-Netzwerk integrieren konnte.

Reseed-Einstellungen

In beiden Fällen kann man in den Reseed-Einstellungen mit dem Änderungen speichern und Reseed beginnen Button einen Reseed auslösen. Der Reseed wird extern über das normale Internet von Webservern bezogen, deren angezeigte URLs hartkodiert im I2P Code gespeichert sind.

Für den sicheren Bezug unverfälschter RouterInfo Daten im Reseed sollte die nur SSL verwenden Option aktiviert sein, was voraussetzt (aber nicht garantiert ist), dass die Zertifikate der Webserver gültig sind. Schlägt deshalb ein Reseed fehl, kann immer noch auf die Probiere zunächst SSL, dann nicht-SSL Option umgeschaltet werden. Zusätzlich kann der Bezug über einen HTTP-Proxy erfolgen. Im obigen Beispiel wird ein Reseed über den lokalen Privoxy Proxy mit Weiterleitung über das Tor-Netzwerk zur Anonymisierung des Reseeds durchgeführt. Ein anderer Grund könnte die vorgegebene Verwendung eines Zwangs-Proxy sein.

Erweitert

Die Optionen und ihre Werte, die in den Erweiterten I2P-Einstellungen angezeigt werden, sind in der router.config Datei gespeichert. Sie umfassen mehrheitlich Einstellungen, die über die Konfiguration in der I2P-Routerkonsole vorgenommen wurden. In der Regel ist es nicht notwendig, hier Änderungen vorzunehmen, aber man kann zusätzliche Optionen setzen, die z. B. in der I2P Dokumentation, FAQ oder in den I2P Foren und Wikis genannt werden. Beispiele:

Einstellung Informationen
i2p.dir.app=/pfad Datenverzeichnis für alle I2P-Anwendungen.
Enthält u. a. das Eepsite/, i2psnark/ Unterverzeichnis. Alle i2p.dir.* Werte sind absolute Pfadangaben, die z. T. über Optionen im i2prouter Startskript und in der wrapper.config überschrieben werden.
i2p.dir.base= I2P Basis- bzw. Installations-Verzeichnis.
Enthält u. a. das certificates/, docs/, geoip/, lib/, licenses/ und webapps/ Unterverzeichnis, das i2prouter Startskript, den i2psvc Java-Wrapper und seine wrapper.config Konfigurationsdatei
i2p.dir.config= Verzeichnis für Konfigurationsdateien.
Enthält u. a. das addressbook/ Unterverzeichnis mit den Konfigurationdateien für die SusiDNS Abonnements und Einstellungen, clients.config (für I2P Java-Klienten), hostsdb.blockfile (Adressbuch-Datenbankdatei), i2psnark.config (für I2Psnark BitTorrent), i2ptunnel.config (für Server- und Kliententunnel), prngseed.rnd (für Pseudo-Zufallsdaten), webapps.config (für I2P WebApplikationen).
i2p.dir.log= Verzeichnis, in dem das log/ Unterverzeichnis für die Logdateien des I2P-Routers erstellt wird.
i2p.dir.pid= Verzeichnis für die i2p.pid (I2P/i2prouter Daemon), routerjvm.pid (I2P Java/Wrapper JVM) PID-Dateien und die router.ping Datei.
i2p.dir.router= Datenverzeichnis für den eigenen I2P-Router.
Enthält u. a. das netDb/, peerProfiles/, keyBackup/, rrd/ Unterverzeichnis und die router.* Dateien.
i2p.dir.temp= Verzeichnis für temporäre Unterverzeichnisse und Dateien
i2p.insecureFiles=true statt der Dateiberechtigungen, die I2P-Komponenten setzen (in der wrapper.config kann zusätzlich wrapper.umask=0022 und wrapper.java.umask=0022 definiert sein), wird die umask des Systems bzw. die den I2P-Prozessen zugeordnete umask angewendet.

Zum Beispiel kann man auch i2p.insecureFiles=true und umask 027 im I2P Startskript setzen, während die beiden wrapper umask Optionen auskommentiert werden, um Verzeichnisse mit 750 und Dateien mit 640 anlegen zu lassen.
time.disabled=true
time.sntpServerList=localhost
Wenn man bereits eine Zeitsynchronisation vornimmt, kann man mit der ersten Option die Abfrage von Zeitservern durch I2P selbst abschalten. Mit der zweiten Option können I2P in einer komma-getrennten Liste die Adressen der abzufragenden NTP Zeitserver vorgegeben werden.

Adressbücher und SusiDNS zur Namensauflösung

I2P-Hostnamen

SusiDNS Anzeige der Details eines I2P-Hostnamen

I2P-Router, die über Web-, IRC- oder Medien-Server einen Dienst anbieten wollen, benötigen zur Adressierung seitens der I2P-Nutzer einen I2P Pseudo-Domainnamen bzw. einen I2P-Hostnamen. Den Hostnamen vergibt der Diensteanbieter bei der Einrichtung des Servertunnel zu seinem I2P Host. Will ein I2P-Nutzer z. B. die obige Eepsite der I2P Homepage in seinem Webbrowser aufrufen, gibt er in der URL als Domainnamen den I2P-Hostnamen www.i2p2.i2p oder die Base32 kodierte Adresse rjxwbsw4zjhv4zsplma6jmf5nr24e4ymvvbycd3swgiinbvg7oga.b32.i2p an.

Wenn ein I2P-Hostname von einer I2P Anwendung über ihren Kliententunnel bzw. die I2Ptunnel Anwendung und den I2P Proxys angefragt wird, löst die Anfrage die Suche und Auflösung des I2P-Hostnamens in den Zielschlüssel aus, die von einer internen I2P Komponente durchgeführt wird. Die Komponente durchsucht dafür zuerst das Private, dann das Master und zuletzt das Router Adressbuch auf einen übereinstimmenden Adresseintrag. Der zuerst aufgefundene Eintrag wird verwendet und die anderen Adressbücher nicht weiter durchsucht.

Sind die Adressdaten und der I2P-Hostname in einem Adressbuch gespeichert, aber die I2P-Eepsite nicht erreichbar, weil sie gerade offline ist oder die nötigen Ein- und Ausgang-Tunnel noch nicht geschaltet wurden, wirft die I2P-Routerkonsole folgende Meldung aus:

In dem Fall kann man versuchen, die Verbindung über ein wiederholtes Neuladen der URL herzustellen, was die Schaltung der Tunnel auslöst – falls die I2P-Eepsite nicht offline ist.

Adressbücher

In I2P werden I2P-Hostnamen der Eepsites bzw. Dienste im Privaten, Master und Router „Adressbuch“ in der hostsdb.blockfile Datenbankdatei gespeichert. In älteren I2P Versionen wurde das Private Adressbuch in der privatehosts.txt, das Master Adressbuch in der userhosts.txt und das Router Adressbuch in der hosts.txt Datei gespeichert und verwaltet. Nach der I2P Installation sind zunächst nur das Master und Router Adressbuch in Gebrauch.

Master Adressbuch

In das Master Adressbuch kann der I2P-Nutzer Adressen manuell eintragen, z. B. neue Eepsites, die von Diensteanbietern in I2P Foren bekanntgegeben wurden. Dazu ruft er in SusiDNS das Master Adressbuch auf und trägt den I2P-Hostnamen und den Base64 kodierten, 516-byte langen Zielschlüssel in beide Felder ein. Der Zielschlüssel entspricht im herkömmlichen DNS-System der IP-Adresse.

SusiDNS Master Adressbuch
Abonnements

Damit nicht jeder I2P-Nutzer für jede aktuelle und neue Eepsite Einträge im Master Adressbuch vornehmen und pflegen muss, kann der I2P-Nutzer über die Adressbuch I2P-Anwendung die Router Adressbücher anderer, vertrauenswürdiger I2P-Nutzer, die ihr Router Adressbuch veröffentlichen, in regelmäßigen Zeitabständen als "Abonnements" beziehen, importieren und aktualisieren lassen. Dazu trägt er die URLs der Router Adressbücher in das SusiDNS Abonnements-Formular ein. Die Abonnement Eepsites enstprechen im herkömmlichen DNS-System den DNS-Servern.

SusiDNS Abonnements
Router Adressbuch

Nach Import und Aktualisierung der externen Router Adressbücher werden deren Einträge mit den Einträgen im Master Adressbuch zusammengeführt und im eigenen Router Adressbuch der Datenbankdatei gespeichert. Das eigene Router Adressbuch beinhaltet damit alle bekannten I2P-Eepsites.

Mit aktiviertem I2P-Webserver und aktiver Eepsite kann jeder I2P-Nutzer optional sein Router Adressbuch in eine (hosts.txt) Datei im docroot Verzeichnis der Eepsite speichern und dann veröffentlichen lassen. Dafür muss in den SusiDNS Einstellungen die should_publish=true Option gesetzt werden.

Über die SusiDNS Router Adressbuch Oberfläche kann man nach Eepsites suchen, sich Details zu einem I2P-Hostnamen anzeigen lassen oder eine Eepsite aufrufen:

SusiDNS Router Adressbuch

Man könnte auch im Router Adressbuch neue Adressen hinzufügen, ersetzen oder löschen, was aber wegen der Infrastruktur zur I2P „Namensauflösung“ und dem Abonnement-System keinen Sinn macht.

Für das Löschen eines Eintrags im Master und Privaten Adressbuch ruft man die Details des Eintrags auf und klickt den Eintrag löschen Button an.

Eine aktuelle Übersicht aller Eepsites, die tatsächlich existieren, ist das Router Adressbuch nicht. Eepsites kommen und gehen, aber ihre Einträge im Adressbuch bleiben nach ihrer Entfernung solange bestehen, wie sie nicht von den I2P-Teilnehmern, die ihr Router Adressbuch veröffentlichen, aus ihren Router Adressbüchern gelöscht werden – sprich: das Router Adressbuch enthält jede Menge „Karteileichen“.

Realistische Übersichten bieten eher I2P Status-Eepsites, die – sofern selbst existent – ihrerseits I2P-Eepsites regelmäßig prüfen, ob sie noch existent bzw. online erreichbar sind. Beispiele sind die I2PinProxy Statusseite, identiguys Eepstatus, die stats.i2p Recently added Hosts Seite oder All active hosts in I2P von inr.i2p.

Privates Adressbuch

Einträge in das Private Adressbuch werden genauso wie beim Master Adressbuch vorgenommen. Die Einträge im Privaten Adressbuch werden nicht in das eigene Router Adressbuch integriert und auch nicht veröffentlicht. Deshalb eignet sich das Private Adressbuch für drei Zwecke:

  • Aufnahme der privaten Adressdaten von Eepsites, die man vom Betreiber erhalten hat, wobei der Betreiber seine Eepsite nicht veröffentlicht und in I2P verborgen betreibt. Zusätzlich kann der Betreiber seine Leaseset Daten verschlüsseln. In diesem Fall wird zusätzlich z. B. der I2P-Hostname und der Leaseset-Schlüssel in den Schlüsselbund aufgenommen.
  • Aufnahme des I2P-Hostnamen einer fremden Eepsite mit einem anderen I2P-Hostnamen (Aliasname), der vielleicht leichter zu merken ist.
  • Eintrag eines I2P-Hostnamen für eine eigene Eepsite (Homepage, Blog oder Forum), die zu Testzwecken vorerst nur lokal zugänglich sein soll – z. B. ist dann das Pebble Blog nicht nur über http://127.0.0.1:7661/blog/ bzw. http://string.b32.i2p/blog/ aufzurufen, sondern bereits über http://hostname.i2p/.

Sprungdienst-Adresshelfer

Wenn im Webbrowser eine I2P-Eepsite aufgerufen wird, deren Adressdaten noch nicht in einem der Adressbücher enthalten sind, bietet I2P an, die Adressdaten über einen Sprungdienst zu suchen.

Sprungdienste sind oft I2P-Eepsites, die wie stats.i2p über die neusten I2P-Eepsite Adressdaten verfügen, weil man bei ihnen eine neue I2P-Eepsite registrieren kann oder es sind I2P-Eepsites, die eine große Anzahl externer Adressbücher abonniert haben.

Hat ein Sprungdienst die Adressdaten in seinen Adressbüchern gefunden, werden sie in der I2P-Routerkonsole ausgegeben und man kann entweder die I2P-Eepsite sofort aufrufen oder in einem eigenen Adressbuch speichern lassen:

Die URLs der Sprungdienste kann man in der Konfiguration des Kliententunnel für den I2P HTTP-Proxy im Liste der Sprung-URLs Feld eintragen und ändern:

Verweise auf aktuelle Seite