Neoniet #_
como crear un eepsite apache virtual host
08 Mon Jul 08PM

Cómo crear un eepiste con i2pd y apache2 con VirtualHost en linux - tutorial

En el post anterior explicábamos de forma resumida como crear nuestro primer eppsite en i2p. Pero, ¿y si en el mismo servidor apache queremos tener más de un sitio web alojado? ¿Cómo hago?

Apache dispone de la directiva precisamente para alojar varios sitios web con distintos dominios en el mismo servidor. Su creación es trivial.

Primero copiamos todos los ficheros de nuestro sitio web a una carpeta, generalmente dentro de /var/www. Si no es en esta carpeta debe ser en otra que apache tenga permisos al menos de lectura, que su propietario sea www-data o que pertenezca al grupo www-data con permisos de lectura.

Luego creamos un archivo de configuración de nuestro sitio dentro de /etc/apache2/sites-available/ algo así:

<VirtualHost neoniet.i2p:80>
    ServerName neoniet.i2p
    ServerAlias jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq.b32.i2p
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/neoniet.i2p/public
    ErrorLog ${APACHE_LOG_DIR}/error.neoniet.i2p.log
    CustomLog ${APACHE_LOG_DIR}/access.neoniet.i2p.log combined
</VirtualHost> 

<VirtualHost neoniet.i2p:80> Le indica a apache que todo lo encerrado en este tag corresponde a la configuración de un nuevo sitio web que escucha en el puerto 80 del servidor de la ip correspondiente a nombre de dominio neoniet.i2p.

ServerName neoniet.i2p Indica el nombre de dominio de nuestro sitio y se corresponde con la cabecera host del cliente o del navegador que hace la petición.

ServerAlias Nos permita indicar un nombre alternativo para nuestro servidor, en este caso, nuestra dirección i2p abreviada en Base32 y nuestra clave criptográfica completa en Base64.

ServerAdmin webmaster@localhost Indica la dirección de correo electrónico

Tal y como tenemos el archivo de configuración ya estría listo. Creamos un enlace simbólico a /etc/apache2/sites-availabe/neoniet.i2p.conf a /etc/apache2/sites-enabled/.

Para un sitio en la internet normal ya estaría todo listo, pero i2p es distinto, apache2 y nuestro sistema no saben qué es una dirección i2p, no saben resolver el nombre de dominio pues no se trata de un estándar. De alguna forma tenemos que hacerle saber a apache que neoniet.i2p es un nombre de dominio y que la dirección en Base32 y Base64 también lo son. Para ello tendremos que editar el archivo /etc/hosts.

Si tenemos el router i2p corriendo en la misma máquina en la que tenemos apache habría que añadir las siguiente líneas:

127.0.0.1 neoniet.i2p
127.0.0.1 jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq.b32.i2p

Si el router i2p lo tenemos en una máquina de nuestra red local y el servidor web en otra tendríamos que cambiar 127.0.0.1 por la ip del servidor apache, por ejemmplo 192.168.0.69:

192.168.0.69 neoniet.i2p
192.168.0.69 jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq.b32.i2p

Ahora si reiniciamos apache:

systemctl restart apache2

Y listo ya tendríamos nuestro servidor apache despachando sitios webs en i2p según sus nombres de dominio.

~ric
como crear un eepsite
10 Mon Jun 07PM

Cómo crear un eepiste con i2pd y apache2 en linux - tutorial

Obviamente lo primero que tenemos que hacer es tener correctamente configurado un router i2pd.

Después debemos tener instalado el servidor web Apache2.

En Debian y derivados sería algo tan sencillo como:

sudo apt install apache2

En Archlinux y derivadas:

sudo pacman -S apache2

Una vez instalado apache2 correctamente pasamos a la configuración del i2pd para que cree un tunel hacia nuestro eepsite. Para ello tenemos que añadir al final del archivo tunnels.conf el siguiente texto:

[neoniet.i2p]
type = http
host = neoniet.i2p
port = 80
keys = neoniet.i2p.dat

Donde:

[neoniet.i2p] indica el nombre que tendrá el tunel.

type = http indica el tipo de tunel, como se trata de una página web, en nuestro caso http.

host = neoniet.i2p el nombre del host en el que está alojada nuestra web. En mi caso en mi intranet tengo un host que aloja el blog con el nombre de neoniet.i2p, pero supongo que la mayoría de las veces instalarás el servidor web en el mismo ordenador en el que tengas instalado el router i2pd, en esos cosos deberás poner 127.0.0.1 o localhost.

port = 80 el puerto en el que está escuhando tu servidor apache.

keys = neoniet.i2p.dat el archivo que contendrá las claves del tunel para ser encontrado en la red i2p.

Una vez editado el archivo tunnels.conf toca reiniciar el servidor i2pd en sistemas que usen systemd tan sencillo como:

sudo systemctl restart i2pd

Tras reiniciar se habría creado el tunel y podríamos ver la dirección asignada en la consola web del router, pinchando en el apartado Tunnels. Se vería algo así:

neoniet.i2p ⇒ jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq.b32.i2p:80

Esa sería la dirección de nuestro eppsite. Si queremos ponerle un nombre de dominio más amigable podemos registrar nuestra dirección i2p en inr.i2p.

Ahora toca configurar apache2. Si hubiéramos instalado apache2 únicamente para servir nuestro eepsite bastaría con poner todo nuestro código del eppsite dentro de /var/www/html o en la carpeta que indicase la directiva DocumentRoot de archivo de configuración /etc/apache2/sites-enabled/000-default.conf y ya tendríamos nuestro eepiste listo.

Opss pero resulta que tienes más de una página web alojada en tu apache2 y quieres usar VirtualHost... en el siguiente post ;-)

~ric
inicio
10 Mon Jun 07PM

Ya monté mi primer eepiste :-)

Tocan los últimos retoques y luego contar como lo hice, para queien le interese.

~El inicio