Posts Servidor Web Apache 2.4
Post
Cancel

Servidor Web Apache 2.4

Tarea 1: Crea un escenario Vagrant con una máquina con una red pública o utiliza una máquina del cloud. Instala el servidor web Apache2 en la máquina. Modifica la página index.html que viene por defecto y accede a ella desde un navegador. Entrega una captura de pantalla accediendo a ella.

Instalamos apache2 en el equipo que acabamos de crear mediante vagrant.

1
vagrant@apache2:~$ sudo apt-get install apache2

Configuramos elsiguiente fichero /var/www/index.html

Tarea 2: Configura la resolución estática en los clientes y muestra el acceso a cada una de las páginas.

Primero vamos a desactivar la web por defecto con:

1
root@apache2:/etc/apache2/sites-available# a2dissite 000-default.conf

Y copiamos la web por defecto a los nuevos sitios web

1
2
root@apache2:/etc/apache2/sites-available# cp 000-default.conf iesgn.conf
root@apache2:/etc/apache2/sites-available# cp 000-default.conf departamentos.conf

Su directorio base será /srv/www/ y contendrá una página llamada index.html

1
2
root@apache2:/srv/www# mkdir iesgn
root@apache2:/srv/www# mkdir departamentos

Editamos el fichero que hemos creado previamente

1
root@apache2:/etc/apache2/sites-available# nano iesgn.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName www.iesgn.org

        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/iesgn

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Cambiamos el segundo sitio web departamentos.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
root@apache2:/etc/apache2/sites-available# nano departamentos.conf

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName www.departamentosgn.org

        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/departamentos

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Ahora vamos a activar los sitios web:

1
2
3
4
5
root@apache2:/etc/apache2/sites-available# a2ensite iesgn.conf 
Site iesgn already enabled

root@apache2:/etc/apache2/sites-available# a2ensite departamentos.conf 
Site departamentos already enabled

Le damos permisos:

1
root@apache2:/srv/www# chown -R www-data:www-data .

Reiniciamos los servicios de apache2:

1
root@apache2:/srv/www# systemctl restart apache2

Cambiamos la configuración de apache.

1
vagrant@apache2:~$ sudo nano /etc/apache2/apache2.conf

Descomentamos la siguiente linea

1
2
3
4
5
#<Directory /srv/>
#       Options Indexes FollowSymLinks
#       AllowOverride None
#       Require all granted
#</Directory>

Tarea 3: Cuando se entre a la dirección www.iesgn.org se redireccionará automáticamente a www.iesgn.org/principal, donde se mostrará el mensaje de bienvenida. En el directorio principal no se permite ver la lista de los ficheros, no se permite que se siga los enlaces simbólicos y no se permite negociación de contenido. Muestra al profesor el funcionamiento.

Creamos el directorio principal dento de /srv/www/iesgn

1
2
3
4
5
vagrant@apache2:/srv/www/iesgn$ sudo mkdir principal
vagrant@apache2:/srv/www/iesgn$ ls
index.html  principal

vagrant@apache2:/srv/www/iesgn$ sudo mv index.html principal/

Por último editamos el archivo de configuración de apache2 para que no se permita ver la lista de los ficheros, no se permita que se siga los enlaces simbólicos y no se permita la negociación de contenido.

1
2
3
4
5
6
7
8
9
10
11
12
vagrant@apache2:/etc/apache2/sites-available$ sudo nano iesgn.conf 

        ServerName www.iesgn.org
        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/iesgn
        RedirectMatch permanent ^/$ "/principal/" 
                <Directory srv/www/iesgn/principal>
                        Options -Indexes -MultiViews -FollowSymLinks
                        AllowOverride None
                        Order allow,deny
                        allow from all
                </Directory>

Tarea 4: Si accedes a la página www.iesgn.org/principal/documentos se visualizarán los documentos que hay en /srv/doc. Por lo tanto se permitirá el listado de fichero y el seguimiento de enlaces simbólicos siempre que el propietario del enlace y del fichero al que apunta sean el mismo usuario. Muestra al profesor el funcionamiento.

Lo primero que tenemos que hacer es crear un archivo en /srv/doc:

1
2
3
4
vagrant@apache2:/srv$ sudo mkdir doc
vagrant@apache2:/srv$ sudo chown -R www-data:www-data /srv/doc/
vagrant@apache2:/srv/doc$ ls
    archivo

Creamos un directorio documentos:

1
vagrant@apache2:/srv/www/iesgn/principal$ sudo mkdir Documentos

