Como configurar OpenSSH en Eepsites/es

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

Eepsites en I2P[Bearbeiten]

Una de las características que más llaman la atención en I2P es la capacidad de publicar diferentes tipos de servicios de forma anónima en la red de I2P, de tal forma que estos puedan ser consultados por cualquier cliente que se encuentre navegando en la red de I2P. Estos servicios publicados son equivalentes a los Hidden Services que se exponen en TOR, sin embargo, los Servicios que se pueden exponer en I2P son mucho más rápidos y de fácil acceso en comparación con los Hidden Services en TOR sin sacrificar características tan importantes como la seguridad y desde luego el anonimato.<ref>El presente manual fue tomado de thehackerway.com y modificado en ciertos puntos. Las imágenes se omitieron, ya que el texto se considera suficientemente explicativo.</ref>

Como se ha explicado anteriormente, cada instancia de I2P viene con un sitio web configurado por defecto (cada sitio web es llamado en el mundo de I2P como un eepsite), este eepsite se ejecuta en un servidor web Jetty que permitirá ejecutar aplicaciones web basadas en Java, soportando tecnologías tales como Servlets y JSP, la ubicación por defecto de dicho eepsite esta determinada por el mecanismo de instalación de I2P, generalmente será ~/.i2p/eepsite.

Por otro lado, todos los eepsites se deben crear como túneles.

http://127.0.0.1:7657/i2ptunnel 

Por defecto existe un túnel que apunta al sitio web instalado en la instancia de I2P, este túnel puede consultarse desde un navegador web (una vez se ha iniciado el servicio).

http://127.0.0.1:7658

Ahora se enseñará el procedimiento que se debe de seguir para publicar un eepsite en la red de I2P para que otros usuarios puedan acceder a este.


Editar el Eepsite local[Bearbeiten]

Si se desea editar el sitio web instalado por defecto solamente es necesario editar y/o subir ficheros al directorio ~/.i2p/eepsite/docroot allí se pueden ubicar ficheros estáticos tales como páginas HTML e imágenes.


El Nombre de Host[Bearbeiten]

Una vez editado dicho fichero es necesario consultar la clave correspondiente al “local destination”, todos los destinos en I2P son claves de 512 bytes y estas claves deben ser traducidas a nombres de host que están en Base32, los cuales tienen una estructura muy similar a las direcciones *.onion de TOR. El valor de la clave para cada eepsite creado se debe consultar directamente desde su correspondiente túnel, el cual puede ser consultado en la aplicación I2PTunnel


Registro de un Host[Bearbeiten]

La clave de 512 bytes almacenada en el campo “Local Destination” terminada con “AAAA” o “AA==” puede ser registrada con un dominio propio en I2P, Para ello es necesario dirigirse a algun servicio publico de registro de dominios .i2p<ref>http://stats.i2p/</ref> y seleccionar la opción “Addressbook Services”.

Una vez allí se debe seleccionar la opción “a key add form” en donde se solicitará ingresar la clave y el nombre de dominio que se desea registrar (se recomienda consultar con anterioridad si el nombre de dominio deseado se encuentra disponible consultando los AddressBook de SusiDNS). La siguiente imagen enseña el formulario que se debe rellenar para que el dominio quede registrado en la red I2P y sea accesible a otros usuarios.<ref>Mas detalles en la Guia Eepsites y dominios en I2P/es</ref>

{!} El dominio .i2p recién registrado necesitara algun tiempo antes de que sea conocido por la mayoria de los nodos

Con los pasos anteriores queda registrado el dominio en la red I2P, la siguiente pantalla que se enseña después del registro del dominio muestra información sobre el nombre del dominio recién creado con sufijo .i2p y un enlace con formato base32, el cual como ya se ha dicho, es muy similar a las direcciones .onion en TOR.

Es posible utilizar tanto la dirección en Base32 como directamente el nombre del dominio registrado en un navegador web configurado para trabajar con I2P, a efectos prácticos es exactamente igual, ya que ambas direcciones apuntan al mismo servicio. Con estos sencillos pasos el servidor Eepsite ha quedado registrado en la red I2P.


Registro en el Administrador de Túneles[Bearbeiten]

