Subido por Marta Fernández Garcñia

DAW DAW ConfiguracYAdminServidoresWeb

Anuncio
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Esquema de contenidos de la práctica:
Instalación y configuración del servidor web apache en debian
1.
Introducción al servicio http de Apache ................................................................. 4
2.
Instalación y comprobación del servidor http de apache...................................... 5
2.1
2.2
2.3
2.4
Instalación de apache2 ................................................................................................. 5
Arranque, parada y reinicio del servicio ........................................................................ 5
Comprobación de que el servicio está iniciado ............................................................. 6
Comprobación da versión do servidor ........................................................................... 6
3.
Desintalar el servicio ................................................................................................ 6
4.
Configuración de apache.......................................................................................... 6
4.1 Comprobación de la sintaxis de configuración de apache ............................................. 7
Para comprobar que la sintaxis de los ficheros de configuración es correcta empleamos el siguiente
comando: ....................................................................................................................... 7
4.2 Copia del fichero de configuración de apache .............................................................. 7
4.3 Configuración básica o general..................................................................................... 7
4.4 Acceso al servidor apache desde un equipo cliente ...................................................... 8
4.4.1
4.4.2
5.
Mi primera página en apache ................................................................................... 9
5.1
5.2
5.3
6.
Comprobación de funcionamiento del servicio desde un cliente ....................................................................... 8
Limpiar la caché del navegador de forma automática........................................................................................ 9
Mi primera página en apache en el directorio por defecto ........................................... 10
Crear una página en apache en un directorio creado dentro del directorio por defecto10
Acceso desde el equipo cliente a las páginas creadas ............................................... 11
Virtualización del servicio web .............................................................................. 12
6.1
6.2
6.3
Copia del fichero de configuración por defecto ........................................................... 12
Contenido del fichero de configuración por defecto .................................................... 12
Opciones de configuración del fichero 000-default.conf: Directivas ............................ 13
6.3.1
6.3.2
6.3.3
6.3.4
6.3.5
Directiva <Directory> ........................................................................................................................................ 13
Directiva Options .............................................................................................................................................. 14
Directiva AllowOverride .................................................................................................................................... 15
Directiva DirectoryIndex. Especificar la página por defecto del sitio web ........................................................ 15
6.3.4.1 Crear la página en el servidor y modificar la directiva DirectoryIndex .............................................. 15
6.3.4.2 Acceso desde el equipo cliente ........................................................................................................ 16
Códigos de error y logs .................................................................................................................................... 16
6.3.5.1 Directiva ErrorDocument 404 para páginas no encontradas ............................................................ 16
6.3.5.1.1 Modificar la directiva ErrorDocument para mostrar un mensaje de error al no encontrar una página16
6.3.5.1.2 Acceso desde el equipo cliente a una página inexistente y muestra del mensaje de error ............. 17
6.3.5.1.3 Modificar la directiva ErrorDocument para mostrar una página de error al no encontrar una página17
6.3.5.1.4 Acceso desde el equipo cliente a una página inexistente y muestra de la página alternativa ......... 18
6.3.5.2 LOGS ................................................................................................................................................ 18
Página 1 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.
Configuración de servidores virtuales: por nombre, por IP, y por puerto ......... 18
7.1
Servidores virtuales por nombre ................................................................................. 19
7.1.1
7.1.2
7.1.3
7.1.4
7.1.5
7.1.6
7.2
Servidores virtuales por IP (Alojamiento virtual basado en IPs) .................................. 25
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5
7.2.6
7.3
Crear web para alojar el contenido de los servidores virtuales por nombre .................................................... 26
7.2.1.1 Crear la estructura de Directorios ..................................................................................................... 26
7.2.1.2 Crear una página de prueba para cada Virtual Host por IP .............................................................. 26
Crear Nuevos Archivos Virtual Host por IP ...................................................................................................... 27
Habilitar los nuevos Archivos Virtual Host por IP ............................................................................................. 28
En el equipo cliente linux .................................................................................................................................. 28
Configurar archivos locales .............................................................................................................................. 28
En el equipo cliente windows ........................................................................................................................... 29
Configurar archivos locales .............................................................................................................................. 29
Prueba al sitio virtual por IP desde un equipo cliente ...................................................................................... 29
Servidores virtuales por puerto ................................................................................... 30
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7
8.
Crear el espacio web para alojar el contenido de los servidores virtuales por nombre ................................... 19
7.1.1.1 Crear la estructura de Directorios ..................................................................................................... 19
7.1.1.2 Crear una página de prueba para cada Virtual Host ........................................................................ 20
Crear Nuevos Archivos Virtual Host por nombre ............................................................................................. 20
Habilitar los nuevos Archivos Virtual Host por nombre .................................................................................... 22
En el equipo cliente linux .................................................................................................................................. 22
Configurar archivos locales .............................................................................................................................. 22
En el equipo cliente windows ........................................................................................................................... 23
Configurar archivos locales .............................................................................................................................. 23
Prueba al sitio virtual por nombre desde un equipo cliente .............................................................................. 24
Crear web para alojar el contenido de los servidores virtuales por puerto ...................................................... 31
7.3.1.1 Crear la estructura de Directorios ..................................................................................................... 31
7.3.1.2 Crear una página de prueba para cada Virtual Host por puerto ....................................................... 32
Especificar el nuevo puerto a la escucha ......................................................................................................... 32
Crear Nuevos Archivos Virtual Host por puerto ............................................................................................... 32
Habilitar los nuevos Archivos Virtual Host por puerto ...................................................................................... 33
En el equipo cliente Linux ................................................................................................................................ 33
Configurar archivos locales .............................................................................................................................. 33
En el equipo cliente Windows .......................................................................................................................... 33
Configurar archivos locales .............................................................................................................................. 33
Prueba al sitio virtual por puerto desde el equipo cliente ................................................................................. 34
Autentificación ........................................................................................................ 35
8.1
Restricción de acceso por usuario y contraseña ......................................................... 35
8.1.1
8.1.2
8.1.3
8.1.4
8.2
Autentificación con HTTP BASIC ..................................................................................................................... 35
Crear archivo de contraseñas .......................................................................................................................... 35
Prueba de acceso al sitio virtual desde un equipo cliente ................................................................................ 37
Autentificación con HTTP DIGEST .................................................................................................................. 37
Prueba de acceso al sitio virtual desde un equipo cliente ................................................................................ 38
Directivas de control de acceso autorizados: Allow, Deny y Order .............................. 39
8.2.1
8.2.2
Directiva allow .................................................................................................................................................. 39
Directiva deny................................................................................................................................................... 40
Página 2 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.2.3
8.3
Directiva order .................................................................................................................................................. 40
Administración de servidor HTTPS: certificados digitales ........................................... 42
8.3.1
8.3.2
8.3.3
8.3.4
8.3.5
8.3.6
Crear web para alojar el contenido del servidor virtual configurado para acceder mediante certificados ....... 43
8.3.1.1 Crear la estructura de Directorios ..................................................................................................... 43
8.3.1.2 Crear una página de prueba para nuestro sitio Virtual Host seguro ................................................. 43
Crear el Nuevo Archivo Virtual Host administrado con certificados digitales ................................................... 44
Habilitar el nuevo Archivo Virtual Host para el sitio seguro .............................................................................. 44
En el equipo cliente Linux ................................................................................................................................ 45
Configurar archivos locales .............................................................................................................................. 45
En el equipo cliente Windows .......................................................................................................................... 45
Configurar archivos locales .............................................................................................................................. 45
Prueba al sitio virtual seguro desde el equipo cliente ...................................................................................... 46
Página 3 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
1. Introducción
Apache
al
servicio
http
de
El servidor web de Apache es uno de los más populares para proveer contenido web en Internet. Cuenta
con más de la mitad de todos los sitios web activos en la red y es extremadamente poderoso y flexible.
Apache divide su funcionalidad y componentes en unidades independientes que pueden ser configuradas
independientemente. La unidad básica que describe un sitio individual o el dominio llamado virtual host.
Estas asignaciones permiten al administrador utilizar un servidor para alojar varios dominios o sitios en una
simple interface o IP utilizando un mecanismo de coincidencias. Esto es relevante para cualquiera que
busque alojamiento para más de un sitio en un solo VPS.
Cada dominio que es configurado apuntará al visitante a una carpeta específica que contiene la información
del sitio, nunca indicará que el mismo servidor es responsable de otros sitios. Este esquema es expandible
sin límites de software, tanto como el servidor pueda soportar la carga.
Escenario a realizar:
RED EXTERNA:
INTERNET
Cable / Wifi
Router
IP:X.Y.Z.A
Virtual Box con los equipos
IP:X.Y.Z.B
Configuración RedNAT
Red IP: 172.16.XX.0/24
Puerta de enlace o gateway: 172.16.XX.1
IP:X.Y.Z.B
Switch fictirio
Solo comunicación entre máquinas virtuales y
con el router ficticio para salir al exterior
RedNAT: dawLinux
RedNAT: dawLinux
ip: 172.16.XX.20
ip: 172.16.XX.2
ucliente01
Ubuntu Desktop
RAM 512 MB
HD 20 GB
Configuración de red:
MÁSCARA SUBRED: 255.255.255.0
Red: 172.16.XX.0
Broadcast: 172.16.XX.255
DNS: 8.8.8.8 8.8.4.4
dserver00
Debian 9
RAM 512 MB
HD 20 GB
Página 4 de 49
Configuración de red:
MÁSCARA SUBRED: 255.255.255.0
Red: 172.16.XX.0
Broadcast: 172.16.XX.255
DNS: 172.16.100.1
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
2. Instalación y comprobación
servidor http de apache
2.1
Instalación de apache2
En el equipo dserver00 de nuestro escenario instalamos el servicio de apache:
root@dbase:~# apt-get install apache2
root@dbase:~# apt-get install apache2 apache2-utils
2.2
Arranque, parada y reinicio del servicio
Las siguientes instrucciones nos permiten arrancar el servicio.
root@dbase:~# systemctl start apache2
root@dbase:~# service apache2 start
root@dbase:~# /etc/init.d/apache2 start
Las siguientes instrucciones nos permiten parar el servicio.
root@dbase:~# systemctl stop apache2
root@dbase:~# service apache2 stop
root@dbase:~# /etc/init.d/apache2 stop
Las siguientes instrucciones nos permiten reiniciar el servicio.
root@dbase:~# systemctl restart apache2
root@dbase:~# service apache2 restart
root@dbase:~# service apache2 restart
root@dbase:~# systemctl reload apache2
Página 5 de 49
del
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~# service apache2 reload
root@dbase:~# service apache2 reload
2.3
Comprobación de que el servicio está iniciado
Comprobar que el servicio está escuchando:
root@dbase:~# service apache2 status
root@dbase:~# systemctl status apache2
2.4
Comprobación da versión do servidor
La versión del servidor que tenemos instalada, podemos conocerla usando el siguiente comando:
root@dbase:~# apache2 -v
3. Desintalar el servicio
El siguiente comando nos permite desinstalar el servicio:
root@dbase:~# apt-get –purge remove apache2
4. Configuración de apache
En Ubuntu/Debian todos los ficheros de configuración están en el directorio /etc/apache2 se encuentran
los siguientes ficheros de configuración:
 apache2.conf: Es el fichero principal de configuración de apache2m donde se determinan las directivas