Añadimos en la configuración de apache2 las opciones para permitir el listado de fichero y el seguimiento de enlaces simbólicos siempre que sean a ficheros o directorios cuyo dueño sea el usuario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        ServerName www.iesgn.org
        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/iesgn
        RedirectMatch permanent ^/$ "/principal/" 
                <Directory srv/www/iesgn/principal>
                        Options -Indexes -MultiViews -FollowSymLinks
                        AllowOverride None
                        Order allow,deny
                        allow from all
                </Directory>
        Alias /principal/documentos/ /srv/doc/
                <Directory /srv/doc/>
                        Options +Indexes  +SymLinksIfOwnerMatch
                </Directory>

Creamos dos directorios en el /home de vagrant

1
2
3
vagrant@apache2:~$ mkdir pruebaenlace1 pruebaenlace2
vagrant@apache2:~$ ls
    pruebaenlace1  pruebaenlace2

Creamos los enlaces simbólicos.

1
2
root@apache2:/home/vagrant# ln -svf /home/vagrant/pruebaenlace1 /srv/doc
root@apache2:/home/vagrant# ln -svf /home/vagrant/pruebaenlace2 /srv/doc

Le damos permisos:

1
root@apache2:/home/vagrant# chown -h www-data:www-data pruebaenlace1
1
2
3
4
root@apache2:/home/vagrant# ls -la

        drwxr-xr-x 2 www-data www-data 4096 Oct 23 07:28 pruebaenlace1
        drwxr-xr-x 2 vagrant  vagrant  4096 Oct 23 06:59 pruebaenlace2

Y ya tenemos el enlace simbólico creado:

1
2
3
4
root@apache2:/srv/doc# ls -la

        lrwxrwxrwx 1 www-data www-data   27 Oct 23 07:28 pruebaenlace1 -> /home/vagrant/pruebaenlace1
        lrwxrwxrwx 1 root     root       27 Oct 23 07:30 pruebaenlace2 -> /home/vagrant/pruebaenlace2

Tarea 5: En todo el host virtual se debe redefinir los mensajes de error de objeto no encontrado y no permitido. Para el ello se crearan dos ficheros html dentro del directorio error. Entrega las modificaciones necesarias en la configuración y una comprobación del buen funcionamiento.

Editamos el siguiente fichero:

1
vagrant@apache2:/etc/apache2/conf-available$ sudo nano localized-error-pages.conf

Añadimos lo siguientes:

1
2
3
4
5
6
7
Alias /error/404 /srv/error/404.html
ErrorDocument 404 /error/404
Alias /error/403 /srv/error/403.html
ErrorDocument 403 /error/403
<Location /errores/>
        SetHandler none
</Location>

Editamos la salida de error y añadimos un mensaje:

1
2
vagrant@apache2:/srv/error$ sudo nano 404.html
vagrant@apache2:/srv/error$ sudo nano 403.html

Creamos y cambiamos los permisos de un fichero prueba para que salte el error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vagrant@apache2:/srv$ sudo touch error2.txt

vagrant@apache2:/srv$ ls -l
total 12
drwxr-xr-x 2 www-data www-data 4096 Oct 22 07:23 doc
drwxr-xr-x 2 root     root     4096 Oct 22 08:08 error
-rw-r--r-- 1 root     root        0 Oct 22 08:10 error2.txt
drwxr-xr-x 4 www-data www-data 4096 Oct 22 07:07 www

vagrant@apache2:/srv$ sudo chmod 600 error2.txt 

vagrant@apache2:/srv$ ls -l
total 12
drwxr-xr-x 2 www-data www-data 4096 Oct 22 07:23 doc
drwxr-xr-x 2 root     root     4096 Oct 22 08:08 error
-rw------- 1 root     root        0 Oct 22 08:10 error2.txt
drwxr-xr-x 4 www-data www-data 4096 Oct 22 07:07 www
1
2
3
vagrant@apache2:/srv$ sudo mv error2.txt doc/
vagrant@apache2:/srv/doc$ ls
archivo.txt  error2.txt

Tarea 6: Añade al escenario Vagrant otra máquina conectada por una red interna al servidor. A la URL departamentos.iesgn.org/intranet sólo se debe tener acceso desde el cliente de la red local, y no se pueda acceder desde la anfitriona por la red pública. A la URL departamentos.iesgn.org/internet, sin embargo, sólo se debe tener acceso desde la anfitriona por la red pública, y no desde la red local.

Creamos una máquina cliente en la misma red interna

1
2
3
4
5
6
7
Vagrant.configure("2") do |config|
  config.vm.box = "debian/buster64" 
  config.vm.hostname = "apache2cliente" 
  config.vm.network :public_network,:bridge=>"wlan0" 
  config.vm.network "private_network", ip: "192.168.10$
        virtualbox__intnet: "redinterna" 
