0. VorwortDieses How to basiert auf dem englischsprachigen How to von aum, es allerdings von mir an einigen Stellen aktualisiert und um weitere Hinweise ergänzt. Leider weiß ich nicht, auf welche I2P-Version sich aum in seinem How to bezieht, aber es scheint eine ältere Version gewesen zu sein.
Einige Hinweise vorweg:
a) Ich gebe keine Garantie dafür, daß alles, was in diesem How to zu finden ist, absolut korrekt ist
b) Wenn etwas nicht auf Anhieb funktioniert, dann probiere es einfach nochmal oder schau im I2P-Forum auf Planet Peer vorbei (
http://board.planetpeer.de/index.php/board,18.0.html). Vielleicht hat jemand das gleiche Problem oder bleibt an derselben Stelle hängen und es gibt schon eine Lösung dafür
c) Ich setze voraus, daß zumindest grundlegende I2P-Kenntnisse vorhanden sind
d) Des weiteren gehe ich davon aus, daß I2P funktionsfähig installiert ist (Verbindung zum I2P-Netz besteht) und der I2P Router läuft
e) Wichtig: Ich würde empfehlen, für Ausritte in das wilde I2P-Territorium einen speziell dafür konfigurierten Browser zu verwenden, da ihr für den Zugriff auf eepsites den dafür vorgesehenen lokalen eepProxy verwenden müßt (Port 4444)
f) Last but not least: Wem bereits jetzt schon alles zuviel ist, der sollte es bleiben lassen. Wer sich mit anonymen Netzwerken beschäftigen möchte, sollte über eine gewisse Leidensfähigkeit verfügen und nicht gleich die Flinte ins Korn werfen, nur weil mal etwas nicht auf Anhieb funktioniert ;-)
1. Installation eines lokalen WebserversAn dieser Stelle sollte eigentlich zuerst die Installation eines lokalen Webservers besprochen werden. Da der I2P Router mittlerweile mit jetty über einen einfachen, aber dennoch integrierten Webserver verfügt, werde ich mich im ersten Ansatz darauf stützen. Für ein paar statische Webseiten und die ersten Experimente reicht der integrierte Webserver allemal.
2. Einrichten eines I2P-Tunnels zu deinem WebserverI2P verwendet aus Gründen der Sicherheit bzw. Anonymität keine IP-Adressen, sondern benutzt stattdessen sogenannte eindeutige "destination keys". Ein "destination key" funktioniert wie eine reguläre IP-Adresse mit Ausnahme der Tatsache, daß damit weder deine IP-Adresse noch deine physikalische Lokation ausfindig gemacht werden kann.
Um einen Webserver im I2P-Netz verfügbar zu machen, mußt du zunächst ein destination keypair generieren. Mit dem private key authentifizierst du deinen Server, wenn er sich zum I2P-Netz verbindet, und den public key (destination key) machst du öffentlich bekannt. Damit wird sichergestellt, daß andere Server sich mit deinem Webserver verbinden können (indirekt, durch deine Gateways). Wichtig: Jeder Service bei I2P benötigt ein eigenes Schlüsselpaar!
In den nächsten Schritten wird das Erzeugen eines Schlüsselpaares erklärt.
Damit Clients im I2P-Netz sich mit deinem Webserver verbinden können, benötigst du eine "bridge" oder einen "tunnel", welche Verbindungen von Clients entgegennehmen und an den lokalen Webserver weiterleiten. Um einen solchen Tunnel zu aktivieren, mußt du lediglich deinen Browser öffnen und die I2P router console öffnen (
http://localhost:7657/i2ptunnel).
[[Media:http://www.planetpeer.de/shots/1Select tunnel link in router console.jpg]]
Hier findest du eine Übersicht aller aktiven und inaktiven Tunnels, die bereits definiert sind. Dort befindet sich auch der eepProxy, den alle Sites im I2P-Netz verwenden sowie der ircProxy, der einen Tunnel zum IRC Server (irc.duck.i2p) sowie zum CVS Server (cvs.i2p) bereitstellt.
Um deinen Webserver in das I2P-Netz einzubinden und dort verfügbar zu machen, mußt du einen Tunnel dafür definieren, über den die Kommunikation erfolgt. Ich habe einen Screenshot gemacht, der die Schritte zur Konfiguration des Tunnels hoffentlich etwas transparenter macht:

Name: server 80 (Name des Tunnels)
Description: server 80 (Die Beschreibung, die in der Tunnel-Liste erscheint)
Start automatically? Haken setzen
Type: HTTP server tunnel
Target host: localhost (Host, auf dem der Webserver läuft)
Target port: 80 (Port, über den der Webserver erreichbar ist. Default ist 80, wenn der integrierte Webserver verwendet wird)
Website hostname: Unter diesem Namen ist deine eepsite im I2P-Netz für andere erreichbar, du solltest deshalb einen anderen Namen als den hier im Beispiel verwendeten wählen
Private key file: myServer.privKey (private key des Servers – gut aufbewahren!)
Tunnel depth: [0, 1 or 2] (Diese Einstellung gibt die Anzahl kaskadierten Router an (router1 -> router 2 -> ... usw.)
Bemerkung: - Je mehr Router, desto langsamer und anonymer
- Je weniger Router, desto schneller und weniger anonym
Tunnel count: [1, 2 or 3]
Bemerkung: - Je höher die Anzahl der Tunnels, desto zuverlässiger (benötigt aber mehr Bandbreite)
- Je geringer die Anzahl der Tunnels, desto weniger zuverlässig (benötigt weniger Bandbreite)
I2CP host: localhost (über diese Adresse unterhalten sich der Tunnel und der Webserver)
I2CP port: 7654 (Port, den die vorherige Adresse verwendet)
Other custom options: [nicht ausfüllen]
Start automatically? [Links klicken, um den Tunnel automatisch beim Start des I2P Routers zu aktivieren]
Linksklick: Save click here, um die Einstellungen zu speichern
Kopiere nun den destination key per copy & paste und speichere ihn. Es wird benötigt, um auf deine Site zugreifen zu können.

Nachdem du den Tunnel aktiviert hast, können Clients deinen Webserver anonym erreichen. Denke daran, daß dein Router erst einmal "warmlaufen" muß, bevor Clients deine Site erreichen können.
3. Aktualisieren der Datei hosts.txtUm deinen eigenen Webserver lokal zu testen, ist ein Eintrag in der Datei hosts.txt erforderlich, damit I2P den normalen URL, denn du in deinem Browser eintippst, in einen kompletten public key übersetzen kann. Nur über diesen public key kann dein Webserver gefunden werden. Editiere dazu die Datei hosts.txt und füge die Zeile myserver.i2p=blablabla hinzu, wobei myserver.i2p die I2P-Domain ist, unter der dein Webserver im I2P-Netz auftaucht. blablabla ist der Base64-kodierte public key, den du vorher in der Datei myWebPubKey.txt erzeugt hast.
Sobald diese Information eingetragen ist, ist dein Webserver für alle Teilnehmer des I2P-Netzes über die I2P-Domain myserver.i2p erreichbar; du solltest dir deshalb einen sinnvolleren Namen einfallen lassen...;-)