de configuración del servidor (contiene toda la configuración global: directorio raíz por defecto, logs,
procesos, etc.).
 ports.conf: donde se definen las IPs y puertos TCP de escucha y atención de peticiones del servidor.
 mods-available: donde se encuentran los ficheros .load y .conf con los que se configuran los módulos
disponibles.
 mod-enabled: donde se configuran los ficheros de configuración de módulos habilitados; mantiene enlaces simbólicos a los ficheros en /etc/apache2/mods-available. Cuando un fichero de configuración de
módulo es enlazado mediante un enlace simbólico será activado después del segundo reinicio de apache.
Página 6 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
 sites-available: donde se encuentran los ficheros de configuración de los sitios virtuales disponibles. Los
host virtuales permiten que apache sea configurado para múltiples sitios en configuraciones separadas.
 sites-enabled: donde se encuentran los ficheros de configuración de los sitios virtuales habilitados. Al
igual que mods-enabled, sites-enabled contiene enlaces simbólicos a ficheros dentro de
/etc/apache2/sites-available. De manera similar, cuando se crea un enlace simbólico al sitio virtual estará activo una vez que se reinicie apache.
 conf.d: donde se encuentran los ficheros apache2.conf, y ficheros de configuración de los sitios virtuales
habilitados.
 envars: donde se encuentran las variables de entorno que utiliza apache2ctl y sus valores.
