A continuación encontrará una copia rápida de la guía de despliegue del sitio I2P de aum.

1. - Instalar un servidor local
  • Para simplificar, seguiremos los pasos de cómo crear un servidor web; aún así, este procedimiento es le mismo independientemente del protocolo del servidor o/y los clientes que esté configurando.
  • Recomiendo el servidor web Tiny Httpd, thttpd, (hay una versión disponible en su web para windows) aunque puede usar cualquier servidor con el que se encuantre confortable.
  • Otra opción robusta podría ser usar EasyPHP, el cual es también libre. Viene con PHP, PHPmyamin, mySQL y el servidor web Apache. Para los principiantes que no tengan experiencia en configurar un domino o servidores de contenido, vea la web de hosting/servidores para más ayuda.
  • En el servidor web que haya elegido, configúrelo para que escuche en un puerto de su elección, y sirva los documentos de un directorio de su elección. Para este ejemplo supondremos que usamos el puerto 10880.
  • Asegúrese que su cortafuegos está configurado para bloquear las conexiones entrantes a este puerto (si no, al poder acceder directamente a este puerto, eliminaría su anonimato)
  • Pruebe el servidor web abriendo en su navegador web (el navegador con "conexión directa") la dirección http://localhost:10880 (cambiando el puerto 10880 por el número que haya elejido).
  • Una vez que el servidor esté funcionando, y pueda acceder a él localmente con su explorador, continue con el siguiente paso.
2 - Genere el par de claves de destino de I2P
  • I2P no funciona con su dirección IP. Para proteger su anonimato funciona con direcciones únicas llamadas claves de destino.
  • Una clave de Destino funciona como una dirección IP normal, excepto que no se puede seguir dicha dirección hasta tu localización local. Cuando los usuarios hacen una petición para hablarle, sus puertas de salida, gateways son las que responden por usted. Con lo que los usuarios sólo pueden saber las IP de sus gateways. Además, las gateways no saben su IP, ya que las gateways son los últimos nodos de sus túneles, y los túneles han sido creado anónimamante con el rutado Garlic. (Las gateways son como mascotas que no pueden ver a sus dueños, y todo el mundo se comunica a través de estas mascotas)
  • Para crear un servicio en I2P, se crean un par de claves de destino. Se utiliza la clave privada para autentificar sur servidor cuando se conecta a I2P, y se hace pública la clave pública (también llamada clave de destino), así otros pueden conectarse a su servidor. (indirectamente, a través de sus gateways)
  • Cada servicio que ejecute en I2P necesita un par de claves diferente.
  • Para generar el par de claves, ejecute el comando: java -jar lib/i2ptunnel.jar -nogui -e "genkeys myWebPrivKey.dat myWebPubKey.dat" (en una sola línea)
  • Para generar el par de claves en windows, ejecute el comando: java -jar lib/i2ptunnel.jar -nogui -e "genkeys myWebPrivKey.dat myWebPubKey.dat"
  • Los nombres de archivo myWebPrivKey.dat y myWebPubKey.dat son arbitrarios - elija el que desee, al menos mientras entienda sus elecciones.
  • Ahora necesitamos exportar su clave pública al formato base64, el cual compartirá con otros.
  • Para convertir su archivo myWebPubKey.dat al formato base64 compartible, ejecute el comando java -cp lib/i2p.jar net.i2p.data.Base64 encode myWebPubKey.dat > myWebPubKey.txt (todo en la misma línea).
  • El archivo que acaba de generar, myWebPubKey.txt, contiene una cadena larga base64 (con 516 caracteres), lo que llamamos una clave de destino. Todo lo que necesita saber por el momento es que esta clave de destino permite que los clientes remotos localicen con precisión su servicio y se conecten a él, justamente de la misma forma que una IP permite que las máquinas remotas puedan localizar su máquina y se conecten a ella.
  • Aunque, y a diferencia de una dirección IP, no hay forma de rastrear la localización física de su máquina - aunque el servidor pueda ser accedido desde I2P, su dirección IP no puede ser rastreada o asociada a esta clave de destino.
3 - Abra un 'Túnel' desde I2P hacia su servicio/servidor
  • Para que los clientes de I2P sean capaces de acceder a su servidor, tiene que ejecutar un 'bridge', puente, o un 'túnel', los cuales cogen las conexiones desde esos clientes y las reenvían hasta su servidor local.
  • Para activar este tipo de túneles, ejecute el comando java -jar lib/i2ptunnel.jar -nogui -e "server localhost 10880 myWebPrivKey.dat" (todo en la misma línea).
  • Si anteriormente ha usado nombres diferentes en los archivos, o usado números de puertos diferentes, cámbielos de acuerdo a ello.
  • Para usuarios de windows; recuerden cambiar los apostrofes con comillas dobles. Tal que: java -jar lib/i2ptunnel.jar -nogui -e "server localhost 10880 myWebPrivKey.dat"
  • En unos pocos segundos el 'túnel' debería estar activo, y los clientes remotos deberían poder acceder al servicio anónimamante. Recuerde dejar su ruter "calentarse" antes de permitir que los clientes se conecten.