El mismo procedimiento anterior puede ser aplicado a sitios web existentes en Internet, por ejemplo el presente blog se encuentra actualmente registrado en la red I2P con un dominio propio utilizando la configuración y todos los ficheros y documentos que se encuentran hospedados en un servidor en Internet. El procedimiento para hacer esto es básicamente el mismo, solamente que en esta ocasión es necesario crear el túnel manualmente y apuntarlo al sitio web que se desea registrar en I2P.

Estas son las únicas propiedades que es necesario editar, lo demás se puede quedar como esta, después de guardar por primera vez este túnel, se podrá ver como se genera de forma automática el “local destination” Posteriormente este “Local Destination” es ingresado en el servicio de registro de I2P tal como se describió en lineas anteriores.

Una vez finalizado el proceso de registro, automáticamente el servicio generará la dirección con formato Base32 asociada al dominio utilizado que será accesible desde el interior de la red I2P.


OpenSSH en I2P[Bearbeiten]

Lo más común en I2P es publicar sitios web (eepsites) sin embargo no es el único tipo de servicio que se puede publicar en dicha red, de hecho, del mismo modo que es posible publicar diferentes tipos de servicios ocultos en TOR (Hidden Services) es posible crear túneles de prácticamente cualquier tipo de servicio que se encuentre en ejecución en la maquina local.

Con TOR automáticamente se crea un servicio SOCKS que por defecto utiliza el puerto 9050. Este servicio normalmente es el punto de anclaje entre un Hidden Service publicado en TOR y sus correspondientes clientes. En una instancia de I2P no se inicia por defecto un servidor SOCKS como en TOR, no obstante es posible crear un túnel SOCKS desde I2PTunnel, el cual puede servir posteriormente como pasarela para los clientes que desean consultar el servicio publicado en la red I2P. Para esto se lleva a cabo el siguiente procedimiento. (Nota del traductor: usando SOCKS no funciona como indica este manual, luego lo hemos arreglado)

Obviamente se necesitara tener instalado el servidor OpenSSH.

$ sudo apt-get install openssh-server

Que generara las respectivas llaves. Para mas detalles consulte la Guía <ref>Como usar OpenSSH/es</ref>.


Crear el Túnel Servidor[Bearbeiten]

Para crear el Servicio SSH en el interior de la red I2P es necesario configurar un túnel estándar desde I2PTunnel en la sección de “I2P Server Tunnels”, en dicho túnel solamente es necesario indicar las opciones básicas correspondientes al servidor SSH.

Una vez que se pulse sobre el botón “Save” ubicado al final de la página se generará automáticamente el “Local Destination” correspondiente al servicio, del mismo modo en la barra de Status de I2PTunnel aparecerán los mensajes de configuración correspondiente, es importante anotar que en dicha interfaz se podrá ver el hostname del servicio recién creado en Base32 y con sufijo .i2p, esta será la dirección del servicio que será utilizada por los clientes.


I2P v0.9.2x[Bearbeiten]

En las nuevas versiones de I2P, no es obligatorio usar el Asistente de configuración de Túneles.

1) Vamos a la pagina del Administrador de Servicios Ocultos o I2PTunnel

http://127.0.0.1:7657/i2ptunnelmgr

Entonces presionamos en el botón Asistente de Túnel.

2) Escogemos Tunel Servidor y presionamos en Siguiente.

3) Escogemos Estándar y presionamos en Siguiente.

4) Designamos un Nombre y una Descripción y presionamos en Siguiente.

5) Designamos el Host (127.0.0.1 normalmente) y el Puerto que use SSH (22 normalmente) y presionamos en Siguiente.

6) Marcamos la casilla Autoarranque y presionamos en Finalizar.

Esto generara una dirección base32 y otra b64 que podremos ver en este punto o cuando volvamos al Administrador de Servicios Ocultos o I2PTunnel junto al recién creado Túnel Servidor.

Una vez creado el túnel, pulsamos el nombre del nuevo túnel y copiamos el 'destino local' (local destination) para usarlo en el túnel cliente.

Y ya deberíamos tener un túnel servidor para OpenSSH listo.


Crear el Túnel Cliente[Bearbeiten]