Con el comando ls –l podemos podemos comprobar n listado en el que se muestran los ficheros comentados.
root@dbase:~# ls –l /etc/apache2
Para los directorios en los que habitualmente se crean enlaces simbólicos a los ficheros que existen en el
directorio available correspondiente, hay aplicaciones de utilidad para ejecutar desde la línea de comandos.
Estas utilidades son a2ensite, a2dissite, a2enmod, a2dismod para habilitar y deshabilitar sitios virtuais,
módulos y fragmentos de configuración.
4.1
Comprobación de la sintaxis de configuración
de apache
Para comprobar que la sintaxis de los ficheros de configuración es correcta empleamos el siguiente comando:
root@dbase:~# apachectl configtest
root@dbase:~# apachectl -t
4.2
Copia del fichero de configuración de apache
Antes de modificar un fichero de configuración conviene hace una copia de seguridad.
root@dbase:~# cp /etc/apache2/apache2.conf /etc/acpache2/apache2.conf.copia
4.3
Configuración básica o general
Apache crea un usuario por defecto que es el www-data.
Página 7 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Para que cada uno de los cambios que se hagan en los parámetros tengan efecto hay que reiniciar el
servidor, o simplemente indicarle que relea la nueva configuración mediante el siguiente comando:
root@dbase:~# sudo /etc/init.d/apache2 force-reload
4.4
4.4.1
Acceso al servidor apache desde un equipo
cliente
Comprobación de funcionamiento del servicio desde un cliente
En el equipo cliente Linux de la red (también podría ser un cliente windows) abre el navegador y accede a la
dirección IP del servidor web 172.16.XX.2
Acceso desde un equipo cliente Linux:
Acceso desde un equipo cliente Windows:
Página 8 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
4.4.2
Limpiar la caché del navegador de forma automática
En ocasiones es necesario borrar las páginas almacenadas en la caché del navegador. A continuación, se
indican los pasos para limpiar la caché del navegador Firefox.
Limpiar la caché de forma automática
Limpiar la caché de forma automática
Puedes configurar Firefox para limpiar la caché de forma automática cuando Firefox se cierre:
1. Haz clic en el botón Menú y elige Opciones.
2. Selecciona el panel Privacidad.
3. En la sección Historial, establece el parámetro Firefox podrá: a Usar una configuración
personalizada para el historial.
4. Marca la casilla de verificación Limpiar el historial cuando Firefox se cierre.
5. Junto a Limpiar el historial cuando Firefox se cierre, haz clic sobre el botón Configuración…. Se
abrirá la ventana de Configuración para Limpiar historial.
6. En la ventana de Configuración para Limpiar historial, marca la casilla de verificación
llamada Caché.
o
Para más información sobre otras opciones, puedes ver el artículo Limpiar el historial de
navegación, búsquedas y descargas.
7. Haz clic en Aceptar para cerrar la ventana de Configuración para Limpiar historial.
8. Cierra la página about:preferences. Cualquier cambio que hayas hecho se guardará
automáticamente.
Ojo: En cada navegador y correspondiente versión la forma de borrar la caché puede variar; consultar la
ayuda del programa.
5.
Mi primera página en apache
Página 9 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
En el equipo donde está instalado el servicio web crearemos un fichero llamada miprimerapag.html en el
directorio /var/www/html, directorio donde se almacenan por defecto las páginas web, y otra página en el
directorio mispaginas creado dentro de /var/www/html y comprobaremos el accesos a dichas páginas desde el cliente.
5.1
Mi primera página en apache en el directorio por
defecto
root@dbase:~# nano /var/www/html/miprimerapag.html
<!doctype html>
<html>
<head>
<title>Mi Primera Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1>Mi Primera Página</h1>
<p>Este es el servidor web de DAW2 </p>
</body>
</html>
5.2
Crear una página en apache en un directorio
creado dentro del directorio por defecto
A continuación, creamos el directorio /var/www/html/mispaginas y dentro crea el fichero mipag1.html con
contenido HTML.
root@dbase:~# mkdir /var/www/html/mispaginas
root@dbase:~# nano /var/www/html/mispaginas/mipag1.html
<!doctype html>
<html>
<head>
<title>Mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1>Mi página en el directorio mispaginas</h1>
<p>MIS DATOS SON... </p>
</body>
</html>
Página 10 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
5.3
Acceso desde el equipo cliente a las páginas
creadas
Abrimos el navegador desde el cliente y accedemos a las siguientes URLs para probar el funcionamiento del
servidor:
http://midrireccionIp
http://midireccionIP/miprimerapag.html
http://midireccionIP/mispaginas/mipag1.html
Página 11 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
6.
Virtualización del servicio web
El término Virtual Host se refiere a la práctica de ejecutar más de un sitio (como comany1.ejemplo1.com y
company2.ejemplo.com) en una misma máquina. Los virtual Hosts pueden ser basados en IP, cuando tenemos direcciones IP diferentes para cada sitio, o basados en nombre, cuando tenemos múltiples sitios
web asociados a la misma dirección.
En /etc/apache2/sites-available está el fichero 000-default.conf que contiene la configuración del servidor
virtual por defecto.
6.1
Copia del fichero de configuración por defecto
Apache incluye un archivo Virtual Host por defecto denominado 000-default.conf que podemos usar para
saltarnos al punto. Realizaremos una copia para trabajar sobre ella y crear nuestro Virtual Host para cada
dominio.
root@dbase:~#
default.conf.copia
6.2
cp
/etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/000-
Contenido del fichero de configuración por defecto
Una vez copiado el fichero 000-defaul.conf y antes de empezar a configurarlo comprobamos que en el
archivo 000-default.conf existe un servidor virtual que escucha en todas las direcciones.
root@dbase:~# nano /etc/apache2/sites-available/000-default.conf
Y comprobamos que el fichero tiene las siguientes directivas:
<VirtualHost *:80>
…
…
</VirtualHost>
Página 12 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
6.3
Opciones de configuración del fichero 000default.conf: Directivas
En el fichero de configuración por defecto de los sitios virtuales /etc/apache2/sites-available/000default.conf, podemos especificar las siguientes directivas:
 ServerAdmin: Especifica la dirección de correo electrónico del administrador de la web del sitio.
 ServerName: Indica el nombre del servidor web
Ejemplo: ServerName www.miwebX.com
 DocumentRoot: Indica el directorio raíz del sitio para el servidor, directorio por defecto que sirve las
páginas, en nuestro caso /var/www/html
 Directory: se utiliza para determinar cómo sirve apache el contenido del directorio /var/www/html
 DirectoryIndex: Fichero a servir por defecto, se puede modificar para que en vez de que abra index.html