end

Creamos los directorios que vamos a necesitar

1
2
vagrant@apache2:/srv/www/departamentos$ ls
index.html  internet  intranet

Le damos permisos

1
vagrant@apache2:/srv/www/departamentos$ sudo chown -R www-data:www-data /srv/www/departamentos/

Editamos el fichero de configuración de departamentos.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost *:80>
        ServerName departamentos.iesgn.org
        ServerAdmin webmaster@localhost
        DocumentRoot /srv/www/departamentos
        <Directory /srv/www/departamentos>
                Options FollowSymLinks Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        <Directory /srv/www/departamentos/intranet>
                Options Indexes FollowSymLinks MultiViews
                Require ip 192.168.100
        </Directory>
        <Directory /srv/www/departamentos/internet>
                Options Indexes FollowSymLinks MultiViews
                Require ip 172.22
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Y lo activamos con:

1
vagrant@apache2:/etc/apache2/sites-available$ sudo a2ensite departamentos.conf

Comprobamos si funciona.

Comprobaciones desde el cliente:

1
vagrant@apache2cliente:~$ w3m http://departamentos.iesgn.org/internet

1
vagrant@apache2cliente:~$ w3m http://departamentos.iesgn.org/intranet

Tarea 7: Autentificación básica. Limita el acceso a la URL departamentos.iesgn.org/secreto. Comprueba las cabeceras de los mensajes HTTP que se intercambian entre el servidor y el cliente. ¿Cómo se manda la contraseña entre el cliente y el servidor?. Entrega una breve explicación del ejercicio.

Los usuarios y sus contraseña están encriptadas en un archivo.

Creamos el directorio secreto y le damos permisos:

1
2
vagrant@apache2:/srv/www/departamentos$ sudo mkdir secreto
vagrant@apache2:/srv/www/departamentos$ sudo chown -R www-data:www-data /srv/www/departamentos/

Dentro de /etc/apache2 creamos un directorio llamado login, donde estarán todas las credenciales.

1
vagrant@apache2:/srv/www/departamentos$ sudo htpasswd -c /etc/apache2/login/pass.txt ernesto

Ahora vamos a editar el fichero de configuración.

1
vagrant@apache2:/etc/apache2/sites-available$ sudo nano departamentos.conf

Añadimos lo siguiente:

1
2
3
4
5
6
        <Directory /srv/www/departamentos/secreto>
                AuthUserFile "/etc/apache2/login/pass.txt" 
                AuthName "Palabra de paso" 
                AuthType Basic
                Require valid-user
        </Directory>

AuthUserFile: Ubicación del fichero con los usuarios y sus contraseñas. AuthName: Personalizamos el mensaje que aparecerá en la ventana del navegador que nos pedirá la contraseña. AuthType Basic: Le especificamos que es autenticación básica. Require valid-user: Controla que usuarios tienen permiso para acceder

Reiniciamos apache2 y entramos a http://departamentos.iesgn.org/secreto/

1
sudo systemctl reload apache2.service

Comprueba las cabeceras de los mensajes HTTP que se intercambian entre el servidor y el cliente. ¿Cómo se manda la contraseña entre el cliente y el servidor?.

