El Proyecto de Internet Invisible (I2P) nace en el año 2003 como una implementación de P2P anónimo con E2EE por capas que tuneliza las conexiones bajo la Internet Obscura (del inglés dark web o dark net) a fin de proveer una red totalmente anónima, descentralizada, autogestionada y basada en mensajes ofreciendo el máximo nivel de seguridad posible mediante el cifrado de cada paquete de datos de cada identidad por criptografía asimétrica entre los nodos participantes de cada túnel.
De esta manera, I2P trabaja montando un nodo local en la máquina donde se ejecuta que funciona como enrutador mediante el cual administra todas las conexiones, registra los sitios web en una libreta de direcciones, conecta con pares, configura los túneles, eepsites, enlaza a los principales sitios de la red, provee múltiples servicios entre correo electrónico con I2P Bote y Susimail, intercambio de archivos anónimos mediante Muwire, almacenamiento en la nube descentralizado con Tahoe-LAFS, mensajería instantánea con F2F mediante Retroshare, IRC y XMPP, conexiones seguras con VPN, descarga de archivos mediante Torrent con I2PSnark, iMule, I2Phex, entrega interactivos manuales y tutoriales de uso, convivencia y solución de problemas.
Entre sus principales caracterísiticas, se pueden destacar:
- I2P es una mixnet de rutas libres: El creador del mensaje define explícitamente el camino que seguirán los mensajes enviados (el túnel de salida), y el receptor del mensaje define explícitamente el camino por el cual serán recibidos los mensajes (el túnel de entrada).
- I2P no tiene puntos de entrada y salida oficiales: Todos los pares participan completamente en la mezcla, y no hay proxies de entrada o salida en la capa de red (aún así existen varios proxies de salida en la capa de aplicación)
- I2P es totalmente distribuido: No existen centros de control o autoridades. Cualquiera pude modificar algunos ruters para operar cascadas de mezcla (construyendo túneles y dando las claves necesarias para controlar el envío al final del túnel) o controlar los perfiles de los directorios, todo esto sin romper la compatibilidad con el resto de la red, pero por supuesto no es necesario hacer nada de esto (y además podría poner en peligro su anonimato).
Aunque otras redes como TOR o Freenet hayan surgido casi al mismo tiempo y cada una de ellas tenga un caso de uso distinto, al final todas persiguen el mismo fin: proteger el anonimato y la privacidad de los usuarios finales. Pero con el paso de los años Tor se ha convertido en la red anónima por excelencia, dejando en un segundo plano a otras redes que cuentan con un gran potencial como I2P (sobre todo por su modelo de comunicación, enrutamiento y cifrado de paquetes).
A diferencia de otras redes anónimas, I2P no trata de preservar el anonimato ocultando el origen y el destino de una comunicación, ya que el hecho de encontrarse en esta red no es ningún secreto. I2P está diseñado para que toda la actividad que se lleve a cabo en la red permanezca oculta y los pares puedan comunicarse entre sí de forma anónima, no solo entre ellos sino también para aquellos terceros que puedan estar escuchando.
Básicamente, el propósito de I2P es permitir a los usuarios comunicarse de forma anónima en entornos hostiles donde todos los mensajes generados, tanto por aquellos usuarios que necesitan un alto nivel de anonimato como los que no, acaban mezclándose en la misma red generando el suficiente tráfico que impida distinguir unos mensajes de otros.
Inclusive, como una capa extra de seguridad y comodidad, también es posible instalarlo y configurarlo en un servidor o equipo externo en Internet o dispositivo conectado dentro de la red inalámbrica de el/la/lxs usuarix(s) para independizar, separar y aislar los procesos en 2 máquinas distintas permitiéndole conectarse remotamente al nodo configurado y montado en dicha máquina, equipo o servidor y utilizarlo como enrutador a I2P. Esto es muy importante ya que aumenta la eficiencia de las comunicaciones, mejora la seguridad, comodidad y eficiencia de uso implementando medidas más avanzadas y personalizadas al gusto de el/la/lxs usuarix(s), como el uso de VPN, VPS, SSH, TOR, proxys y sistemas de virtualización entre la computadora de el/la/lxs usuarix(s) y el servidor, equipo, dispositivo o máquina que enruta a I2P.
Sin embargo, es posible que los usuarios menos experimentados necesiten instalar Java versión 7, 8 o posterior (Se recomienda la versión 7 u 8 de Oracle, OpenJDK o IcedTea) como requisito previo para administrar y configurar cómodamente su enrutador I2P mediante una interfáz gráfica montada en el servidor local y operada desde el navegador web, ya que el enrutador por defecto de I2P está programado en Java. Por el contrario, los usuarios más avanzados pueden encontrar alternativas confiables, tanto en terminal de comandos como interfáz gráfica, que les permitan conectarse, administrar y configurar su enrutador I2P sin depender de Java.
Mientras tanto, para los usuarios menos experimentados, habiendo instalado Java, deben dirigirse a la página de Descargas de I2P y, según el sistema operativo que se encuentre corriendo en la máquina, dispositivo, servidor o equipo donde desea instalarse, se descarga un binario de instalación precompilado, en caso de GNU/Linux podría encontrarse para instalación en los respectivos repositorios de la distribución que utilice o se encuentre ejecutando, como también compilarlo directamente desde su GIT, entre múltiples otras opciones.
Instalación de I2P
En el caso de Microsoft Windows, podrá descargar el correspondiente binario precompilado para el susodicho sistema operativo desde la citada página de descargas.
Posteriormente, proceda con su respectiva instalación siguiendo los pasos establecidos por el mismo software.
I2P se encuentra traducido a una gran multitud de diferentes y distintos idiomas que puede seleccionar y elegir a gusto personal según mejor le acomode.
I2P se encuentra licenciado bajo GPL, MIT y BSD, entre muchas otras licencias permisivas, flexibles y abiertas con el software libre y la filosofía del código abierto.
Seleccione la ruta en donde desea instalar I2P. Si no tiene alguna preferencia en particular o no sabe qué elegir, puede dejar la opción por defecto tal como figura en la imagen.
Seleccione qué modalidades o extensiones de I2P gustaría instalar. Por defecto, se instala la base del protocolo.
Espere a que finalice el proceso de instalación y finalmente haga click en Next.
Ahora I2P se encuentra instalado en su computadora.
Para terminar, podrá visualizar un ícono de acceso directo en su escritorio y/o menú de aplicaciones. Puede presionarlo y el enrutador I2P comenzará a funcionar inmediatamente. Finalmente será capáz de administrar y configurar su enrutador I2P desde su navegador web en la dirección https://X.X.X.X:7657/home. Para más información y detalles, favor de visitar la Guía de instalación de I2P en Microsoft Windows.
Para Mac OSX suele ser recomendable instalar el binario precompilado mediante el comando java en la terminal.
java -jar i2pinstall_version-X.X.X.jar
Dicho comando abrirá un instalador gráfico muy intuitivo, interactivo y amigable para la mayoría de usuarios. De todas formas, si prefiere instalar todo directamente desde la terminal, puede agregar la opción -console al comando anterior ejecutando de la siguiente manera:
java -jar i2pinstall_version-X.X.X.jar -console
El proceso a continuación suele ser muy similar al experimentado en Microsoft Windows. Posteriormente, visualizará el ícono de I2P en su menú de aplicaciones desde el cual podrá arrancarlo y conectarse cómodamente gestionando y configurando su enrutador desde su interfáz gráfica, mediante el navegador web, montada en el servidor local.
Para instalar I2P en dispositivos móviles funcionando con Android, se requiere que el mencionado sistema operativo tenga instalada la versión 4.0 como mínimo, o posterior. Si ha instalado I2P anteriormente en su dispositivo móvil Android, debe preocuparse de mantenerla actualizado al día hasta la última versión liberada por el proyecto o de lo contrario podría experimentar ciertas dificultades de conexión, manejo, estabilidad y fuga de datos debido a fallas de seguridad que, si bien han sido descubiertas y parchadas, aún se encuentran en la versión de I2P instalada en su dispositivo.
Los requisitos para instalar I2P en cualquier dispositivo Android son únicamente tener 512 Mb de memoria RAM como mínimo, aunque lo más recomendado para el correcto funcionamiento de I2P en un dispositivo móvil con Android es que cuente con 1 Gb de memoria RAM. Cumpliendo lo mencionado, puede proceder con la instalación de I2P en su dispositivo móvil Android mediante la descarga del binario precompilado APK directamente desde la página web y servidores oficiales del proyecto.
De otro modo, también podrá encontrar el susodicho en F-Droid, como en Google Play. Una vez instalado, puede conectarse cómodamente sin problemas siguiendo las configuraciones por defecto y administrar o configurar su enrutador I2P directamente desde la misma aplicación.
GNU/Linux
- Debian GNU/Linux y derivadas
- ArchLinux
- Otras distribuciones GNU/Linux, BSD y Solaris
Debian GNU/Linux es probablemente la distribución y sistema operativo que mejor funciona con I2P. Desde que los paquetes oficiales del proyecto y sus extensiones se encuentran en varios de sus repositorios, o los de sus distribuciones derivadas, hasta una configuración de iptables abierta y flexible para modificar, permitir y restringir numerosos puertos o servicios. Es común que I2P se vea limitado por incompatibilidad o inestabilidad con el sistema operativo, ISP del usuario o ubicación geográfica en la que se encuentra, pero con Debian GNU/Linux varios de estos problemas están eliminados por defecto simplemente debido a la estructura y funcionamiento de la distribución, como también la sencillez y rapidez de manejo de la misma llegando a ser tan fácil de conectar, configurar, administrar y operar como en Microsoft Windows. Dicho así, para iniciar con la instalación de I2P en Debian GNU/Linux o derivadas, primero debe comenzar actualizando todo el sistema de su distribución Debian GNU/Linux.
sudo apt-get update
sudo apt-get dist-upgrade
Una vez finalizado el susodicho proceso y llegado al prompt, verifique si los paquetes correspondientes a I2P se encuentran disponibles para su distribución
apt search i2p
Con este comando verá todos los paquetes que cumplen con el patrón de busqueda «i2p». En algunos casos encontrará solamente el paquete base de i2p y en otros acompañado de su característico enrutador gráfico i2p-router, pero es importante asegurarse de buscar que también se encuentre disponible i2p-keyring. En caso de que todos ellos se encuentren disponibles, proceda directamente con su instalación:
sudo apt-get install i2p i2p-router i2p-keyring
Por el contrario, en caso de que no se encuentren los correspondientes paquetes de I2P o falten alguno(s) de ellos, puede añadir los repositorios oficiales del proyecto I2P a la configuración de repositorios de su distribución Debian GNU/Linux. Para ello, primero debe añadir las correspondientes llaves GPG del proyecto mediante el comando:
wget https://geti2p.net/_static/i2p-debian-repo.key.asc -O- | sudo apt-key add –
Instale algunos requisitos previos para conectarse a los repositorios oficiales de I2P e instalar el software adecuadamente:
sudo apt-get install apt-transport-https curl nano vim
Posteriormente, añada los repositorios oficiales del proyecto I2P en un nuevo fichero dentro del directorio de configuración de repositorios de su distribución Debian GNU/Linux mediante el comando:
# En caso de que prefiera utilizar el editor Vim (no olvide que debe presionar la tecla i para ingresar a editar el texto)
sudo vim /etc/apt/sources.list.d/i2p.list
# En caso de que prefiera utilizar el editor nano
sudo nano /etc/apt/sources.list.d/i2p.list
Una vez abierto, añada alguno de los siguientes repositorios de acuerdo con la versión del sistema operativo Debian GNU/Linux que tiene instalado en su computadora:
# Para Debian GNU/Linux Buster (estable):
deb https://deb.i2p2.de/ buster main
deb-src https://deb.i2p2.de/ buster main
# Para Debian GNU/Linux Stretch (inestable):
deb https://deb.i2p2.de/ stretch main
deb-src https://deb.i2p2.de/ stretch main
# Para Debian GNU/Linux Jessie (inestable):
deb https://deb.i2p2.de/ jessie main
deb-src https://deb.i2p2.de/ jessie main
# Para Debian GNU/Linux Wheezy (obsoleto):
deb https://deb.i2p2.de/ wheezy main
deb-src https://deb.i2p2.de/ wheezy main
Guarde los cambios efectuados. En el caso de Vim, puede hacerlo presionando Esc y luego escribiendo :wq!. En el caso de Nano, puede guardar los cambios presionando Ctrl+O y luego Ctrl+X. Ahora puede volver a ejecutar el comando señalado para instalar los paquetes correspondientes a I2P directamente desde los repositorios oficiales del proyecto. Una vez instalados, puede iniciar su enrutador de la siguiente manera:
# Primero, habilite el servicio I2P
sudo service i2p start
# En caso de que le arroje un error, purge el paquete y reinstale
sudo apt-get purge i2p ; sudo apt-get install i2p
# Si usted desea que I2P se inicie automáticamente en el arranque del sistema, puede ejecutar el comando a continuación. En caso contrario, ignore este paso
sudo systemctl enable –now i2p.service
# No obstante, esto mismo puede ser efectuado con el siguiente comando
i2prouter install
# En cuanto el servicio se encuentre activo, puede ejecutar el comando a continuación
i2prouter start
Finalmente, ejecute su navegador web y diríjalo hacia el servidor local de la máquina o equipo en donde ejecuta I2P apuntando al puerto 7657.
En ArchLinux y derivados, puede instalar I2P ejecutando el siguiente comando:
yay -S i2p i2p-bin
Hecho esto y llegado al prompt, ejecute su enrutador I2P desde la terminal de comandos o menú de aplicaciones.
Para cualquier otra distribución GNU/Linux que no sea Debian ni ArchLinux o derivadas, al igual que el proceso de instalación seguido en Mac OSX, descargue del paquete precompilado en Java y posteriormente instale el software mediante el siguiente comando:
java -jar i2pinstall_version-X.X.X.jar
Con el citado comando se ejecutará una interfáz gráfica muy intuitiva, interactiva y amigable para todo usuario que le permitirá gestionar su instalación de manera cómoda, confiable, rápida, sencilla y eficaz. En caso contrario, si prefiere una instalación mediante la terminal de comandos, puede añadir la opción -console, aunque en este caso deberá configurar algunas cosas manualmente de la siguiente manera:
# Primero, deberá crear una carpeta llamada «i2p» en el directorio personal de usuario (sin permisos especiales ni privilegios de root)
mkdir ~/i2p
# Al momento de instalar, se le preguntará si desea (1) continuar, (2) salir o (3) volver a ejecutar el comando reproduciendo el mismo mensaje. Habiendo seleccionado 1 para continuar, le preguntará en cuál directorio desea instalar I2P, a lo cual usted deberá responder escribiendo el directorio /home/$usuario/i2p. Finalmente, le volverá a confirmar si desea proseguir con la instalación y deberá volver a seleccionar que sí presionando la tecla correspondiente al número 1.
java -jar i2pinstall_version-X.X.X.jar -console
# Proceda con la instalación ejecutando el siguiente comando
sudo i2prouter install
# Posteriormente, edite el script i2prouter. En caso de hacerlo mediante Vim, por favor ejecute el siguiente comando sin olvidar que una vez dentro debe presionar la tecla i para ingresar a editar, luego de lo cual, en cuanto haya finalizado, debe presionar Esc y escribir :wq! para guardar
vim ~/i2p/i2prouter
# Por el contrario, si prefiere editarlo mediante Nano, por favor recuerde que para guardar sus cambios o modificaciones deberá presionar Ctrl+O, y luego Ctrl+X para salir
nano ~/i2p/i2prouter
# Una vez dentro, busque la línea «RUN_AS_USER=» y escriba el usuario con el cual se encuentra realizando la instalación y pretende utilizarlo para conectarse a I2P. Finalmente, guardados los cambios, ejecute el siguiente comando para iniciar su enrutador I2P
i2prouter start
Para terminar, en su navegador web diríjase a la dirección IP de la máquina en la que se ejecuta I2P apuntando al puerto 7657. Si se trata de su computadora personal, de estudios o trabajo, la mencionada dirección corresponde al servidor local, esto es decir http://127.0.0.1:7657/home
Para más información y detalles, favor de consultar la página de Descargas de I2P
Instalación de I2Pd (enrutador de I2P en C++)
Además de esto, si prefiere conocer una alternativa de instalación, configuración, operación y manejo de I2P mediante terminal de comandos sin necesitar Java, quizás podría interesarle instalar I2Pd: Invisible Internet Protocol Daemon. I2Pd es una implementación de I2P programado en el lenguaje C++. Mediante esta utilidad, usted podrá conectarse a I2P, configurar su enrutador, administrar sus túneles, complementos, extensiones, aplicaciones, clientes, servicios y mucho más sin depender de Java, todo de forma sencilla, rápida y eficáz en la terminal de comandos o mediante una interfáz gráfica en Qt.
Para instalar I2Pd en Microsoft Windows, encontrará el binario precompilado compatible con el susodicho sistema en su correspondiente repositorio oficial del proyecto en Github. Posteriormente, instálelo siguiendo el procedimiento estándar por defecto, posiblemente muy similar al anteriormente vistos en el proceso de instalación del paquete oficial de I2P.
Para el caso de Mac OSX, I2Pd se encuentra disponible en la tienda de aplicaciones y software «Brew«, por lo que primero deberá instalar su correspondiente software, el cual a su vez requiere de la instalación de Xcode. Con esto en mente y en cumplimiento de lo mencionado, deberá ejecutar:
wget https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
bash install.sh
brew install i2pd
Hecho esto y terminado el mencionado proceso, encontrará el ícono de inicio de I2Pd en su menú de aplicaciones o bien acceder a él desde la terminal de comandos.
GNU/Linux
- Debian GNU/Linux y derivadas
- Fedora/CentOS/RHEL y derivadas
- Arch Linux y derivadas
- Gentoo Linux y derivadas
- FreeBSD
- Snapcraft
- Flatpak (versión gráfica de I2Pd en Qt)
Debian GNU/Linux, una vez más, es la distribución perfecta para instalar y configurar I2P. Su compatibilidad con la red son casi inigualables para muchas otras distribuciones e inclusive Microsoft Windows o Mac OSX. El software puede instalarse, conectarse y configurarse fácil y rápidamente sin mayores contratiempos permaneciendo en funcionamiento durante mucho tiempo con un flujo de datos y emparejamiento de nodos muy estables aún en ambientes adversos con un acceso a Internet censurado, velocidad limitada, restringido por cortafuegos, controlado y monitorizado mediante DPI/DCI ya sea por ISP, empresas, organizaciones, gobiernos o ubicación geográfica. En el presente caso, para iniciar con la instalación del susodicho, empiece ejecutando los siguientes comandos:
# Primero, nuevamente igual que en el caso anterior con el paquete oficial de I2P, actualice su distribución Debian GNU/Linux a la última versión disponible
sudo apt-get update
sudo apt-get dist-upgrade
# Prosiga verificando que el paquete I2Pd se encuentra en los repositorios de su distribución Debian GNU/Linux
apt search i2pd
# En caso de encontrar el software en disputa, continúe con su instalación
sudo apt-get install i2pd
# Si I2Pd no se encuentra disponible en los repositorios de su distribución Debian GNU/Linux, por favor omita los pasos a continuación
# Primero, instale los paquetes necesarios para agregar los repositorios oficiales de I2Pd a su distribución Debian GNU/Linux que le permitan instalar correctamente el software en su última versión
sudo apt-get install apt-transport-https
# Luego, importe las llaves GPG del repositorio oficial del proyecto I2Pd
wget https://repo.i2pd.xyz/r4sas.gpg -O- | sudo apt-key add –
# Edite el directorio de configuración de repositorios de su distribución Debian GNU/Linux escribiendo un nuevo fichero con los repositorios que desee agregar
# En caso de que prefiera utilizar Vim, no olvide que para ingresar a editar el texto debe presionar la tecla i
sudo vim /etc/apt/sources.list.d/i2pd.list
# Por el contrario, si prefiere nano, puede ejecutar el siguiente comando
sudo nano /etc/apt/sources.list.d/i2pd.list
A continuación, listamos los repositorios disponibles para las últimas versiones de Debian GNU/Linux
# Para Debian GNU/Linux Stretch
deb https://repo.i2pd.xyz/debian/ stretch main
deb-src https://repo.i2pd.xyz/debian/ stretch main
# Para Debian GNU/Linux Buster
deb https://repo.i2pd.xyz/debian/ buster main
deb-src https://repo.i2pd.xyz/debian/ buster main
# Para Debian GNU/Linux Bullseye
deb https://repo.i2pd.xyz/debian/ bullseye main
deb-src https://repo.i2pd.xyz/debian/ bullseye main
Una vez agregados los respectivos repositorios correspondientes con la versión de su distribución Debian GNU/Linux, guarde los cambios efectuados; en el caso de Vim, presionando Esc y luego escribiendo :wq!. En el caso de Nano, debe presionar Ctrl+O y luego Ctrl+X. Ahora puede volver a ejecutar el comando señalado para instalar los paquetes correspondientes a I2P directamente desde los repositorios oficiales del proyecto. Para terminar, ejecute I2Pd desde la terminal de comandos o menú de aplicaciones de su distribución Debian GNU/Linux.
En Fedora, CentOS y distribuciones derivadas de Red Hat, tendrá un proceso de instalación bastante rápido, sencillo y eficáz ya que I2Pd se encuentra disponible en un repositorio especialmente dedicado para estos sistemas, el cual ha sido certificado y reconocido por el proyecto I2Pd garantizando su confianza, legitimidad y seguridad. Dicho de esto así, proceda ejecutando los siguientes comandos según el sistema operativo que tenga instalado en su computadora.
CentOS
# Primero, inicie descargando el repositorio y añadiéndolo al fichero de configuración de repositorios de su distribución CentOS
sudo curl -s https://copr.fedorainfracloud.org/coprs/supervillain/i2pd/repo/epel-7/supervillain-i2pd-epel-7.repo -o /etc/yum.repos.d/i2pd-epel-7.repo
# Posteriormente, instale y actualice el repositorio con la siguiente órden
sudo yum install epel-release
# Continúe instalando el paquete i2pd
sudo yum install i2pd
# En caso de que quiera que su distribución CentOS ejecute I2Pd en cada arranque del sistema, ejecute este comando
sudo systemctl enable –now i2pd
Para finalizar, verá el ícono de inicio de I2Pd en el menú de aplicaciones, o bien podrá correrlo desde la terminal de comandos.
Fedora
Siendo Fedora, al igual que CentOS, otra distribución derivada de Red Hat, los comandos o procesos de instalación a ejecutar podrían ser similares entre ambos sistemas.
# Igual que en el caso anterior, descargue el repositorio y añádalo al fichero de configuración de repositorios de su distribución Fedora
sudo curl -s https://copr.fedorainfracloud.org/coprs/supervillain/i2pd/repo/epel-7/supervillain-i2pd-epel-7.repo -o /etc/yum.repos.d/i2pd-epel-7.repo
# Prosiga activando el repositorio en su distribución Fedora
sudo dnf copr enable supervillain/i2pd
# Instale el paquete I2Pd
sudo dnf install i2pd
# Nuevamente, igual que en el caso anterior, ejecute este comando si y solo si desea que su distribución Fedora ejecute I2Pd en cada arranque del sistema
sudo systemctl enable –now i2pd
Con esto así, ejecute I2Pd desde el menú de aplicaciones o bien desde su terminal de comandos.
I2Pd se encuentra disponible en el AUR. Puede instalarlo mediante el siguiente comando:
yay -S i2pd
Hecho esto, ejecute I2Pd desde la terminal de comandos o menú de aplicaciones de su distribución Arch Linux.
Gentoo Linux podría ser la distribución menos recomendada para instalar, conectar y configurar tanto I2P como I2Pd. Dependiendo del equipo, la máquina, conexión, parámetros de configuración y compilación del núcleo así como los controladores de red, eventualmente es posible que numerosas otras redes descentralizadas y anónimas generen algún problema o inconveniente para instalar, compilar, configurar, funcionar y conectar correcta y apropiadamente. No es porque el sistema operativo tenga un problema, al contrario, Gentoo Linux está perfecto. El problema radica plenamente en el usuario y su capacidad para instalar, compilar y configurar manualmente tanto el núcleo del sistema como cada paquete de software que instale. No es un secreto que Gentoo Linux es una distribución enfocada a usuarios más avanzados y solamente funcionará correctamente si éstos saben utilizarla compilando y configurando los paquetes de software que instalen. Por tanto, I2Pd sólo funcionará eficientemente si el usuario entiende cómo instalar, compilar y configurar el núcleo Linux, los controladores de red, el cortafuegos, redes a las que se conecta y proxys de su distribución Gentoo Linux, como también así el mismo paquete de software I2Pd. En la mayoría de los casos, lo más seguro y confiable es compilar el software directamente desde su código fuente. Sin embargo, con el objetivo de intentar mitigar o facilitar este proceso de alguna manera, de todas formas existe un paquete de software, aunque en estado de inestable, disponible en los repositorios oficiales de la distribución. Si prefiere intentar esta última opción, entonces ejecute el siguiente comando:
emerge –ask net-vpn/i2pd
emerge net-vpn/i2pd
Si todo marcha bien, finalizado el proceso de instalación y llegado al prompt, ejecute I2Pd desde la terminal de comandos o menú de aplicaciones. En caso de lo contrario, podrá importar el repostorio GIT e instalar el software compilando el código manualmente.
Nunca se ha demostrado oficialmente que I2Pd sea estable y funcional trabajando sólida, correcta y eficientemente en FreeBSD. Existe un paquete disponible en el repositorio FreshPorts, uno de los oficiales de la distribución, pero su funcionamiento depende estrictamente de la instalación del mentado sistema operativo en la computadora así como también de la máquina misma, especialmente de su tarjeta de red y el controlador instalado por el sistema operativo para gestionar las conexiones de red, puertos y tipos de protocolos. De acuerdo con las experiencias, el usuario poco puede hacer para solucionar algún presunto o eventual problema, complicación o dificultad que llegue a encontrar. No obstante, de todas formas queda abierta la invitación para todo aquél que guste aventurarse con I2Pd en semejante sistema operativo. Los pasos a seguir se encuentran en el mismo repositorio del susodicho software.
Sin embargo, en caso de que alguno de los mencionados procedimientos de instalación para cada distribución GNU/Linux llegase a fallar, si el mentado software en disputa no se encuentra disponible para su distribución, si no ha funcionado como esperaba, si por alguna razón no pudiese o no quisiera seguirlos aplicándolos en su sistema, todavía existen algunas alternativas.
Snapcraft es una tienda de aplicaciones y gestor de software desarrollado por la empresa Canonical para distribuciones GNU/LInux sirviendo como alternativa para la búsqueda, obtención, compilación instalación, configuración y manejo de software que en algunas circunstancias, o en ciertos casos, podría resultar difícil de adquirir, aunque es importante aclarar que en algunas distribuciones (principalmente aquellas basadas en Ubuntu o Debian GNU/Linux) podría encontrarse pre-instalado por defecto.
Dicho así, para instalar un paquete de Snapcraft, primero necesita instalar el software. Esto lo puede hacer mediante el comando:
# Debian GNU/Linux
sudo apt-get install snapd
# ArchLinux
yay -S snapd
# Fedora/CentOS/RHEL
sudo dnf install snapd
Llegado al prompt, deberá ejecutar sudo systemctl enable –now snapd y instale I2Pd con el comando:
sudo snap install i2pd
Con esto así, ahora ejecute i2pd desde la terminal de comandos de su distribución GNU/Linux o bien desde el menú de aplicaciones disponible.
Igual que en el caso anterior, Flatpak es otra plataforma de difusión, descarga e instalación de aplicaciones, software y gestor de paquetes con una gran cantidad de software disponible para toda distribución GNU/Linux, permitiéndole al usuarix instalar muchas herramientas que originalmente no estarían disponibles o no sería posible instalar en GNU/Linux, como también así ofrecer una alternativa de instalación de confianza e históricamente muy exitosa.
No obstante, en este caso tendrá a su disposición la versión gráfica de I2Pd en Qt, algo que quizás puede interesarle o resultar útil por comodidad con una interfáz más amigable, si no desea instalar Java ni tampoco conectarse a I2P y configurar túneles, complementos, extensiones, aplicaciones, clientes o servicios mediante la terminal de comandos.
En consecuencia, el procedimiento a continuación es algo similar al anterior; para instalar I2Pd desde el repositorio de Flatpak primero necesita instalar Flatpak. Sin embargo, igual que en el caso anterior, nuevamente debemos aclarar que muchas distribuciones lo llevan pre-instalado por defecto, como es el caso de Linux Mint, Pure OS, Zorin OS, Endless OS, Cent OS y Fedora.
# Debian GNU/Linux
sudo apt-get install flatpak
# ArchLinux
yay -S flatpak
#Alpine Linux
sudo apk add flatpak
# Ataraxia Linux
sudo neko em flatpak
# Clear Linux
sudo swupd bundle-add desktop
# Void Linux
sudo xbps-install -S flatpak
# Nix OS
sudo echo «services.flatpak.enable = true;» >> /etc/nixos/configuration.nix
sudo nixos-rebuild switch
# Sulin OS
sudo inary it flatpak
# Solus
sudo eopkg install flatpak xdg-desktop-portal-gtk
# OpenSUSE
sudo zypper install flatpak
# Gentoo Linux
echo ‘sys-apps/flatpak ~amd64\nacct-user/flatpak ~amd64\nacct-group/flatpak ~amd64\ndev-util/ostree ~amd64’ >> /etc/portage/accept_keywords/flatpak
emerge sys-apps/flatpak
Finalmente, habiendo instalado Flatpak en su distribución, ahora necesitará añadir el repositorio de Flathub y conjuntamente podrá instalar I2Pd.
sudo flatpak remote-add –if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub website.i2pd.i2pd
De esta forma, podrá correr I2Pd ejecutándolo desde el menú de aplicaciones o bien mediante el siguiente comando:
flatpak run website.i2pd.i2pd
Hecho esto, podrá usted obtener la interfáz gráfica de I2Pd en Qt disfrutando de su simplicidad, sencillez y eficacia para administrar y configurar su enrutador I2P.
Para más información sobre cómo ejecutar, configurar y utilizar I2Pd, favor visitar su documentación oficial.
Funcionamiento de I2P
Por una parte, I2P hace una clara distinción entre los propios enrutadores y los servicios que los usuarios tengan publicados anónimamente en sus nodos. Gracias a estos servicios, los usuarios podrán ofrecer en la red una serie de puntos de salida o destinos locales asociados a las aplicaciones que tengan en ejecución, para que dentro de I2P sean utilizados por otros usuarios.
En pocas palabras, se podría decir que un destino permite el intercambio de mensajes, tanto el envío como la recepción, en un enrutador determinado para una dirección IP y puerto concretos. Por ejemplo, en I2P puede encontrar destinos que pueden servir para distintos fines: almacenamiento en la nube descentralizado, intercambio de archivos, servidores web anónimos (también conocidos como eepsites), servidores de correo, IRC, XMPP, SSH, descarga de archivos mediante Torrent, etcétera.
Por otra parte, el concepto de túnel en I2P es clave para entender el funcionamiento de esta red anónima. El objetivo principal de los túneles es el encaminamiento y direccionamiento de mensajes a través de un conjunto de enrutadores, pares o nodos previamente seleccionados y de un número configurable, hacia un destino concreto. Estos túneles son creados de forma temporal y solo permiten que la comunicación viaje en un único sentido (nunca de forma bidireccional), ya sea para enviar mensajes utilizando un túnel de salida o bien para recibir mensajes utilizando un túnel de entrada.
El hecho de que estos túneles sean completamente independientes dificulta realmente no solo los ataques de análisis de tráfico sino también los ataques de correlación. Ya que los túneles de entrada y de salida no guardan ningún tipo de relación, y solo el usuario que los crea conoce exactamente los enrutadores por los que pasan los mensajes.
Además de todo esto, para navegar en I2P o utilizar sus servicios es imperativo configurar cada aplicación con la dirección IP del nodo o equipo donde se ejecute, el puerto y protocolo correspondientes, comenzando por el navegador web. En caso de ejecutarlo en su propia máquina, la dirección IP debe ser 127.0.0.1 y para navegar se necesita el puerto 4444 en la configuración de proxy HTTP y SSL, mas de lo contrario podría cambiar la dirección IP, el puerto y/o protocolo dependiendo del servicio al que se quiera conectar y el equipo donde se encuentre alojado el nodo. Si se trata de un dispositivo conectado dentro de la red local, podría ser 172.X.X.X, 192.X.X.X o 10.X.X.X y en caso de montarlo en un servidor externo, solamente se configura su dirección IP con los respectivos puertos y protocolos para el servicio deseado, y dependiendo de cual se trate quizás requiera de alguna configuración extra en el enrutador, al igual que si desea acceder al mismo, monitorizar sus procesos o modificar sus configuraciones.
De este modo, para anonimizar las conexiones, cada aplicación cliente utiliza servicios que crean túneles de entrada y salida compuestos por 3 enrutadores, pares o nodos cada uno, conocidos con el nombre de saltos, que enrutan, encaminan y direccionan el mensaje fragmentado en una dirección (hacia o desde el cliente, par o nodo al cual se conecte, respectivamente). No obstante, éstos saltos son configurables y personalizables de acuerdo a la velocidad, rentabilidad y seguridad de tráfico y conexión.
A su vez, cuando un cliente quiere enviar un mensaje a otro cliente, conectar con un servicio o plataforma, envía ese mensaje a través de uno de sus túneles de salida hacia uno de los túneles de entrada del otro cliente o servicio conectado, ambos compuestos por 3 saltos cada uno.
Para hacer todo esto posible, es necesario que cada mensaje transferido en I2P tenga un formato específico y una serie de capas de cifrado asimétrico que impidan la intercepción o manipulación por parte de 3eros. Con este objetivo en mente, entra en juego el protocolo I2NP (Protocolo de Red de I2P), el cual es el encargado de definir el formato y reglas básicas para la construcción y estructuración de mensajes y paquetes de datos en I2P administrando el enrutado y mezclado de los mensajes entre enrutadores, pares y nodos y permitiendo así un envío seguro entre cada uno de lxs participantes que forman un túnel de salida dentro de la red. Antes de que un mensaje pueda ser enviado, la puerta de enlace de túnel de salida (primer enrutador de un túnel de salida) se encarga de acumular un número fijo de mensajes I2NP del cliente y los preprocesa, fragmentándolos y mezclándolos, produciendo de esta manera lo que se conoce como mensaje de túnel.
Los mensajes I2NP tienen un tamaño variable entre 0 KB y 64 KB, mientras que los mensajes de túnel tienen un tamaño fijo de 1 KB. Sin embargo, aunque el máximo tamaño de carga normalmente es de 64 KB, el tamaño está restringido adicionalmente por el método de fragmentación de mensajes I2NP en múltiples mensajes de túnel de 1 KB, como se describe en la página de implementación de túnel. El número máximo de fragmentos es 64, y el mensaje podría no estar pefectamente alineado, así que el mensaje debe ajustarse nominalmente en 63 fragmentos.
Finalmente, el mensaje es cifrado aplicando múltiples capas, utilizando la clave pública de cada uno de los saltos o participantes en cada túnel, generando de este modo lo que se conoce como mensaje garlic, los cuales son los mismos mensajes de túnel pero cifrados mediante los algoritmos ElGamal/AES+SessionTag. Cuando este mensaje garlic pasa por cada uno de los enrutadores miembros de cada túnel, se remueve una de las capas de cifrado utilizando la clave privada del correspondiente enrutador en el cual se encuentre, con lo que el mencionado nodo participante en la conexión únicamente podrá acceder a las instrucciones de entrega en las que se indica la dirección del siguiente enrutador. Sin embargo, no puede acceder al resto del mensaje ya que éste se encuentra fragmentado y recubierto por otras capas de cifrado, entre ellas la correspondiente a sólo ser descifrada por el siguiente enrutador con el cual se repetirá la misma situación hasta llegar al último enrutador participante en el túnel de salida que tendrá el trabajo de remover la última capa de cifrado del mensaje garlic, accediendo de esta forma al mensaje de túnel únicamente cifrado por la clave pública del destino final y receptor del mensaje.
Éste susodicho enrutador es el encargado de reensamblar los fragmentos del mensaje I2NP original y reenviarlo a la puerta de enlace del túnel de entrada del destinatario, el cual a su vez se encarga de aplicar los mismos procedimientos realizados por la puerta de enlace del túnel de salida del emisor del mensaje, es decir fragmentar el mensaje I2NP recibido, mezclar los fragmentos volviendo a generar un nuevo mensaje de túnel y finalmente cifrar el mensaje de túnel para obtener un mensaje garlic, el cual será enviado al siguiente participante del túnel de entrada del destinatario del mensaje.
Para más información sobre este proceso, favor de leer la documentación ofical sobre Enrutamiento de Túnel.
No obstante, esto no sería posible sin la DHT, también conocida como NetDB (base de datos de red) que funciona sobre una estructura descentralizada y auto-organizada en base al algoritmo Kademlia, a la cual se consultan las direcciones de servicios o plataformas a lxs que se quiera conectar, lxs que posteriormente son almacenados en la libreta de direcciones de su enrutador I2P, junto con las de cada salto que componga sus túneles, Paralelamente, se envía la información, dirección y datos anónimos de su propio enrutador para almacenarse en la misma base de datos, permitiendo a otrxs usuarixs consultar dicha información para comunicarse con usted, contactarle y enviarle un mensaje, o también utilizarlo como salto en la composición y construcción de otros túneles dentro de la red.
En efecto, como se ha mencionado anteriormente, para conectar con los saltos de cada túnel es imperativo tener su clave pública de manera tal que podamos cifrar el mensaje por capas, llamados mensajes garlic, además de hacerlo con la clave pública del destino final, todo esto bajo algoritmos, estándares, especificaciones y sistemas criptográficos asimétricos y de curva elíptica como AES, RSA, SHA, Diffie Hellman y ElGamal, entre otros. Entonces, cuando se conecta a I2P su enrutador envía a la susodicha DHT o NetDB las consultas de los nodos y pares disponibles o que se sean alcanzables para utilizarlos como saltos en sus túneles de salida acorde a las configuraciones predeterminadas por defecto o las definidas por el usuario en su enrutador (esta información es conocida como routerInfo). Luego, una vez teniendo la cantidad de saltos suficientes para construír su túnel de salida, buscará la información, direcciones y claves públicas de los servicios o las plataformas a las que se quiera conectar o lxs amigxs con lxs que se desee comunicar junto con las de cada salto del túnel de entrada del destino, aunque ésto también puede incluirse muy detalladamente en los propios mensajes enviados por el interlocutor remitente (esta información es conocida como leaseSet).
En consecuencia, habiendo estudiado, analizado y comprendido los procesos de instalación, administración y operación de I2P, proceda con la configuración del navegador web para visitar los sitios y páginas contenidas accediendo a todo tipo de contenido y material dentro de la red I2P.
Configuración del navegador web
Según muchxs usuarixs de las comunidades hacker, GNU/Linux, software libre y derivadas, se considera que Mozilla Firefox es por lejos la mejor opción para navegar en I2P y desde siempre ha sido profundamente recomendado por los propios administradores y dirigentes del proyecto. Mozilla Firefox es un navegador robusto, de semántica estructurada y resistente a fallos que permite configurar todo abierta y transparentemente para con el navegador mismo y el usuario, además de ofrecer un ambiente de programación avanzado para la integración de múltiples API externas, así como implementar diferentes extensiones para el tratamiento de información sensible y delicada que pueden trabajar perfectamente manejando datos personales y confidenciales sin arriesgar la privacidad, seguridad ni colapzar el navegador, pestañas y páginas web en ambientes inestables o limitados.
En efecto, desde Mozilla Firefox tendrá a su disposición una extensión que configura el navegador especialmente para utilizarse con I2P permitiéndole conectarse con todo tipo de plataformas, servicios y navegando entre las páginas y sitios web de la red, además de habilitar algunas medidas de privacidad y un entorno de administración y operación del enrutador I2P simplificado.
No obstante, de otra forma, igual puede configurar su navegador Mozilla Firefox manualmente, ya sea aún teniendo la susodicha extensión para verificar en detalle que todo esté en órden, como también sin instalar nada. Para esto, puede hacerlo dirigiéndose al módulo de configuraciones de Mozilla Firefox en «about:preferences» o Menú de Opciones > Preferencias > General, luego descienda hasta la sección «Configuraciones de Red».
En dicha sección encontrará distintas configuraciones de red para cada caso, especificando el puerto, servidor o dirección IP que se desee. Pero lo importante es activar la opción que dice «Configuración manual de proxy», en donde deberá modificar los campos de Proxy HTTP y Proxy HTTPS escribiendo la dirección IP del servidor local de la máquina en la que se ejecuta I2P, generalmente 127.0.0.1, con el puerto 4444 en ambas opciones y luego más abajo en «Sin proxy para» deberá escribir «localhost, 127.0.0.1».
Terminado esto haga click en «Aceptar», luego se dirige a «about:config», busca la opción «media.peerConnection.ice.proxy_only» y hace click asegurándose de que obtenga el valor True.
Para terminar, puede cerrar la pestaña teniendo su navegador Mozilla Firefox listo y configurado para navegar en I2P, visitar páginas web, consultar contenido, investigar material, interactuar con plataformas y servicios en línea.
Configuración del enrutador I2P en Java
Ahora bien, uno de los detalles más importantes para tener en cuenta al momento de conectarse a I2P es la configuración del enrutador. Entre el ancho de banda, los túneles, complementos, extensiones, aplicaciones y clientes, tendrá una gran cantidad de opciones, módulos y preferencias para configurar su enrutador de I2P de forma fácil, rápida y sencilla. Aunque, de acuerdo con las últimas versiones del enrutador I2P en Java, es probable que se le ofrezca o permita al usuario realizar las configuraciones básicas automáticamente al momento de conectarse por primera vez a la red, de todas formas es prudente explorar opciones y alternativas más detalladas, sobre todo en caso de algún fallo, dificultad o complicación al momento de gestionar, manejar y operar las configuraciones básicas dispuestas por su enrutador I2P. Para comenzar, ejecute su navegador de preferencia, diríjase hacia la dirección IP del equipo desde el cual se conecta a I2P apuntando al puerto 7657 (en caso de conectarse desde su computadora portáti o de escritorio, comúnmente utilizada para el trabajo, estudios o uso personal, ésto corresponde a la dirección IP del servidor local de la máquina, es decir http://127.0.0.1:7657/home), busque el módulo de configuración de su enrutador que debería visualizar en la página de inicio, donde encontrará un menú con múltiples y diferentes opciones, seleccione la pestaña «Ancho de Banda» y determine sus valores acorde a su velocidad y rendimiento de conexión a Internet. Una vez efectuados las configuraciones deseadas, no olvide guardar los cambios pinchando en el botón «Guardar cambios» ubicado al final o los pies de la página. En el presente ejemplo, para facilitar el correcto y adecuado entendimiento del proceso en disputa, se utilizará la dirección del servidor local http://127.0.0.1:7657/config.
Opcionalmente, también puede configurar sus túneles y servicios acorde a lo que necesite. Ésto último se ubica en http://127.0.0.1:7657/i2ptunnelmgr, donde encontrará varias opciones que le podrían sugerir una multitud de ideas sobre plataformas o redes a las cuales conectarse y disponer de sus servicios, por ejemplo, interactuando con otros usuarios, compartiendo perspectivas, nutriéndose de nuevas energías, almacenando archivos en nubes cifradas y descentralizadas, exponiendo diferentes puntos de vista anónimamente sin miedo a represalias, impulsando nuevas iniciativas que ayuden a crecer la comunidad y colaborando con un gran número de diferentes proyectos anónimos dentro de I2P, así como inclusive montar o proponer los suyos propios acorde a sus intereses y capacidades personales ofreciendo también nuevos caminos, opciones y alternativas para toda la red.
Otro detalle muy importante es que, por el contrario al resto de Internet estructurado bajo el sistema cliente-servidor, para visitar cualquier sitio web en I2P necesitará agregar a su libreta de direcciones la clave en base64 del destino al que desea visitar, o bien disponer de su clave en base32 que le permitirá acceder directamente. Esto lo puede encontrar en las redes de difusión de contenidos, interacción y comunicación con otros usuarios o bases de datos distribuidas y descentralizadas que almacenan y comparten dichas claves.
No obstante, la libreta de direcciones de su enrutador I2P ya incorpora numerosas claves por defecto para ayudarle a integrarse con la red y conocer varios sitios de interés.
Para más detalles sobre configuración de navegadores web, visitar la guía de Configuración del Navegador Web.
Para información más técnica, visitar Índice de la Documentación Técnica.
Iran Charter ( ایران چارتر ) is Iran’s first online charter and flight ticket purchase system Charter,as the first comprehensive online ticket service provider of charter airline tickets,seeks to provide easy and convenient services to customers for easy purchase of airline tickets,so we believe that the first principle of e-commerce is the ease of operation, with a contract As a ticket supplier,We have made it easy for you with charter companies and different airlines.
You have remarked very interesting details! ps decent website . «The empires of the future are the empires of the mind.» by Sir Winston Leonard Spenser Churchill.
Greetings! Very helpful advice on this article! It is the little changes that make the biggest changes. Thanks a lot for sharing!
Really Appreciate this post, can you make it so I get an alert email when you write a fresh update?
The subsequent time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my option to read, however I really thought youd have one thing interesting to say. All I hear is a bunch of whining about something that you possibly can repair for those who werent too busy on the lookout for attention.
I regard something genuinely special in this internet site.
Wow, marvelous blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your site is great, as well as the content!
Perfectly pent content, thanks for entropy.
Its excellent as your other articles : D, regards for putting up. «The real hero is always a hero by mistake he dreams of being an honest coward like everybody else.» by Umberto Eco.
Hello.This article was really interesting, particularly since I was looking for thoughts on this topic last Friday.
Hi, Neat post. There is an issue with your website in web explorer, may test thisK IE nonetheless is the market leader and a large portion of other people will miss your great writing because of this problem.
Hiya, I am really glad I’ve found this info. Nowadays bloggers publish just about gossips and web and this is really annoying. A good website with interesting content, that’s what I need. Thanks for keeping this website, I will be visiting it. Do you do newsletters? Can not find it.
Keep functioning ,impressive job!
I am glad to be a visitant of this staring website! , thanks for this rare info ! .
I like this post, enjoyed this one thankyou for posting.
Hiya, I am really glad I’ve found this information. Nowadays bloggers publish only about gossips and web and this is really annoying. A good site with exciting content, this is what I need. Thank you for keeping this web site, I’ll be visiting it. Do you do newsletters? Can’t find it.
Very interesting topic, thankyou for putting up.
I like this post, enjoyed this one appreciate it for putting up.
I believe this website has some rattling excellent info for everyone :D. «Heat cannot be separated from fire, or beauty from The Eternal.» by Alighieri Dante.
I truly appreciate this post. I’ve been looking everywhere for this! Thank goodness I found it on Bing. You have made my day! Thanks again!
After all, what a great site and informative posts, I will upload inbound link – bookmark this web site? Regards, Reader.
Appreciate it for helping out, excellent info. «Riches cover a multitude of woes.» by Menander.
I got what you intend, thanks for putting up.Woh I am happy to find this website through google. «Delay is preferable to error.» by Thomas Jefferson.
I was very pleased to find this web-site.I wanted to thanks for your time for this wonderful read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you blog post.
Sweet blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Many thanks
But a smiling visitant here to share the love (:, btw great layout. «Treat the other man’s faith gently it is all he has to believe with.» by Athenus.
Magnificent web site. Plenty of useful info here. I am sending it to some buddies ans also sharing in delicious. And naturally, thank you on your effort!
Hello. remarkable job. I did not expect this. This is a splendid story. Thanks!
It?¦s actually a nice and useful piece of information. I am glad that you just shared this helpful information with us. Please stay us informed like this. Thank you for sharing.
I like this post, enjoyed this one regards for posting.
Hello There. I found your weblog using msn. That is an extremely neatly written article. I’ll make sure to bookmark it and come back to learn extra of your helpful information. Thanks for the post. I will definitely comeback.
Wohh exactly what I was looking for, appreciate it for posting.
I like this web site so much, saved to fav. «To hold a pen is to be at war.» by Francois Marie Arouet Voltaire.
I think this web site has got some really excellent info for everyone. «As we grow oldthe beauty steals inward.» by Ralph Waldo Emerson.
Thanks a lot for sharing this with all of us you really know what you’re talking about! Bookmarked. Kindly also visit my website =). We could have a link exchange arrangement between us!
You made some good points there. I looked on the internet for the subject matter and found most persons will agree with your blog.
I got what you intend, thankyou for posting.Woh I am happy to find this website through google.
It’s really a great and useful piece of info. I’m glad that you shared this useful info with us. Please keep us informed like this. Thanks for sharing.
I believe you have mentioned some very interesting details, thankyou for the post.
Great blog here! Also your web site loads up fast! What web host are you using? Can I get your affiliate link to your host? I wish my web site loaded up as quickly as yours lol
Would you be occupied with exchanging links?
Enjoyed reading this, very good stuff, thankyou.
Hello, you used to write excellent, but the last few posts have been kinda boringK I miss your tremendous writings. Past several posts are just a bit out of track! come on!
F*ckin’ remarkable things here. I’m very glad to see your article. Thanks a lot and i am looking forward to contact you. Will you kindly drop me a e-mail?
After study a few of the blog posts on your website now, and I truly like your way of blogging. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.
Regards for this terrific post, I am glad I detected this web site on yahoo.