Ya tenemos creado el túnel “Server” y ahora es necesario crear el túnel “Client” que servirá como pasarela para contactar con el servicio recientemente creado. En este caso el cliente será un túnel cliente estándar, el cual puede ser seleccionado en la sección de “I2P Client Tunnels”, la opción para crear este nuevo túnel cliente se encuentra ubicada al final de la página. En dicha opción solamente es necesario indicar los valores básicos que corresponden a la creación del servidor.

I2P v0.9.2x[Bearbeiten]

En las nuevas versiones de I2P, no es obligatorio usar el Asistente de configuración de Túneles.

1) Vamos a la pagina del Administrador de Servicios Ocultos o I2PTunnel

http://127.0.0.1:7657/i2ptunnelmgr

2) Escogemos Túnel Cliente y presionamos en Siguiente.

3) Escogemos Estándard y presionamos en Siguiente.

4) Designamos un Nombre y una Descripción y presionamos en Siguiente.

5) En puerto de acceso indicamos un puerto vacío, en accesible por (reachable by), normalmente, 127.0.0.1.

6) En el destino del túnel (túnel destination) pegamos el destino local que hemos copiado del túnel servidor anterior.

6) Marcamos la casilla Autoarranque y presionamos en Finalizar.

Y ya deberíamos tener el túnel cliente listo.


Ejecutar Túneles Cliente-Servidor[Bearbeiten]

Posteriormente, se inician ambos túneles creados (el túnel servidor con SSH y el túnel cliente). Aunque en las versiones actuales los túneles se inician automáticamente si hemos activado la opción autoarranque.

Probar el servidor SSH[Bearbeiten]

Nota del traductor:

    • Este manual explicaba cómo conectarse con túneles clientes SOCKS, pero no funciona, con lo cual lo hemos arreglado. Los pasos anteriores funcionan seguro porque han sido probados.
    • Con respecto a la prueba, con hacer ssh user@127.0.0.1 -p PUERTO Donde en PUERTO ponemos el puerto elegido en el túnel cliente, funcionará.

Ahora que todos los servicios desde I2P se encuentran en ejecución es el momento de probar que funciona correctamente, para ello se puede utilizar cualquier cliente SSH como por ejemplo Putty o directamente desde la consola (probablemente mucho más cómodo para la mayoría) en el caso de Putty es muy sencillo, solamente es necesario establecer el Proxy apuntando al puerto “6666” en la maquina local y posteriormente indicar como destino el hostname en base32 generado por I2P.

Como puede apreciarse, desde Putty es muy sencillo, desde linea de comandos tampoco es demasiado difícil<ref>En este caso el concepto es el mismo, dicha entrada se encuentra aquí: http://thehackerway.com/2011/10/28/preservando-el-anonimato-y-extendiendo-su-uso-%E2%80%93-utilizando-ssh-y-tor-juntos-%E2%80%93-parte-viii</ref>.

Algunos de los procedimientos más habituales para esto es utilizar SOCAT, la utilidad Connect-Proxy o Corkscrew. Dado que esto ya se ha explicado<ref>En este caso el concepto es el mismo, dicha entrada se encuentra aquí: http://thehackerway.com/2011/10/28/preservando-el-anonimato-y-extendiendo-su-uso-%E2%80%93-utilizando-ssh-y-tor-juntos-%E2%80%93-parte-viii</ref>, en esta ocasión solamente se va a utilizar Connect-Proxy para explicar como establecer una conexión desde el cliente hacia el servicio SSH remoto. Para ello es necesario editar el fichero de configuración /etc/ssh/ssh_config e incluir la siguiente linea.

$ sudo nano /etc/ssh/ssh_config
[...]
ProxyCommand connect -S localhost:6666 %h %p

Posteriormente se ejecutará el comando SSH correspondiente especificando la dirección Base32 del servicio I2P (en este caso se ha indicado el usuario ROOT, puede ser cualquier usuario valido en el sistema evidentemente y el hostname también deberá corresponder al que anteriormente ha generado I2P (cada usuario que este probando esto deberá indicar el suyo propio).

$ ssh XXXXXXXXXXX.b32.i2p -l root

Si el servicio solicita la contraseña del usuario (ya sea utilizando Putty o desde consola) indica que la configuración esta funcionando correctamente.


Véase También[Bearbeiten]


Referencias[Bearbeiten]

<references />