4 - Actualice su archivo hosts.txt
  • Para probar su propio servicio localmente debe crear una entrada en su archivo host.txt, para que I2P pueda traducir la URL sencilla que introduce en la barra de direcciones de su navegador en la clave pública completa que necesita para encontrar su servidor.
  • Edite su archivo host.txt y añada la línea myserver.i2p=blahblahblah, donde myserver.i2p es un 'dominio' I2P que desea asociar con su web, y en donde el blahblahblah es el texto de la clave pública base64 que ha creado anteriormente en el archivo
  • Una vez hecho esto, usted y otros pueden acceder a su servidor simplemente poniendo el nombre de dominio myserver.i2p en la barra de direcciones del navegador.
5 - Navegue hasta su web dentro de I2P
  • Usando su navegador web secundario - el que anteriormente ha configurado para usar el proxy localhost:4444 - acceda en su navegador a la dirección
  • Debería aparecerle la página web principal de su servidor.
6 - Crear un Túnel cliente local para la conexión
  • Ahora debemos pensara más allá de los servidores web.
  • Según use más I2P y lo conozca mejor, deseará usar todo tipo de servidores y clientes.
  • La belleza de I2P radica en que permite que los clientes y servidores de la mayoría de los protocolos sean 'tunelados' transparentemente a través de la red anónima I2P.
  • Puede ejecutar servidores/clientes de correo, de nombres, de noticias (usenet) - realmente casi cualquier cosa - quizá incluso FTP en modo pasivo.
  • Ahora vamos a crear un túnel cliente. Este es como el túnel servidor que hemos creado anteriormente, pero funciona al revés. Escucha en un puerto en su máquina local; su cliente local se conecta a este puerto; la conexión se reenvía a través de I2P hasta el servicio de destino.
  • Para abrir el túnel cliente para su servidor, ejecute el comando java -jar lib/i2ptunnel.jar -nogui -e "config localhost 7654" -e "client 10888 textofbase64key" (todo en una línea).
  • El puerto10888 es arbitrario - simplemente es necesario que sea un puerto diferente al que ocupa su servidor, y que no esté usado por ningún otro servicio.
  • textofbase64key no es más que el contenido del archivo de la clave pública myWebPubKey.txt, reproducido completamente en una línea (alternativamente, en vez de usar textofbase64key, puede especificar el nombre en su hosts.txt - por ejemplo myserver.i2p)
  • Después de un minuto o dos de haber ejecutado este comando, el túnel cliente desde su máquina local hacia I2P estará abierto y listo para usar.
  • Apunte su navegador web normal (no el que ha configurado para usar localhost:4444), hacia http://localhost:10888
  • Asegúrese que la página principal de su servidor aparece en su navegador web.
  • Usará el mismo procedimiento para que cualquier aplicación cliente local pueda acceder a un servidor remoto I2P - simplemente consiga la clave pública base64 (llamada clave de destino) del servidor remoto, elija un puerto local para conectarse al servidor remoto, abra el túnel, y conecte con su cliente al contenido deseado.
7 - Comparta los datos del servidor con otros
  • Usando un medio anónimo (por ejemplo unos los servidores IRC en I2P o la wiki de ugha), anuncie su nombre de dominio ( por ejemplo www.mynick.i2p) así como su clave de destino. Entonces otros podrán conectarse a su servidor remotamente sin comprometer su anonimato o el de ellos.
  • Recuerde, pude ir a What's on I2P y buscar las últimas claves públicas enlazadas a su URL. También debería añadir su clave pública y URL allí. Pero por supuesto, quiere hacer esto anónimamente. Drupal.i2p.net es sólo accesible desde la clearnet. Por lo que para acceder a la WWW anónimamante desde I2P, necesitará ejecutar el script startSquid. Hágalo de la misma forma que ha ejecutado otros scripts. Vuelva a configurar su navegador web para que use localhost:5555 como proxy, como se ha definido en el script, y cuando el script haya generado sus claves, ya puede acceder el proxy squid. Ponga cualquier URL WWW (como Google o esta web de I2P) en su navegador y estará navegando la clearnet anónimamante. Ahora puede añadir su clave pública seguro, y nadie puede averiguar si IP.
8 - Cree algunos scripts para manejar todo este sinsentido
  • Repetir estos pasos cada vez que se configura un cliente o servidor I2P puede volver loco a mucha gente.
  • En la web de Aum http://www.freenet.org.nz/i2p/ hay un script llamado setupServer.py que automatiza todo este sinsentido en un comando de una sola línea.
  • Siéntase libre de usar o cambiar etupServer.py para probarlo, o para escribir su propio script en Python o en cualquier otro lenguaje.
  • También pude querer escribir para que maneje el inicio del Ruter I2P, el eepProxy y los túneles que esté usando. Yo uso un script llamado startEverything.sh, que se ejecuta al iniciar al sistema. (Estos scripts no son necesarios en las nuevas versiones de I2P).
  • Un ejercicio para los usuarios de Windows - portar setupServer.py a un archivo MS-DOS .BAT.