1
2
3
4
5
6
7
8
9
10
11
12
12:04:11.216219 IP (tos 0x0, ttl 64, id 7782, offset 0, flags [DF], proto TCP (6), length 443)
    honda.46596 > www.iesgn.org.http: Flags [P.], cksum 0x3b8f (correct), seq 1:392, ack 1, win 229, options [nop,nop,TS$
        GET /secreto/ HTTP/1.1
        Host: departamentos.iesgn.org
        User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: es,en-US;q=0.7,en;q=0.3
        Accept-Encoding: gzip, deflate
        DNT: 1
        Connection: keep-alive
        Upgrade-Insecure-Requests: 1
        Authorization: Basic ZXJuZXN0bzplcm5lc3Rv

La contraseña se manda de forma cifrada pero es basica

Tarea 8: Cómo hemos visto la autentificación básica no es segura, modifica la autentificación para que sea del tipo digest, y sólo sea accesible a los usuarios pertenecientes al grupo directivos. Comprueba las cabeceras de los mensajes HTTP que se intercambian entre el servidor y el cliente. ¿Cómo funciona esta autentificación?

Activamos el módulo (auth_digest) con el siguiente comando:

1
2
3
4
5
root@apache2:/home/vagrant# a2enmod auth_digest

Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Module auth_digest already enabled

Ahora vamos a editar el fichero de configuración.

1
2
3
4
5
6
7
8
root@apache2:/etc/apache2/sites-available# nano departamentos.conf

        <Directory /srv/www/departamentos/secreto>
                AuthUserFile "/etc/apache2/login/pass.txt" 
                AuthName "directivos" 
                AuthType Digest
                Require valid-user
        </Directory>

Añadimos las nuevas credenciales al fichero pass.txt.

1
htdigest -c /etc/apache2/login/pass.txt directivos ernesto

Ahora comprobamos si funciona:

Iniciamos sesión con el usuario que hemos puesto en las credenciales del grupo directivos

En el caso de no pertenecer en el grupo directivos no tendremos acceso.

Comprueba las cabeceras de los mensajes HTTP que se intercambian entre el servidor y el cliente. ¿Cómo se manda la contraseña entre el cliente y el servidor?.

1
2
3
4
5
6
7
8
9
10
11
11:05:38.143509 IP (tos 0x0, ttl 64, id 22153, offset 0, flags [DF], proto TCP (6), length 643)
    honda.45994 > www.iesgn.org.http: Flags [P.], cksum 0x01b7 (correct), seq 1:592, ack 1, win 229, options [nop,nop,TS val 3500675810 ecr 2$
        GET /secreto/ HTTP/1.1
        Host: departamentos.iesgn.org
        User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: es,en-US;q=0.7,en;q=0.3
        Accept-Encoding: gzip, deflate
        Connection: keep-alive
        Upgrade-Insecure-Requests: 1
        Authorization: Digest username="ernesto", realm="directivos", nonce="pPaqRQ+XBQA=ee286a6701b18e44d4f6136d47858ad0f26f7f83", uri="/sec$

La contraseña se manda con un cifrado más seguro

Tarea 9: Vamos a combinar el control de acceso (tarea 6) y la autentificación (tareas 7 y 8), y vamos a configurar el virtual host para que se comporte de la siguiente manera: el acceso a la URL departamentos.iesgn.org/secreto se hace forma directa desde la intranet, desde la red pública te pide la autentificación. Muestra el resultado al profesor.

Editamos el fichero de configuración:

1
2
3
4
5
6
7
8
9
vagrant@apache2:/etc/apache2/sites-available$ sudo nano departamentos.conf 

        <Directory /srv/www/departamentos/secreto>
                AuthUserFile "/etc/apache2/login/pass.txt" 
                AuthName "directivos" 
                AuthType Digest
                Require valid-user
                Require ip 192.168.100
        </Directory>

Reiniciamos y probamos:

1
vagrant@apache2:/etc/apache2/sites-available$ sudo systemctl restart apache2.service

Desde la máquina nos pide iniciar sesión.

Desde el cliente local no nos pide iniciar sesión.

1
vagrant@apache2cliente:~$ w3m http://departamentos.iesgn.org/secreto/

Tarea 10: Habilita el listado de ficheros en la URL http://host.dominio/nas.

Voy a utilizar 000webhost

Editamos el fichero .htaccess

Tarea 11: Crea una redirección permanente: cuando entremos en ttp://host.dominio/google salte a www.google.es.

Editamos el fichero de configuración y añadimos la redirección.

1
redirectMatch ^/google$ http://www.google.es

Tarea 12: Pedir autentificación para entrar en la URL http://host.dominio/prohibido. (No la hagas si has elegido como proveedor CDMON, en la plataforma de prueba no funciona.)

Creamos el usuario para la autenticación básica:

1
2
3
4
5
vagrant@apache2:~$ htpasswd -c .htbasic ernesto

New password: 
Re-type new password: 
Adding password for user ernesto

Y subimos el fichero a la web

Editamos el archivo de configuración:

Tarea 13: Módulo userdir: Activa y configura el módulo userdir, que permite que cada usuario del sistema tenga la posibilidad de tener un directorio (por defecto se llama public_html) donde alojar su página web. Publica una página de un usuario, y accede a la misma. Esta tarea la tienes que hacer en tu servidor.

Activamos el módulo userid con el siguiente comando:

1
2
3
4
5
6
root@apache2:/etc/apache2/mods-available# a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
  systemctl restart apache2

root@apache2:/etc/apache2/mods-available# systemctl restart apache2

Creamos el directorio del usuario:

1
2
3
vagrant@apache2:~$ mkdir public_html

vagrant@apache2:~/public_html$ sudo nano index.html

Entramos al directorio:

Tarea 14: En tu servidor crea una carpeta php donde vamos a tener un fichero index.php con el siguiente contenido::

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Conversor de Monedas</title>
  </head>

  <body>
  <form action="index.php" method="get">
        <input type="text" size="30" name="monto" /><br/>
      <select name="pais">
          <option name="Dolar">Dolar</option>
          <option name="Libra">Libra</option>
          <option name="Yen">Yen</option>
      </select>
      <input type="submit" value="convertir" />
     </form>
  <?php
      // averiguamos si se ha introducido un dinero
      if (isset($_GET['monto'])) {
        define ("cantidad", $_GET['monto']);
      } else {
      define ("cantidad", 0);
      }
      if($_GET){
      // definimos los países
      $tasacambios = array ("Libra"=>0.86,"Dolar"=>1.34,"Yen"=>103.56);
      // imprimimos el monto ingresado
      echo "<b>".cantidad." euros</b><br/> ".$_GET["pais"]." = ".cantidad*$tasacambios[$_GET["pais"]]." <br><br>";
      // por cada país imprimimos el cambio
      }
     ?>

  </body>
  </html>

Prueba la página utilizando parámetros en la URL (parámetros GET), por ejemplo: http://nombre_página/php/index.php?monto=100&pais=Libra

Configura mediante un fichero .htaccess, la posibilidad de acceder a la URL http://nombre_página/php/moneda/cantidad, donde moneda indica el nombre de la moneda a la que queremos convertir (Dolar,Libra,Yen) y cantidad indica los euros que queremos convertir.

Creamos el fichero index.php en nuestro servidor:

vagrant@apache2:/srv/www/iesgn$ sudo mkdir php vagrant@apache2:/srv/www/iesgn$ sudo nano index.php

Y copiamos el contenido anterior:

Creamos un fichero .htaccess con el siguiente contenido.

1
2
3
4
5
6
vagrant@apache2:/srv/www/iesgn/php$ sudo nano .htaccess

Options FollowSymLinks
 RewriteEngine On
 RewriteBase /
 RewriteRule ^([0-9]+)/([a-zA-Z]+)$ index.php?monto=$1&pais=$2

Y lo probamos.

URL amigable

IPv6

Tarea 15: Comprueba que el servidor web con la configuración por defecto está escuchando por el puerto 80 en ipv6.

Con el siguiente comando, podemos ver que está escuchando por defecto por el puerto 80 en IPv6:

1
root@apache2:~# netstat -tulpn | grep 80

Tarea 16: Configura la máquina para que tenga una ipv6 global. Activa el virtualhost por defecto y accede a la página principal utilizando la ipv6 global que tiene asignada.

Editamos el fichero Vagrantfile

1
2
3
4
5
6
  config.vm.box = "debian/buster64" 
  config.vm.hostname = "apache2" 
  #config.vm.network :public_network,:bridge=>"wlan0" 
  config.vm.network "private_network", ip: "fde4::1ffb:68a4:f7af:902f" 
  config.vm.network "private_network", ip: "192.168.100.1",
        virtualbox__intnet: "redinterna" 

Desactivamos los virtualhost que hemos configurado previamente y activamos el de por defecto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@apache2:~# a2dissite iesgn.conf
Site iesgn disabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# a2dissite departamentos.conf
Site departamentos disabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# a2ensite 000-default.confç
Enabling site 000-default.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# systemctl reload apache2

Editamos la primera linea del fichero por defecto:

1
2
3
vagrant@apache2:/etc/apache2/sites-available$ sudo nano 000-default.conf 

<VirtualHost fde4::1ffb:68a4:f7af:902f:80>

Reiniciamos los servicios de apache y ya podremos acceder al virtualhost por defecto a través de la dirección IPv6 .

1
2
3
vagrant@apache2:/etc/apache2/sites-available$ sudo systemctl restart apache2

http://[fde4::1ffb:68a4:f7af:902f]/

Tarea 17: Configura la resolución estática para acceder a los virtualhost utilizando ipv6.

Volvemos a activar los virtualhosts anteriores

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@apache2:~# a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# a2ensite iesgn.conf
Enabling site iesgn.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# a2ensite departamentos.conf
Enabling site departamentos.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@apache2:~# systemctl reload apache2

Editamos el fichero /etc/hosts de nuestro equipo:

1
2
3
4
ernesto@honda:~$ sudo nano /etc/hosts

fde4::1ffb:68a4:f7af:902f   www.iesgn.org
fde4::1ffb:68a4:f7af:902f  departamentos.iesgn.org

Y ya podremos acceder a través de IPv6 a los dos virtualhosts.

This post is licensed under CC BY 4.0 by the author.