abra cualquier otra página. Indica los ficheros que podrán actuar como página índice del sitio, de no
existir esta directiva apache buscará dentro del directorio cualquier página nombrada como index, y si
no existe listará el contenido del DocumentRoot.
Ejemplo: DirectoryIndex miprimerapag.html
6.3.1
Directiva <Directory>
Los directorios que son publicados a través del servidor web Apache pueden ser configurados a través de
la directiva <Directory> con la posibilidad de especificar una serie de opciones y otras directivas que se
puedan aplicar al contexto de directorios, como los permisos de acceso a dicho directorio. Esta directiva
debe incluirse en el archivo de configuración del servidor web Apache.
Las directivas <Directory> y </Directory> engloban un grupo de directivas que se aplicarán únicamente al
directorio que se indique como atributo, a sus subdirectorios y a los archivos que se encuentren en todos
ellos.
<Directory ruta-directorio>
Directivas-para-el-directorio
</Directory>
La ruta-directorio puede ser una ruta completa a un directorio, o una ruta en la que se usen caracteres
comodín al estilo Unix (*, ?, []).
Un ejemplo de ruta completa puede ser:
<Directory /usr/local/httpd/htdocs>
# ... escribir las directivas aquí ...
</Directory>
En este otro ejemplo se usan caracteres comodín para hacer referencia a las carpetas public_html que se
encuentren dentro de la carpeta personal de cualquier usuario:
<Directory /home/*/public_html>
# ... escribir las directivas aquí ...
</Directory>
Página 13 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
6.3.2
Directiva Options
Dentro de la directiva <Directory> puedes usar la directiva Options para especificar una serie de posibles
opciones al directorio especificado. Las posibles opciones son: All, ExecCGI, FollowSymLinks, Includes,
IncludesNOEXEC, Indexes, MultiViews, SymLinksIfOwnerMatch.
El formato de uso es indicar la directiva Options seguida de todas las opciones deseadas separadas por
espacios:
<Directory ruta-directorio>
Options opcion1 opcion2 opcion3
</Directory>
En el enlace anterior puedes ver la descripción de todas ellas, y se comentan a continuación las principales:
 All: incluye todas las opciones excepto MultiViews. Es la opción por defecto si no se indica ninguna opción.
 ExecCGI: Permite la ejecución de aplicaciones CGI en el directorio.
 FollowSymLinks: El servidor seguirá los enlaces simbólicos (no accesos directos de Windows) en el directorio.
 Indexes: Si no hay un archivo de índice (index.html, index.php, etc) en el directorio, se mostrará al usuario una lista de los archivos encontrados en el directorio.
Si hay varias directivas Directory con Options que pueden afectar a un mismo directorio, se usan las opciones de la directiva que es más específica al directorio, y las otras opciones son ignoradas.
En el siguiente ejemplo sólo la opción ExecCGI se establecerá para el directorio /web/docs/spec.
<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options ExecCGI
</Directory>
Si todas las opciones del directorio están precedidas de por el símbolo + o -, las opciones de ese directorio se mezclarán con las de otro directorio que englobe al otro. Las opciones precedidas por + se añaden
a las opciones actuales, y las precedidas por - se eliminan.
Así, en el siguiente ejemplo, el directorio /web/docs/spec tendrá activadas las opciones FollowSymLinksy
ExecCGI.
<Directory /web/docs>
Options Indexes FollowSymLinks
</Directory>
<Directory /web/docs/spec>
Options +ExecCGI -Indexes
</Directory>
Página 14 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
6.3.3
Directiva AllowOverride
Cuando el servidor encuentra un archivo .htaccess en cualquiera de sus carpetas publicadas, las directivas que incluye dicho archivo son tenidas en cuenta por encima de las directivas establecidas en la configuración del servidor.
Si no se quiere que se tenga en cuenta este archivo, se debe utilizar la directiva AllowOverride con el
parámetro None.
AllowOverride None
Por defecto, se permite el uso del archivo .htaccess, pero si quieres especificar literalmente que se considere dicho archivo dentro de una directiva Directory, debes indicar el parámetro All:
AllowOverride All
Además de los parámetros None y All, puedes usar el tipo de directivas que deseas permitir dentro de
los archivos .htaccess. Puedes elegir entre las siguientes directivas: AuthConfig, FileInfo, Indexes, Limit,
Options. En la documentación del servidor web Apache puedes encontrar información sobre su uso.
6.3.4
Directiva DirectoryIndex. Especificar la página por defecto del
sitio web
La directiva DirectoryIndex permite indicar la lista de archivos que se buscarán cuando el cliente accede
al servidor web sin indicar un nombre de archivo específico.
Por defecto, se buscará el archivo index.html.
Si quieres que también se busque el archivo index.php debes indicar lo siguiente:
<Directory /directorio/mi/web>
DirectoryIndex index.html index.php
</Directory>
Esta directiva se puede usar dentro de una directiva Directory o en la configuración global del servidor.
6.3.4.1
Crear la página en el servidor y modificar la directiva DirectoryIndex
root@dbase:~# nano /var/www/html/indice.html
<!doctype html>
<html>
<head>
<title>Mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1>Esta página se carga por defecto</h1>
<p>MIS DATOS SON... </p>
</body>
</html>
Página 15 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
En el fichero de configuración /etc/apache2/sites-available/000-default.conf modificamos la directiva
DirectoryIndex para que especifique la página creada de la siguiente manera:
<VirtualHost *:80>
...
<Directory /var/www/html>
…
DirectoryIndex indice.html
…
</Directory>
…
</VirtualHost>
6.3.4.2
Acceso desde el equipo cliente
Entramos en el navegador y accedemos a nuestra página y nos muestra el contenido de índice.html en lugar
de hacerlo con el index.html.
6.3.5
Códigos de error y logs
6.3.5.1
Directiva ErrorDocument 404 para páginas no encontradas
La directiva ErrorDocument permite especificar lo que se muestra cuando no se encuentra una página.
 ErrorDocument: al no encontrar una página muestra un texto o una página
Ejemplos:
ErrorDocument 404 “Pagina no encontrada en DAW00.com”
ErrorDocument 404 /no_encontrada.html
6.3.5.1.1
Modificar la directiva ErrorDocument para mostrar un mensaje de error
al no encontrar una página
En el fichero de configuración /etc/apache2/sites-available/000-default.conf modificamos la directiva
ErrorDocument para que muestre el mensaje de error de la siguiente manera:
<VirtualHost *:80>
Página 16 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
...
<Directory /var/www/html>
…
DirectoryIndex indice.html
ErrorDocument 404 “Página no encontrada”
…
</Directory>
…
</VirtualHost>
6.3.5.1.2
Acceso desde el equipo cliente a una página inexistente y muestra del
mensaje de error
Entramos en el navegador y accedemos a una página que no existe para que muestre el mensaje de error:
http://midrireccionIp/prueba.html
6.3.5.1.3
Modificar la directiva ErrorDocument para mostrar una página de error al
no encontrar una página
En el directorio donde se encuentra nuestro sitio web creamos una página con el contenido deseado informando del error:
root@dbase:~# nano /var/www/html/noEncontrada.html
<!doctype html>
<html>
<head>
<title>Mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1>Página no encontrada</h1>
<p>La página solicitada no se encuentra en este servidor</p>
</body>
</html>
Página 17 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~# nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
...
<Directory /var/www/html>
…
DirectoryIndex indice.html
ErrorDocument 404 /noEncontrada.html
…
</Directory>
…
</VirtualHost>
6.3.5.1.4
Acceso desde el equipo cliente a una página inexistente y muestra de la
página alternativa
Entramos en el navegador y accedemos a una página que no existe para que muestre la página creada
informando de lo sucedido:
http://midrireccionIp/prueba.html
6.3.5.2
LOGS
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Consultando la variable APACHE_LOG_DIR en el directorio envars vemos que su valor es /var/log/apache2
7.
Configuración
de
servidores
virtuales: por nombre, por IP, y por
puerto
Página 18 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.1
Servidores virtuales por nombre
Los servidores web configurados con host virtuales basados en nombres sirven un determinado
sitio web en función del nombre del host solicitado por el cliente como parte de sus cabeceras
HTTP. De esta manera varios host diferentes pueden compartir la misma dirección IP.
La configuración de host virtuales basados en nombres requiere configurar el servidor DNS para
que cada nombre apunte a la dirección correcta, y luego configurar el servidor web Apache para
que reconozca los diferentes nombres. El hosting virtual basado en nombres, también es una
ayuda a la escasez de direcciones IP. Así que se deberá emplear siempre el hosting virtual basado
en nombres a no ser que se requiera el hosting virtual basado en direcciones IP de forma explícita.
El primer paso es crear un bloque <VirtulHost> para cada host diferente quiere servir. Dentro de
caa bloque <VirtualHost> se necesita por lo menos una directiva ServerName para dseignar que
host virtual se sirve, y también una directiva DocumentRoot que indique en qué lugar del sistema
de fichero reside el contenido para ese virtual host. Ejemplo:
<VirtualHost *:80>
ServerName www.ejemplo1.com
ServerAlias ejemplo1.com
DocumentRoot “/var/www/ejemplo1”
</VirtualHost>
<VirtualHost *:80>
ServerName www.ejemplo1.com
ServerAlias ejemplo2.com
DocumentRoot “/var/www/ejemplo2”
</VirtualHost>
7.1.1
Crear el espacio web para alojar el contenido de los servidores
virtuales por nombre
7.1.1.1
Crear la estructura de Directorios
El primer paso que necesitamos es crear la estructura de directorios que mantendrán la información de
nuestro sitio. Nuestro documento raíz (el directorio principal en el cual Apache busca el contenido para
mostrar) será configurado en directorios individuales dentro de la ruta /var/www/html. Crearemos los
directorios aquí para los dos Virtual hosts que pretendemos configurar.
root@dbase:~# mkdir /var/www/html/virtual1dawXX
root@dbase:~# mkdir /var/www/html/virtual2dawXX
Página 19 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.1.1.2
Crear una página de prueba para cada Virtual Host
Dentro de /var/www/html/virtual1dawXX crear una página index.html:
<!doctype html>
<html>
<head>
<title>Bienvenido a mi página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host virtual1dawXX.conf está funcionando!</h1>
<p>“Esta es la página www.virtual1dawXX.com del sitio virtual virtual1dawXX</p>
</body>
</html>
Dentro de /var/www/html/virtual2dawXX crear una página index.html:
<!doctype html>
<html>
<head>
<title>Bienvenido a mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host virtual2dawXX.conf está funcionando!</h1>
<p>“Esta es la página www.virtual2dawXX.com del sitio virtual virtual2dawXX</p>
</body>
</html>
7.1.2
Crear Nuevos Archivos Virtual Host por nombre
A continuación, generaremos el fichero de configuración Virtual Host correspondiente a cada sitio virtual1
Los archivos Virtual Host son archivos que contienen información y configuración específica para el dominio
y que le indican al servidor Apache como responden a las peticiones de varios dominios.
Iniciaremos con un dominio, lo configuraremos y después realizaremos los ajustes necesarios. La
configuración por defecto de Ubuntu requiere que cada archivo de configuración de Virtual Host termine en
.conf.
Después de esto, necesitamos agregar dos directivas. La primera llamada ServerName, que establece la
base del dominio que debe coincidir para este Virtual Host. Esto será como tu dominio. La segunda, llamada
ServerAlias, determina nombres futuros que pueden coincidir y servirse como el nombre base o dominio
principal. Esto es útil para host tipo www.
Página 20 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
ServerName ejemplo.com
ServerAlias www.ejemplo.com
Lo que resta por cambiar para la configuración básica de un Virtual Host es la ubicación del directorio raíz
para el dominio. Ya hemos creado lo que necesitamos, así que solo necesitamos modificar DocumentRoot
para apuntarlo al directorio que hemos creado:
root@dbase:~#
cp
available/virtual1dawXX.conf
/etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-
root@dbase:~# nano /etc/apache2/sites-available/virtual1dawXX.conf
En total, nuestro archivo de Virtual Host debe verse así:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.virtual1dawXX.com
DocumentRoot /var/www/html/virtual1dawXX
<Directory /var/www/html/virtual1dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
Creamos el segundo fichero de configuración a partir del que acabamos de crear:
root@dbase:~#
cp
/etc/apache2/sites-available/
virtual1dawXX.conf
/etc/apache2/sitesavailable/virtual2dawXX.conf
root@dbase:~# nano /etc/apache2/sites-available/virtual2dawXX.conf
<VirtualHost *:80>
ServerAdmins webmaster@localhost
ServerName www.virtual2daw00.com
DocumentRoot /var/www/html/virtual2dawXX
<Directory /var/www/html/virtual2dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
En nuestro caso utilizaremos como valor XX el valor 100.
Página 21 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.1.3
Habilitar los nuevos Archivos Virtual Host por nombre
Una vez creados los archivos virtual hosts, hay que habilitarlos.
Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:
Habilitamos el primer sitio virtual:
root@dbase:~# sudo a2ensite virtual1dawXX.conf
Habilitamos el segundo sitio virtual:
root@dbase:~# sudo a2ensite virtual2dawXX.conf
Recargamos apache:
root@dbase:~# service apache2 reload
o bien:
root@dbase:~# systemctl reload apache2
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
Habilitamos el segundo sitio virtual:
root@dbase:~# sudo a2ensite virtual2dawXX.conf
root@dbase:~# service apache2 reload
o bien:
root@dbase:~# systemctl reload apache2
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
7.1.4
En el equipo cliente linux
Configurar archivos locales
root@dbase:~# sudo nano /etc/hosts
172.16.100.2 www.virtual1dawXX.com
172.16.100.2 www.virtual2dawXX.com
Página 22 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
En nuestro caso utilizaremos como valor XX el valor 100.
172.16.100.2 www.virtual1daw100.com
172.16.100.2 www.virtual2daw100.com
7.1.5
En el equipo cliente windows
Configurar archivos locales
Abrir con el bloc de notas
c:\Windows\System32\drivers\etc:
como
administrador
el
fichero
hosts
en
la
ruta
El fichero hosts está oculto en el sistema, en las opciones de carpeta habilitar mostrar ficheros ocultos.
El contenido del fichero hosts es el siguiente:
Página 23 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.1.6
Prueba al sitio virtual por nombre desde un equipo cliente
Ahora que tenemos nuestros Virtual Hosts configurados, podemos realizar pruebas de configuración
simplemente visitando el dominio que hemos configurado mediante nuestro navegador web:
Entramos en el navegador y accedemos la página a la página del primer sitio virtual:
http://www.virtual1daw100.com
Entramos en el navegador y accedemos a la página del segundo sitio virtual:
http://www.virtual2daw100.com
Página 24 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.2
Servidores virtuales por IP (Alojamiento virtual
basado en IPs)
Los host virtuales basados en direcciones IP emplean la dirección IP de la conexión para determinar el host
virtual adecuado para servir. De esta manera se necesita una dirección IP aplicada para cada host virtual.
Debemos tener dos tarjetas de red instaladas, o crear subinterfaces. En el ejemplo lo hacemos por
medio de subinterfaces
allow-hotplug enp0s3
iface enp0s3inet satic
address 172.16.100.2/24
broadcast 172.16.100.255
gateway 172.16.100.1
dns-nameservers 8.8.8.8
allow-hotplug enp0s3:1
iface enp0s3:1 inet satic
adress 172.16.100.33
netmask 255.255.255.0
allow-hotplug enp0s3:2
iface enp0s3:2 inet satic
adress 172.16.100.44
netmask 255.255.255.0
Con el comando ip addr comprobamos las subinterfaces creadas:
root@dbase:~# ip addr
Página 25 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.2.1
Crear web para alojar el contenido de los servidores virtuales por
nombre
7.2.1.1
Crear la estructura de Directorios
El primer paso que necesitamos es crear la estructura de directorios que mantendrán la información de
nuestro sitio. Nuestro documento raíz (el directorio principal en el cual Apache busca el contenido para
mostrar) será configurado en directorios individuales dentro de la ruta /var/www/html. Crearemos los
directorios aquí para los dos Virtual hosts que pretendemos configurar.
root@dbase:~# mkdir /var/www/html/virtual3dawXX
root@dbase:~# mkdir /var/www/html/virtual4dawXX
7.2.1.2
Crear una página de prueba para cada Virtual Host por IP
Dentro de /var/www/html/virtual3dawXX crear una página index.html:
<!doctype html>
<html>
<head>
<title>Bienvenido a mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host virtual3dawXX.conf está funcionando!</h1>
Página 26 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
<p>“Esta es la página www.virtual3dawXX.com, basada en IPs, del sitio virtual
virtual3dawXX</p>
</body>
</html>
Dentro de /var/www/html/virtual4dawXX crear una página index.html:
root@dbase:~# cp /var/www/html/miprimerapag.html /var/www/html/virtual4dawXX/index.html
root@dbase:~# nano /var/www/html/virtua4dawXX/index.html
<!doctype html>
<html>
<head>
<title>Bienvenido a mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host mivirtual4dawXX.conf esta funcionando!</h1>
<p>“Esta es la página www.virtual4dawXX.com, basada en IPs, del sitio virtual
virtual4dawXX</p>
</body>
</html>
7.2.2
Crear Nuevos Archivos Virtual Host por IP
Generamos el fichero de configuración Virtual Host correspondiente a cada sitio virtual:
root@dbase:~#
cp
available/virtual3dawXX.conf
/etc/apache2/sites-available/000-default.conf
root@dbase:~# nano /etc/apache2/sites-available/virtual3dawXX.conf
El contenido de nuestro archivo Virtual Host virtual3dawXX.conf sería:
<VirtualHost 172.16.100.33:80>
ServerAdmins webmaster@localhost
ServerName www.virtual3dawXX.com
DocumentRoot /var/www/html/virtual3dawXX
<Directory /var/www/html/virtual3dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
Página 27 de 49
/etc/apache2/sites-
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~#cp
/etc/apache2/sites-available/virtual3dawXX.conf
available/virtual4dawXX.conf
/etc/apache2/sites-
root@dbase:~#nano /etc/apache2/sites-available/virtual4dawXX.conf
El contenido de nuestro archivo Virtual Host virtual4dawXX.conf sería:
<VirtualHost 172.16.100.44:80>
ServerAdmins webmaster@localhost
ServerName www.virtual4dawXX.com
DocumentRoot /var/www/html/virtual4dawXX
<Directory /var/www/html/virtual4dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
7.2.3
Habilitar los nuevos Archivos Virtual Host por IP
Una vez creados los archivos virtual hosts, hay que habilitarlos.
Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:
Habilitamos el primer sitio virtual:
root@dbase:~# sudo a2ensite virtual3dawXX.conf
root@dbase:~# service apache2 reload
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
Habilitamos el segundo sitio virtual:
root@dbase:~# sudo a2ensite virtual4dawXX.conf
root@dbase:~# service apache2 reload
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
7.2.4
En el equipo cliente linux
Configurar archivos locales
En el fichero hosts añadimos los nombres de dominio asociados a las nuevas IPs creadas:
Página 28 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~# sudo nano /etc/hosts
172.16.100.2 www.virtual1daw100.com
172.16.100.2 www.virtual2daw100.com
172.16.100.33 www.virtual3dawXX.com
172.16.100.44 www.virtual4dawXX.com
7.2.5
En el equipo cliente windows
Configurar archivos locales
Abrir con el bloc de notas
c:\Windows\System32\drivers\etc:
como
administrador
el
fichero
hosts
en
la
ruta
El archivo de configuración hosts añadiendo las IPs asociadas a los nuevos nombres de dominio
quedaría de la siguiente manera:
7.2.6
Prueba al sitio virtual por IP desde un equipo cliente
Ahora que tenemos nuestros Virtual Hosts configurados, podemos realizar pruebas de configuración
simplemente visitando el dominio que hemos configurado mediante nuestro navegador web:
El acceso al tercer sitio virtual por IP creado lo comrpobamos tecleando en la barra del navegador:
Página 29 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
http://www.virtual3smrXX.com
El acceso al tercer sitio virtual por IP creado lo comrpobamos tecleando en la barra del navegador:
http://www.virtual4smrXX.com
7.3
Servidores virtuales por puerto
Para ajustar los puertos a la escucha editaremos el archivo ports.conf, y pondremos los puertos en los que el
apache escuchará peticiones. Por ejemplo añadimos el puerto 3500
Listen numeroPuerto
Ejemplo:
Listen 80
Listen 3330
Si nuestro servidor tuviese varias IPs y solo nos quisiéramos escuchar en una de ellas podríamos hacer:
Página 30 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Listen 192.168.1:80
Listen 192.168.1: 3330
Si queremos que escuche en 2 puertos a la vez:
<VirtualHost *:3330*:3600>
ServerAdmins webmaster@localhost
ServerName www.virtual3dawXX.com
DocumentRoot /var/www/html/virtual3dawXX
<Directory /var/www/html/virtual3dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
Comprobamos los puertos a la escucha con el paquete nmap:
nmap 127.0.0.1
root@dbase:~# nmap [-f] 10.0.0.1
root@dbase:~# netstat -lntu 10.0.0.1
Nos aparecen los puertos en los que está a la escucha la máquina.
En el navegador podremos especificar el puerto al que queremos acceder del siguiente modo (sino lo
indicamos accederá al puerto 80 por defecto).
http://nombre_dominio:puerto
Ejemplo:
http://www.virtual3daw.com: 3330
7.3.1
Crear web para alojar el contenido de los servidores virtuales por
puerto
7.3.1.1
Crear la estructura de Directorios
El primer paso que necesitamos es crear la estructura de directorios que mantendrán la información de
nuestro sitio. Nuestro documento raíz (el directorio principal en el cual Apache busca el contenido para
mostrar) será configurado en directorios individuales dentro de la ruta /var/www/html. Crearemos los
directorios aquí para los dos Virtual hosts que pretendemos configurar.
root@dbase:~# mkdir /var/www/html/virtual5dawXX
Página 31 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
7.3.1.2
Crear una página de prueba para cada Virtual Host por puerto
Dentro de /var/www/html/virtual5dawXX crear una página index.html:
root@dbase:~# cp /var/www/html/miprimerapag.html /var/www/html/virtual5dawXX/index.html
root@dbase:~# nano /var/www/html/virtual5dawXX/index.html
<!doctype html>
<html>
<head>
<title>Bienvenido a mi Página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host mivirtual5daw.conf está funcionando!</h1>
<p>“Esta es la página www.del sitio virtual virtual5dawXX asociada al puerto:
3500</p>
</body>
</html>
7.3.2
Especificar el nuevo puerto a la escucha
En el fichero d indicamos el nuevo puerto en que el servidor apache escuchará las peticiones.
root@dbase:~# nano /etc/apache2/ports.conf
…
Listen 80
Listen 3500
…
7.3.3
Crear Nuevos Archivos Virtual Host por puerto
Generamos el fichero de configuración Virtual Host correspondiente al nuevo sitio virtual:
root@dbase:~#
cp
available/virtual5dawXX.conf
/etc/apache2/sites-available/000-default.conf
root@dbase:~# nano /etc/apache2/sites-available/virtual5dawXX.conf
El contenido de nuestro archivo Virtual Host virtual5dawXX.conf sería:
<VirtualHost *:3500>
Página 32 de 49
/etc/apache2/sites-
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
ServerAdmins webmaster@localhost
ServerName www.virtual5dawXX.com
DocumentRoot /var/www/html/virtual5dawXX
<Directory /var/www/html/virtual5dawXX>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
</Directory>
</VirtualHost>
7.3.4
Habilitar los nuevos Archivos Virtual Host por puerto
Una vez creados los archivos virtual hosts, hay que habilitarlos.
Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:
Habilitamos el primer sitio virtual:
root@dbase:~# sudo a2ensite virtual5dawXX.conf
root@dbase:~# service apache2 reload
o bien:
root@dbase:~# systemctl reload apache2
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
7.3.5
En el equipo cliente Linux
Configurar archivos locales
root@dbase:~# sudo nano /etc/hosts
172.16.100.2 www.virtual1daw100.com
172.16.100.2 www.virtual2daw100.com
172.16.100.33 www.virtual3dawXX.com
172.16.100.44 www.virtual4dawXX.com
172.16.100.2 www.virtual5dawXX.com
7.3.6
En el equipo cliente Windows
Configurar archivos locales
Abrir
con
el
bloc
de
notas
como
administrador
el
Página 33 de 49
fichero
hosts
en
la
ruta
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
c:\Windows\System32\drivers\etc.
El archivo de configuración hosts añadiendo la nueva IPs asociada al nuevo nombre de dominio
quedaría de la siguiente manera:
7.3.7
Prueba al sitio virtual por puerto desde el equipo cliente
Ahora que tenemos el nuevo Virtual Host configurado para acceder a través de un puerto distinto al puerto
por defecto 80, podemos realizar pruebas de acceso a la configuración especificada simplemente visitando
el dominio que hemos configurado mediante nuestro navegador web; al ser un puerto distinto del 80 hay
que indicar también el número de puerto.
El acceso al quinto sitio virtual por puerto lo comprobamos tecleando en la barra del navegador:
http://www.virtual5smrXX.com:3500
Página 34 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8. Autentificación
8.1
8.1.1
Restricción de acceso por usuario y contraseña
Autentificación con HTTP BASIC
Ahora deseamos que el cliente se identifique con un usuario y clave para poder acceder a una página
determinada.
root@dbase:~# apt-get install apache2-utils
Crear archivo de contraseñas
Creamos el directorio donde se va incluir el archivo de contraseñas:
root@dbase:~# mkdir /passwd
El archivo de contraseñas se debe colocar en algún sitio no accesible a la Web. Para crear el archivo de
contraseñas, usaremos la utilidad htpasswd que viene con Apache. Para crear el archivo:
root@dbase:~# htpasswd -c /passwd/passwdmistio usuario
root@dbase:~# htpasswd -c /passwd/passwdmistio udaw01
root@dbase:~# htpasswd /passwd/passwdmistio udaw02
hpasswd pedirá la contraseñ y su confirmación.
Comprobamos que el fichero passwdmisitio, contiene los dos usuarios creados:
En este paso configuraremos el servidor para que solicite una contraseña y especificamos a qué usuarios se
les permite el acceso
root@dbase:~# cat /passwd/passwdmistio
Página 35 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~# nano /etc/apache2/sites-available/virtual1dawXX.conf
Al contenido de nuestro archivo Virtual Host virtual1dawXX.conf, añadimos lo especificado en sombreado:
<VirtualHost *:80>
ServerAdmins webmaster@localhost
ServerName www.virtual1dawXX.com
DocumentRoot /var/www/html/virtual1dawXX
<Directory /var/www/virtual1dawXX>
DirectoryIndex index.html
ErrorDocument 404 “Página no encontrada”
AuthType Basic
AuthName “Archivo de ...”
AuthUserFile /passwd/passwdmisitio
Require user udaw01, udaw02
</Directory>
</Directory>
</VirtualHost>
Sintaxis directivas:
AuthName "Texto al gusto"
AuthUserFile /ruta_al_fichero .htpasswd
AuthType Basic
Require valid-use
La directiva AuthType selecciona el método que se va a usar para autentificar el usuario. Uno de los
métodos más comunes es Basic, y este método está implementado en el módulo moth_auth. Es importante
tener en cuenta, que en este método de autentificación (Básica) se envía la contraseña desde el cliente al
navegador sin encriptar. Por lo tanto, no debería ser usado para información altamente sensible. Apache
soporta otro método de autentificación: AuthType Digest, implementado en mod_auth_digest y es mucho
más segura.
La directiva AuthName establece el dominio a usar en la autentificación. Este dominio cumple dos
funciones importantes: primero, el cliente presenta esta información al usuario como parte del cuadro de
diálogo para la contraseña; segundo, es usado por el cliente para determinar qué contraseña enviar en un
área autentificada dada.
La directiva AuthUserFile establece la ruta al archivo de contraseñas creado con htpasswd.
Finalmente, la directiva Require proporciona la parte de la autorización del proceso, estableciendo el
usuario al que se le permite acceder a esa área del servidor.
Página 36 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.1.2
Prueba de acceso al sitio virtual desde un equipo cliente
Ahora que tenemos nuestro Virtual Host virtual1dawXX configurado para acceder por usuario y contraseña ,
podemos acceder mediante nuestro navegador web, tecleando en la barra del navegador:
http://www.virtual1smrXX.com, y nos pedirá el usuario y la contraseña para poder acceder al sitio web
solicitado.
Una vez indicado el usuario y la contraseña correspondiente se mostrará la página del sitio web:
8.1.3
Autentificación con HTTP DIGEST
Es similar al Basic pero el usuario/clave se envía de forma cifrada
Primero habilitamos el módulo de digest
root@dbase:~# a2enmod auth_digest
Reiniciamos apache para que se actualicen los cambios:
root@dbase:~# systemctl restart apache2
Página 37 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Después creamos el archivo de digestpasswdmisitio con los usuario udaw03 y udaw04.
root@dbase:~# htdigest -c /passwd/digestpasswdmisitio usuarios udaw03
root@dbase:~# htdigest /digestpasswdmisitio usuarios udaw04
a continuación configuramos nuestro virtualhost, añadiendo las líneas sombreadas:
root@dbase:~# nano /etc/apache2/sites-enabled/virtual2daw0XXconf
<VirtualHost *:80>
…
ServerAdmins webmaster@localhost
ServerName www.virtual2dawXX.com
DocumentRoot /var/www/html/virtual2dawXX
<Directory /var/www/virtual2dawXX>
…
DirectoryIndex index.html
AuthType Digest
AuthName “usuarios”
AuthUserFile /passwd/digestpasswdmistio
Require user udaw03 udaw04
…
</Directory>
Debemos indicar que al crear la clave se ha usado como nombre usuarios, y debe coincidir con el
declarado en la directiva AuthName.
Desupués de modificar el sitio virtual, reiniciamos apache para que se actualicen los cambios:
root@dbase:~# systemctl restart apache2
root@dbase:~# service apache restart
8.1.4
Prueba de acceso al sitio virtual desde un equipo cliente
Ahora que tenemos nuestro Virtual Host virtual2dawXX configurado para acceder por usuario y contraseña,
podemos acceder mediante nuestro navegador web, tecleando en la barra del navegador:
http://www.virtual2smrXX.com, y nos pedirá el usuario y la contraseña para poder acceder al sitio web
solicitado; esta vez la contraseña será enviada de forma encriptada.
Página 38 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Una vez indicado el usuario y la contraseña correspondiente se mostrará la página del sitio web:
8.2
8.2.1
Directivas de control de acceso autorizados:
Allow, Deny y Order
Directiva allow
Esta directiva se usa para establecer quien tiene acceso al directorio especificado.
La directiva Allow permite controlar los equipos que pueden acceder al directorio. El formato de uso es
indicar Allow from seguido de una de las opciones que se comentan a continuación:
Si se indica Allow from all, se autoriza el acceso al directorio desde cualquier equipo:
Allow from all
Para establecer límites en el acceso se puede indicar una lista de direcciones IP o nombres de dominio
que indicará los equipos que pueden acceder al directorio. En este formato, se puede indicar sólo la parte
final de un nombre de dominio, la parte inicial de una dirección IP, o indicar la máscara de red para
indicar un rango más amplio de equipos. A continuación se muestran varios ejemplos:
Ejemplos
Nombre parcial de dominios
Allow from apache.org
Allow from .net example.edu
Página 39 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Tienen acceso permitido todos los equipos de apache.org, de dominio .net o del dominio example.edu.
Dirección IP completa
Allow from 10.1.2.3
Allow from 192.168.1.104 102.168.1.205
Dirección IP parcial
Allow from 10.1.2.3
Allow from 10 172.20 192.168.2
Dirección red/máscara
Allow from 10.1.0.0/255.255.0.0
Allow from 10.1.0.0/16
8.2.2
Directiva deny
De manera similar se puede utilizar la directiva Deny para denegar el acceso a los equipos que se indiquen, siguiendo el mismo formato que el usado con la directiva Allow.
8.2.3
Directiva order
Las directivas Allow y Deny se pueden colocar en cualquier orden, y se pueden añadir varias líneas de
cada tipo. Es la directiva Order la que establece el orden en el que se aplicarán. Por defecto, el orden es
el siguiente:
Order Deny,Allow
Es decir, en primer lugar se consideran todas las directivas de denegación de acceso al directorio, y luego
se tienen en cuentas las directivas de aceptación de permiso.
Las posibilidades son:
order deny,allow. Se aplican antes las directivas Deny que las Allow.
En caso de que un cliente no haya coincidencia con Deny ni con Allow tienen acceso permitido.
Order allow, deny. Se aplican antes las directivas Allow que las Deny. En caso de que un cliente no haya
coincidencia con deny ni con allow tiene acceso denegado.
Ejemplo:
Order deny, allow
Deny from all
Allow from apache.org
Página 40 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
<Directory "/var/www/html">
Order allow,deny
Deny from all
Allow from all
</Directory>
Nadie puede acceder porque deny se ejecuta al final
<Directory "/www">
Order deny,allow
Deny from all
Allow from all
</Directory>
Cualquiera puede acceder porque allow se ejecuta al final
<Directory "/www">
Order Deny,Allow
Deny from all
Allow from ejemplo.com
</Directory>
Solo pueden acceder los que sean de un dominio xxx.ejemplo.com
<Directory "/www">
Order allow,deny
Allow from all
Deny from ejemplo.com
</Directory
Pueden acceder todos los equipos excetp los que tengan el dominio xxx.ejemplo.com
Pueden acceder todos los que no vengan de un dominio xxx.ejemplo.com
Order Deny,Allow
Allow from 172.16.5.X
Deny from all
Order allow,deny
Deny from 172.16.5.X
Allow from all
Página 41 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.3
Administración de servidor HTTPS: certificados
digitales
SSL proporciona autentificación y privacidad de la información entre extremos sobre Internet mediante el
uso de criptografía
1. Habilitar el módulo ssl
root@dbase:~# a2enmod ssl.load
Reiniciamos apache
root@dbase:~# service apache2 restart
2. Habilitamos el fichero default-ssl correspondiente al sitio seguro
La directiva a2ensite nos permite habilitar el módulo:
root@dbase:~# a2ensite default-ssl
root@dbase:~# a2dissite default-ssl
3. Instamos OpenSSl para crear el certificado digital autofirmado para nuestro sitio seguro.
root@dbase:~# apt-get install openssl
4. Generamos la clave con la que firmaremos los certificados.
root@dbase:~# openssl genrsa -des3 -out cert_daw00.key 4096
Indicamos que genere la clave (genrsa), sistema de cifrado de la clave (-des3), salida del archivo (-out),
nombre (cert_nombre.key), y tamaño de la clave (4096).
5. Generar información del certificado
Crear un archivo donde especificamos la clave con la que firmaremos los certificados y los datos que se
agregan al certificado como el país, nombre, clave, alternativa, compañía, etc.
root@dbase:~# openssl req -new -key cert_daw00.key -out cert_daw00.csr
Donde para un certificado nuevo se requiere una clave (req -new -key) creada en el paso anterior
(cert_daw00.key) y se guardará en el archivo csr (-out cert_daw00.csr).
5. Generar información del certificado
Ahora crear el certificado firmado con la clave y el archivo cert, aplicando el formato de clave pública
(x509), los días de vigencia del certificado (-days 365), archivo csr de datos del certificado (-in
cert_daw00.csr), calve de acceso al certificado (csr -signkey cert_daw00.key), y certificado creado (-out
cert_daw00.crt).
Página 42 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
root@dbase:~# openssl x509 -req -days 365 -in cert_daw00.csr -signkey cert_daw00.key -out cert_daw00.crt
Creamos el subdirectorio daw00 donde vamos a guardar los certificados generados dentro de ssl:
root@dbase:~# mkdir /etc/apache2/ssl
root@dbase:~# mkdir /etc/apache2/ssl/daw00
root@dbase:~# mv cert_daw00* /etc/apache2/ssl/daw00
Comprobamos la IP del host virtual y el puerto 443 que es el usado por ssl.
root@dbase:~# nano /etc/apache2/ports.conf
8.3.1
Crear web para alojar el contenido del servidor virtual configurado para acceder mediante certificados
8.3.1.1
Crear la estructura de Directorios
El primer paso que necesitamos es crear el directorio donde se guardará la información de nuestro sitio
seguro. Nuestro documento raíz (el directorio principal en el cual Apache busca el contenido para mostrar)
será configurado en directorios individuales dentro de la ruta /var/www/html. Crearemos el directorio aquí
para el Virtual hosts que pretendemos configurar.
root@dbase:~# mkdir /var/www/html/sitioSegurodawXX XXdaw
8.3.1.2
Crear una página de prueba para nuestro sitio Virtual Host seguro
Dentro de /var/www/html/sitioSegurodawXX crear una página index.html:
root@dbase:~# cp /var/www/html/miprimerapag.html /var/www/html/sitioSegurodawXX/index.html
root@dbase:~# nano /var/www/html/ sitioSegurodawXX /index.html
<!doctype html>
<html>
<head>
<title>Bienvenido a mi página</title>
<meta charset=”utf-8”/>
</head>
<body>
<h1> Éxito! El Virtual Host sitioSegurodawXX.conf está funcionando!</h1>
<p>“Esta es la página www.sitioSegurodawXX.com del sitio virtual sitioSegurodawXX que usa certificados digitales.”</p>
</body>
</html>
Página 43 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.3.2
Crear el Nuevo Archivo Virtual Host administrado con certificados digitales
Generamos el fichero de configuración Virtual Host correspondiente al nuevo sitio virtual:
root@dbase:~#
cp
sitioSegurodawXX.conf
/etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/
root@dbase:~# nano /etc/apache2/sites-available/sitioSegurodawXX.conf
El contenido de nuestro archivo Virtual Host sitioSegurodawXX.conf sería:
<VirtualHost 172.16.100.2:443>
…
ServerAdmins webmaster@localhost
ServerName www.sitioSegurodawXX.com
DocumentRoot /var/www/html/sitioSegurodawXX
<Directory /var/www/html/sitioSegurodawXX >
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
Order allow, deny
Allow from all
</Directory>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/daw00/cert_daw00.crt
SSLCertificateKeyFile /etc/apache2/ssl/daw00/cert_daw00.key
…
</VirtualHost>
8.3.3
Habilitar el nuevo Archivo Virtual Host para el sitio seguro
Una vez creados los archivo virtual host, hay que habilitarlos.
Podemos usar la herramienta a2ensite para habilitarlo haciendo esto:
Habilitamos el sitio virtual:
root@dbase:~# sudo a2ensite sitioSegurodawXX.conf
root@dbase:~# service apache2 reload
o bien:
root@dbase:~# systemctl reload apache2
Comprobamos que el sitio ha sido habilitado:
root@dbase:~# ls /etc/apache2/sites-enabled
Página 44 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.3.4
En el equipo cliente Linux
Configurar archivos locales
root@dbase:~# sudo nano /etc/hosts
172.16.100.2 www.virtual1daw100.com
172.16.100.2 www.virtual2daw100.com
172.16.100.33 www.virtual3dawXX.com
172.16.100.44 www.virtual4dawXX.com
172.16.100.2 www.virtual5dawXX.com
172.16.100.2 www.sitioSegurodawXX.com
8.3.5
En el equipo cliente Windows
Configurar archivos locales
Abrir con el bloc de notas
c:\Windows\System32\drivers\etc.
como
administrador
el
fichero
hosts
en
la
ruta
El archivo de configuración hosts añadiendo la nueva IPs asociada al nuevo nombre de dominio
quedaría de la siguiente manera:
Página 45 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
8.3.6
Prueba al sitio virtual seguro desde el equipo cliente
Ahora que tenemos el nuevo Virtual Host configurado para acceder desde un cliente al sitio seguro con
puerto 443, podemos realizar pruebas de acceso a la configuración especificada simplemente visitando el
nuevo dominio que hemos configurado mediante nuestro navegador web.
El acceso al sitio virtual seguro (https) en el puerto 443 lo comprobamos tecleando en la barra del
navegador: https://www.misitioSeguroXX.com:443
El navegador Firefox mostrará la siguiente ventana:
Pulsamos en el botón Avanzado:
Página 46 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Pulsamos en el botón Obtener certificado y a continuación en el botón Ver:
Nos mostrará la información del certificado creado en el servidor:
Y a continuación se mostrará la página de inicio del sitio virtual seguro:
Página 47 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Alojamiento del sitio web
mkdir /var/www/html/sitioseguro
cp /var/www/html/miprimerapag.html /var/www/html/sitioseguro/index.html
<html>
<head>
<title>Bienvenido a Ejemplo.com!</title>
</head>
<body>
<h1>Este el es el servidor web de smr que usa certificados!</h1>
</body>
</html>
Creamos el sevidor virtual https y lo configuramos:
#cp /etc/apache2/sites-available/xxx /etc/apache2/sites-available/smr00_ssl.conf
<VirtualHost 172.16.5.2:443>
ServerAdmins webmaster@localhost
ServerName www.smr00.com
DocumentRoot /var/www/html
<Directory /var/www/html/sitioseguro>
DirectoryIndex index.html
ErrorLog 404 “Página no encontrada”
Order allow,deny
Página 48 de 49
UD01: Implantación de Arquitecturas Web
Despregramento de Aplicacións Web
Práctica: Configuración y administración de servidores web: Apache en debian
DAW
Allow from all
</Directory>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/smr00/cert_smr00.crt
SSLCertificateKeyFile /etc/apache2/ssl/smr00/cert_smr00.key
</VirtualHost>
Página 49 de 49
Descargar