Post on 22-Dec-2014
LUIS MIGUEL GOMEZ JIMENEZ
GRUPO: S22
PRACTICA 4 LINUX – SERVIDOR WEB APACHE
PRÁCTICA 4. LINUX SERVIDOR WEB APACHE
1. Introducción al protocolo HTTP ----- TEORIA_HTTP.PDF Internet RFC HTTP: http://tools.ietf.org/html/rfc2616
MIME TYPES: http://www.webtaller.com/maletin/articulos/que-son-mime-types.php
TIPOS MIMES:
http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book3ed/appb/mimetype.html
LISTA DE CABECERAS HTTP 1.1: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
CABECERA AGENTE DE USUARIO: http://es.wikipedia.org/wiki/Agente_de_usuario
EJERCICIO 1. HTTP.
1) Visualiza la información de las cabeceras de los siguientes servidores webs identificando los
parámetros que puedas, con wget -S:
http://www.linux-magazine.es/
http://www.debian.org
http://www.linuxtotal.com.mx/index.php?cont=info_admon_017
2) Aportaciones sobre el tema.
2. Servidor web Apache2.
http://httpd.apache.org/docs/2.2/es/
Apache es el servidor web más utilizado en sistemas GNU/Linux y Unix. Los servidores web se
usan para el alojamiento de páginas web solicitadas por el cliente a través de internet desde
los navegadores de web, actualmente el servidor apache se encuentra en la versión 2.
Viene con las siguientes ventajas y beneficios proporcionados por el software de servidor
apache:
• Estabilidad.
• Trabaja sobre una amplia gama de plataformas.
• Extremadamente flexible y modular.
• Varios sitios alojados en un solo servidor apache.
• El servidor web más utilizado en www.
DOCUMENTACIÓN OFICIAL DE APACHE.
http://httpd.apache.org/docs/2.2/es/
LINK PARA UBUNTU 10.04: http://library.linode.com/web-
servers/apache/installation/ubuntu-10.04lucid
Para poder instalar apache:
# apt-get install apache2
El servicio de apache2 en linux se llama igual que el paquete, es decir, apache2. Al igual que
todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta
/etc/init.d.
Las opciones de ejecución de que dispone son estas:
# /etc/init.d/apache2 {start | stop | restart | reload | forcereload}
// Arrancar el servidor Web
# /etc/init.d/apache2 start
// Rearrancar el servidor Web
# /etc/init.d/apache2 restart
// Parar el servidor Web
# /etc/init.d/apache2 stop o service apache2 stop
• start Inicia el servicio de apache.
• stop: Detiene el servicio de apache.
• restart: Reinicia el servicio de apache. Equivale a un stop, seguido de un start.
• reload: Recarga los últimos cambios registrados dentro del servicio de apache.
• forcereload: Fuerza a realizar una recarga de los últimos cambios realizados dentro del
servicio de apache.
También podemos utilizar la utilidad apache2ctl / apachectl:
apache2ctl [-k start|restart|graceful|graceful-stop|stop]
Con esta herramienta podemos obtener también más información del servidor:
apache2ctl -t : Comprueba la sintaxis del fichero de configuración.
apache2ctl -M : Lista los módulos cargados
apache2ctl -S : Lista los sitios virtuales.
apache2ctl -V : Lista las opciones de compilación
Para comprobar si se ha instalado correctamente el servidor tenemos que arrancarlo, con el
comando del apartado anterior, y abrir el navegador escribiendo la dirección: http://localhost.
En el navegador debe aparecer una página web, que es la que instala por defecto.
Por defecto, la carpeta raíz del servidor web es la carpeta /var/www. Todos los documentos
que se encuentren dentro de la carpeta raíz del servidor web, serán accesibles vía web. Para
acceder vía web a la página almacenada en la carpeta raíz del servidor, desde un navegador
debemos acceder directamente con la dirección IP a: http://ip-del-servidor o bien utilizando
el nombre del mismo si tenemos el DNS funcionando: http://nombre-del-servidor. Si no
tenemos el DNS funcionando, podemos añadir el nombre y la IP en /etc/hosts para resolver
localmente.
Carpeta raíz del servidor web: /var/www
Acceso a la web principal: http://ip-del-servidor ó http://nombre-del-servidor.
CONFIGURACIÓN DEL SERVIDOR APACHE
El fichero de configuración se encuentra en: /etc/apache2/, y tiene los parámetros básicos de
configuración del servidor. El archivo contiene una serie de directivas que determina el
comportamiento del servidor. Las directivas que no se especifiquen utilizan su valor por
defecto. Dentro de este
directorio encontraremos varios archivos y directorios:
• apache2.conf: Dentro de este archivo se encuentra la configuración del servidor web
apache. Incluye“includes” a los demás ficheros.
• conf.d: Directorio en donde se encuentran otros archivos de configuración de apache.
• envvars: Este archivo de configuración contiene la información del usuario, grupo Y PID del
servicio de apache.
• httpd.conf: Este era el archivo de configuración, ya no se usa, al menos en distribuciones
basadas en Debian. Pero en cualquier caso, el fichero de configuración principal apache2.conf,
tiene un include a este fichero, por lo que podría usarse.
• ports.conf: Archivo de configuración donde se especifican los puertos de escucha. Por
defecto usará l 80 para http y el 443 para https, si está instalado. Para especificar que
escuchará otros puertos en todas las interfaces basta con: Listen 80
Listen 8000 O bien, para indicar que escucha un puerto por una interfaz y otro por otra: Listen 192.0.2.1:80
Listen 192.0.2.5:8000
• mods-available: Directorio donde se encuentran los módulos que tenemos disponibles para
instalar en el servidor apache. Tiene los ficheros .load que tienen todo lo necesario para cargar
un módulo y los .conf que tienen la configuración básica para inicializar el módulo.
• mods-enabled: Este directorio contiene un enlace débil a cada módulo del directorio anterior
que esté activado en apache. De esta manera se sabe si un módulo está activado en apache o
no. Los enlaces que estén en este directorio serán los módulos a cargar al iniciar Apache.
• sites-available: Directorio en donde se encuentran los archivos de configuración de sitios
virtuales.
Dentro de esta carpeta se encuentra un archivo plantilla para sitios web con http, y otro para
sitios
web con https. Aquí se crearán los archivos de configuración de sitio necesarios. Por defecto
está creado el fichero default con la configuración del servidor virtual por defecto.
• sites-enabled: Este directorio contiene un enlace débil a cada sitio del directorio anterior
que esté
activado en apache. De esta manera se sabe si un sitio está activado en apache o no.
ARCHIVO APACHE2.CONF
El fichero se puede dividir en tres secciones, si bien, es una organización puramente
organizativa, no
una división estricta.
- Seccion 1. Directivas globales, donde se definen aspectos de Apache, como el número máximo
de clientes concurrentes, los timeouts, el directorio donde están los ficheros de configuración,
etc.
- Sección 2. Directivas de funcionamiento del servidor principal y de todos los servidores
virtuales.
- Sección 3. Directivas de configuración de los servidores virtuales.
EJERCICIO 2. INSTALACIÓN DE UN CLIENTE WEB CHROME EN TU LINUX
DESKTOP.
Para la instalación del cliente chrome en Ubuntu desktop he seguido el siguiente enlace.
http://proyectosbeta.net/2012/07/instalar-google-chrome-en-ubuntu-12-04/
Resultado:
EJERCICIO 3: INSTALACIÓN Y CONFIGURACIÓN APACHE 2 EN DEBIAN/UBUNTU
1) Instala el servidor web Apache e indica el FQDN para que al iniciar el servicio no nos
de ningún problema.
2) ¿Qué diferencia hay entre un restart y un reload?
• restart: Reinicia el servicio de apache. Equivale a un stop, seguido de un start.
• reload: Recarga los últimos cambios registrados dentro del servicio de apache.
3) ¿Qué es la opción graceful?
Esta opción hace que el proceso padre indique a sus hijos que terminen después de servir la petición que estén atendiendo en ese momento (o de inmediato si no están sirviendo ninguna petición). El proceso padre lee de nuevo sus ficheros de configuración y vuelve a abrir sus ficheros log. Conforme cada hijo va terminando, el proceso padre lo va sustituyendo con un hijo de una nueva generación con la nueva configuración, que empeciezan a servir peticiones inmediatamente.
4) Comprueba la directiva donde indicamos el puerto de escucha del servidor
Escuchará por el puerto 80 por defecto anose que se le instale algún modulo adicional.
5) Comprueba los módulos cargados en el servidor: mirando en el directorio adecuado y
utilizando la herramienta apache2ctl.
6) Comprueba los sitios webs activos en nuestro servidor: mirando en el directorio adecuado y
utilizando la herramienta apache2ctl.
EJERCICIO 4. APACHE SIN VIRTUAL HOST
El servidor web Apache2.2 se instala por defecto con un host virtual. La configuración de este
sitio la podemos encontrar en:
/etc/apache2/sites-available/default
Y por defecto este sitio virtual está habilitado, por lo que podemos comprobar que existe un
enlace
simbólico a este fichero en el directorio /etc/apache2/sites-enabled.
Si no necesitamos utilizar la funcionalidad de vitual hosting debemos deshabilitar el sitio
virtual:
a2dissite default
y podemos coger parte del fichero de configuración default y añadirlo a la configuración del
servidor web, por ejemplo podemos ponerlo dentro del fichero /etc/httpd.conf:
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Reiniciamos el servicio y comprueba que puedes acceder al servidor.
EJERCICIO 5: INTRODUCCIÓN AL VIRTUAL HOSTING CON APACHE 2.2
El objetivo de esta práctica es la puesta en marcha de dos sitios web utilizando el mismo
servidor web apache. Hay que tener en cuenta lo siguiente:
Cada sitio web tendra nombres distintos, cada sitio web compartirán la misma dirección IP y el
mismo puerto (80).
Queremos construir en nuestro servidor web apache dos sitios web con las siguientes
características:
1. El nombre de dominio del primero será www.iespjm.com, su directorio base será
/var/www/iespjm y contendrá una página llamada index.html, donde sólo se verá una bienvenida.
2. En el segundo sitio vamos a crear una página donde se pondrán noticias por parte de los
departamento, el nombre de este sitio será www.sri.org, y su directorio base será
/var/www/sri. En este sitio sólo tendremos una página inicial index.html, dando la bienvenida a
la página del módulo SRI.
Para conseguir estos dos sitios virtuales debes seguir los siguientes pasos:
3) Los ficheros de configuración de los sitios webs se encuentran en el directorio
/etc/apache2/sitesavailable,por defecto hay dos ficheros, uno se llama default que es la
configuración del sitio web por defecto.
Necesitamos tener dos ficheros para realizar la configuración d elos dos sitios virtuales para ello
vamos a copiar el fichero default :
#cd/etc/apache2/sites-available
#cp default iespjm
#cp default sri
2)Modificamos el fichero iespjm, donde vamos a añadir la siguiente línea:
ServerName www.iespjm.org
Y vamos a modificar dos líneas:
DocumentRoot /var/www/iespjm/
<Directory /var/www/iespjm/>
Hago lo mismo para el archivo sri.
No es suficiente crear los ficheros de configuración de cada sitio web es necesario crear un
enlace simbólico a estos ficheros dentro del directorio /etc/apache2/sites-enabled, para ello:
# cd /etc/apache2/sites-enabled
#a2ensite iespjm
# a2ensite sri
Ahora creo las carpetas sri y iespjm con sus correspondientes index.html
En el cliente
Edito el archivo /etc/hosts
EJERCICIO 6. PUERTOS DE ESCUCHA
1) Configura apache2 para no usar virtual hosting, y cambia el puerto de escucha del servidor al
8081.
¿Se puede terner el servidor escuchando por dos puertos el 80 y el 8081?
Si
2) Configura apache2 para que use los sitios virtuales del ejercicio 5 anterior, pero modifica la
configuración para que www.iespjm.com sea visible por el puerto 80, y www.sri.com sea visible
desde el puero 8081. Archivo /etc/apache2/sites-available/iespjm
ESTRUCTURA DE LOS FICHEROS DE CONFIGURACIÓN
http://httpd.apache.org/docs/2.2/configuring.html
Los módulos pueden ser así activados, o desactivados, según nuestras necesidades. La gestión
de
módulos se realiza así:
• Ver los módulos que tenemos activados:
# apache2ctl l
• Para activar un módulo:
# a2enmod modulo (apache 2 enable module)
• Para desactivar un módulo:
# a2dismod modulo (apache 2 disable module)
EJERCICIO 7. DIRECTIVAS DEL FICHERO APACHE2.CONF
Busca en el fichero de configuración de Apache las siguientes directivas, determina que
función tienen y el valor que poseen por defecto.
Directivas de identificación del servidor:
ServerName Directiva establece el esquema de solicitud, nombre de host y puerto que el
servidor utiliza para identificarse. Esto se utiliza al crear direcciones URL de redirección.
ServerAdmin Dirección de correo electrónico que el servidor incluye en los mensajes de
error se envía al cliente
Directivas de localización de ficheros
DocumentRoot Directorio que forma la estructura del documento principal visible desde la
web.
ErrorLog Lugar donde el servidor registra los errores.
CustomLog Establece nombre y el formato del archivo de registro.
PidFile Presente en el servidor registra el ID de proceso del daemon.
ServerRoot Base directorio para la instalación del servidor.
AccessFileName Nombre del fichero de configuración distribuida
Directivas de control de la conexión
Timeout Cantidad de tiempo que el servidor esperará para ciertos eventos antes de fallar
una solicitud. Sintaxis: TimeOut segundos KeepAlive Permite conexiones HTTP persistentes.
MaxKeepAliveRequests Número de peticiones permitidas en una conexión persistentes.
KeepAliveTimeout Cantidad de tiempo que el servidor esperará para las solicitudes
posteriores en una conexión persistente.
Otras directivas
User Nombre de usuario con el que el servidor responderá a las peticiones
Group Grupo con el que el servidor atenderá las peticiones
DefaultType Tipo de contenido MIME por defecto que usará el servidor si no puede
determinar el tipo MIME en concreto del documento a servir.
LogLevel Controla el nivel de detalle del registro de errores.
LogFormat Describe un formato para su uso en un archivo de registro.
EJERCICIO 8. Y ESTRUCTURA DE LOS FICHEROS DE CONFIGURACIÓN.
1) Las directivas de configuración de apache2 se pueden aplicar si está definido un
determinado parámetro. Para esto se utiliza la directiva <IfDefine>. Busca en algún
fichero de configuración esta directiva.
No la he encontrado.
2) Para cargar dinámicamente los módulos se utilza la directiva LoadModule, búscalos
en los ficheros *.load dentro de /etc/apache2/mods-availables.
Más información: http://httpd.apache.org/docs/2.2/dso.html
3) Busca en la configuración una variable de entorno y determina en que fichero están
definidas.
4) La directiva Include nos permite añadir ficheros de configuración a la configuración general
de apache2. Comprueba qué ficheros son añadidos con esta directiva.
5) Podemos aplicar directivas a partes concretas de nuestro servidor web, para ello estudia las
siguientes directivas (Para aprender más lee Secciones de Configuración):
<Directory>
Se usa para englobar un grupo de directivas que se aplicarán solamente al directorio
especificado y a sus subdirectorios. Puede incluir a cualquier directiva cuyo uso esté
permitido en un contexto <directory>. Directory-ruta puede ser tanto la ruta
completa a un directorio, como una cadena de caracteres comodín que use las reglas
de equivalencia de
los shells de Unix.
<DirectoryMatch>
Se usa para englobar a un grupo de directivas que se aplicarán solamente al directorio
(y los subdirectorios de éste) especificado, al igual que <Directory>. Sin embargo, en
ese caso la directiva toma como argumento una expresión regular.
<VirtualHost>
Se usan para incluir un grupo de directivas que se aplicarán solo a un host virtual en
particular. Cualquier directiva que esté permitido usar en un contexto virtual host
puede
usarse. Cuando el servidor recibe una petición de un documento de un host virtual en
concreto, usa las directivas de configuración incluidas en la sección <VirtualHost>.
Localiza algunas de ellas en los ficheros de configuración.
LOGS Y ERRORES.
http://httpd.apache.org/docs/2.2/es/logs.html
EJERCICIO 9. Logs.
1) Consulta el fichero /etc/apache2/sites-available/default e indica cuál es fichero de logs
de errores, qué directiva usa y cuál es su nivel de prioridad. Muestra su contenido.
Directiva ErrorLog
Nivel de prioridad warning
2)Indica cuál es fichero de logs de accesos, qué directiva usa y cuál es su formato. Muestra su
contenido.
Ruta del fichero log: /var/log/apache2/Access.log
Directiva: CustomLog
Formato: Combined
3) Estando en el mismo fichero, configura el servidor para que cuando retorne el código
ErrorDocument de valor 404 envio el texto “Página no encontrada en el servidor iespjm.com.
Pruébalo accediendo a una página html que no existe.
4) Modifica ahora el comportamiento anterior para que cuando ese caso se de, se muestre el
contenido de no_esta.html creado por ti.
DIRECTORIOS VIRTUALES.
Son directorios que están fuera del directorio raiz DocumentRoot. Se pueden crear con la
directiva Alias, y con un enlace simbólico dentro del directorio raíz (FollowSymLinks)
apuntando al otro directorio.
EJERCICIO 10. DIRECTORIOS VIRTUALES.
1)Crea un directorio en /home/alumno/redes. Accede con el usuario alumno. Crea un archivo
dentro redes.html. Accede como administrador y edita el fichero default y utilizando la
sentencia Alias crea un directorio virtual /redes y configúralo con la directiva <Directory.
Pruébalo.
Desde el cliente
2)Crea un directorio en /home/alumno/servicios. Accede con el usuario alumno. Crea un archivo
dentro servicios.html. Accede como administrador y crea utilizando un enlace simbólico entre
la carpeta /var/www/servicios y /home/alumno/servicios. Pruébalo.
Ahora creamos en enlace simbolico.
Volvemos a editar nuestro sitio default.
La opción FollowSymLinks sirve para seguir los enlaces simbólicos alojados en el.
Desde el servidor
Desde el cliente.
CONFIGURACIÓN MODULAR EN APACHE
Apache es un servidor modular y el núcleo tiene las funcionalidades básicas que se pueden
ampliar con módulos adicionales. Cada módulo se puede configurar con directivas. Existen
múltiples módulos que puedes consultar en http://httpd.apache.org/docs/2.2/mod y en
http://modules.apache.org
Existen módulos estáticos que se añaden cuando se compila Apache. Y módulos dinámicos que
se cargan dinámicamente cuando se inicia el servidor. Si el servidor se compila con la opción
DSO, entonces se podrán cargar módulos dinámicos con la directiva LoadModule. La directiva
<IfModule > permite especificar que se tendrá en cuenta si el módulo está cargado.
EJERCICIO 11. APACHE MODULAR. o existe.
1) Consulta los módulos estáticos (apache2ctl) de la versión precompilada .deb que está
instalada en tu Ubuntu y los módulos dinámicos cargados por defecto.
2) Consulta los módulos dinámicos en /etc/apache2/mods-enabled. ¿qué tipo de ficheros
encuentras?
3) Edita el fichero alias.load y observa cómo se utiliza la directiva LoadModule para cargar el
módulo Comprueba cuál es la ruta donde está el código del modulo (archivo .so)
4) Edita el fichero alias.conf, ¿qué encuentras dentro de la directiva <IfModule.
Encontraremos la configuración del modulo.
5) Muestra de la carpeta modules, los módulos disponibles para cargar.
6) Con sudo apt-cache search libapache2-mod muestra los paquetes disponibles en los
repositorios de Ubuntu que permiten instalar módulos adicionales de Apache.
7) Comprueba que el módulo userdir no está habilitado. Desabilitalo, y finalmente vuelve a
habilitarlo.
8) ¿Qué ficheros se han creado en el directorio mods-enabled? Reinicia el servidor.
9) Consulta userdir.conf y observa que se han habilitado el uso de directorios personales. ¿cuál
es el nombre del subdirectorio que pueden crear los usuarios en su directorio home para poner
sus páginas personales?
10) Inicia una sesión con el usuario alumno, y vete al subdirectorio creado antes y crea una
página web personal.htm. Accede ahora a tu navegador con la URL
http://10.33.1.2/~alumno/personal.htm
El carácter que hay antes de luis ( Alt Gr + ñ)
11) Indica cómo podrías cambiar el nombre del subdirectorio creado por defecto por otro.
12) Activa ahora los módulos mod_info y mod_status que dan información acerca del servidor
web y comprobar su funcionamiento.
13) Prueba Redirect.
14) El módulo rewrite nos va a permitir acceder a una URL e internamente estar accediendo a
otra,
entre otros cometidos. Activa el módulo mod_rewrite y empléalo para algún propósito.
RewriteEngine On Para activar el motor del módulo para este servidor.
RewriteOptions Inherit Para aplicar este módulo al host virtual y no al servidor
principal
RewriteRule Esta directiva especifica la regla que deseamos configurar.
Al intentar acceder a http://10.33.1.2/index.html me redirecciona automaticamente a:
EJERCICIO 12. CONTROL DE ACCESO POR IP UTILIZANDO LAS DIRECTIVAS
ORDER, ALLOW Y DENY
1) Inicia una sesión como administrador y crea un directorio privado en www y dentro crea
una página privada.html. Edita el fichero de configuración /etc/sites-available/default y
niega el acceso a todos los equipos excepto al ubuntucliente.
Si intento acceder desde localhost:
Si intento acceder desde el cliente Ubuntu desktop como dice la práctica:
2) Comprueba el control de acceso del directorio DocumentRoot en el host virtual default.
Es muy permisivo, permite todas las conexiones.
3) Comprueba el control de acceso del directorio doc en el host virtual default.
EJERCICIO 13. AUTENTIFICACIÓN BÁSICA, HTTP BASIC
El servidor web Apache puede acompañarse de distintos módulos para proporcionar diferentes
modelos
de autenticación. La primera forma que veremos es la más simple. Usamos para ello el módulo
de autenticación básica que viene instalada “de serie” con cualquier Apache: mod auth_basic.
Consulta la documentación relativa a AuthName,AurthType y AuthUserFile y Requiere en
http://httpd.apache.org/docs/2.2/mod/quickreference.html
1) Comprueba que el módulo auth_basic está habilitado mirando el directorio mods-enabled
2) Crea usuarios donde guardarás el nombre y clave de los usuarios con el comando:
sudo htpasswd –c /etc/apache2/passwd alumno1
sudo htpasswd /etc/apache2/passwd alumno2
Una vez creados los usuarios alumno1 y alumno2 les asigno una nueva contraseña:
3) Edita el fichero /etc/sites-available/default y sobre el directorio privado y añade:
AuthName “Acceso privado”
AuthType Basic
AuthUserFile /etc/apache2/passwd
Require user alumno sri alumno
4) Ahora accede a www.iespjm.com/privado para probarlo.
5) Repite el ejemplo para un host virtual tuyo, para una carpeta llamada segura y crea dos
usuarios Crea un grupo de usuarios grupoalaumnos que tendrá a los usuarios Marta y Jaime. A
esta carpeta sólo tendrá acceso el grupoalumnos y no por ejemplo a marisa.
Para eliminar un usuario borraremos la línea del usuario que queramos. En mi caso he borrado el usuario Marta y no podrá autentificarse en segura.html
EJERCICIO 14. CONFIGURACIÓN DE .HTACCESS
1) Habilita en /etc/apache2/sites-available/default el uso de este tipo de ficheros
permitiendo sobreescribir todas las directivas en el directorio /home/alumno/redes.
Reinicia el servidor. Inicia sesión como alumno y crea el fichero .htaccess dentro de la
carpeta y añade directivas para permitir el acceso desde todos los equipos que estén en la
red 10.33.1.0/24 con allow from. Ojo!, no hace falta poner la directiva <Directory. Sin
reiniciar, accede a http://localhost/redes y verifica que es posible acceder.
Al intentar acceder a redes desde localhost y no ser el rango permitido en la imagen de arriba,
nos denegará el acceso.
Si intento acceder desde mi cliente Ubuntu desktop con ip 10.33.1.55 me dejará entrar sin
ningún problema.
2) Habilita la opción de listar los ficheros en ese directorio y haz que la página entrada.html
se visualice por defecto.
3) Hecer que los ficheros txt no sean accesibles.
Edito el nombre del directorio index para que no encuentre entradaaa.html y nos muestre el
índice.
Para hacer que no sea el fichero prueba.txt no sea accesible, abro de nuevo
.htaccess y añado las siguientes directivas.
Aquí Vemos como ha dejado de aparecer el fichero prueba.txt
4) Redireccionar a una página, por ejemplo cuando entremos en este directorio salte a
www.google.es
5) Crear una lista de IPs prohibidas
Modificamos .htaccess para permitir todas las direcciones y luego denegar alguna especifica
que queramos.
La ip 10.33.1.55 corresponde a mi Ubuntu desktop cliente el cual tiene denegado el acceso al
directorio redes.
6) Crear una página personalizada para un tipo de error
EJERCICIO 15. AUTENTIFICACIÓN TIPO DIGEST
La autentificación tipo digest soluciona el problema de la transferencia de contraseñas en
claro sin necesidad de usar SSL. El procedimiento, como veréis, es muy similar al tipo básico
pero cambiando algunas de las directivas y usando la utilidad htdigest en lugar de htpasswd
para crear el fichero de contraseñas. El módulo de autenticación necesario suele venir con
Apache pero no habilitado por defecto. Para activarlo usamos la utilidad a2enmod y, a
continuación reiniciamos el servidor Apache:
1) Crea dos subdirectorios en el host virtual default que se llamen grupo1 y grupo2. Crea
los usuarios mencionados arriba con la utilidad htdigest, asignando a cada uno un
dominio distinto (domgrupo1 y domgrupo2). Configura los directorios para que al
primero grupo1 sólo puedan acceder el usuario del dominio domgrupo1, y el directorio
grupo2 solo accedan el usuario del dominio domgrupo2.
Habilitamos el modulo auth_digest
Creación de subdirectorios:
Creación de usuarios con htdigest
Directivas:
EJERCICIO 16. AUTENTICACIÓN CON USUARIOS DEL SISTEMA
EJERCICIO 17. AUTENTIFICACIÓN CON MYSQL
Siguiendo la explicación de clase e Internet, configura al menos un sitio web de tu servidor
para que su acceso sea mediante autenticación MySql. Nota: las contraseñas de los usuarios se
deben guardadas encriptadas.
http://www.guia-ubuntu.org/index.php?title=MySQL
http://blog.unlugarenelmundo.es/2010/03/18/autenticacion-en-apache-y-ii-digest-y-con-
mysql/
Seguimos con la instalación del servidor y el cliente de MySQL Empezamos a instalar mysql client y server y phpmyadmin
sudo apt-get install mysql-server mysql-client -y
Pedirá clave para el usuario root y luego la confirmación de la misma. Ahora podemos
instalar todos estos módulos, mejor que sobre y no que falte.
sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-
imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell
php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl -y
Entre ellos va el soporte para MySQL, cURL, etc. Ahora otro reinicio del servidor web: sudo /etc/init.d/apache2 restart
Y ahora instalamos la interfaz web para manejar el MySQL y sus bases de datos,
phpMyAdmin: sudo apt-get install phpmyadmin –y
Creo la base de datos apache y tabla usuarios.
Creamos dos usuarios para probar:
EJERCICIO 18. HTTPS.
- Habilita el módulo mod_ssl y el puerto de escucha 443.
- Abre y observa el sitio web default_ssl. a2enmod ssl
- Crea y habilita un sitio web seguro para el dominio seguro.iespjm.com
crea certificados autofirmados,
a) aptitude install ssl-cert
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/seguro.crt
b) openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/seguro.pem -keyout /etc/
apache2/ssl/segurokey.key
chmod 600 /etc/ apache2/ssl/seguro*
- Crea un directorio /var/www/seguro donde se sirve el fichero index.html si no se dice nada y
no se mostrará ningún fichero si no se solicita. Y podrán acceder todos los usuarios.
- El log de errores será /var/log/apache2/seguro_error.log y el de sucesos
/var/log/apache2/access_seguro.log con formato combined
Agregamos el certificado al sitio seguro.iespjm
POR ULTIMO COMPROBAMOS QUE HEMOS CONFIGURADO TODO PERFECTAMENTE.
EJERCICIO 19. CONFIGURACIÓN DE ESTADÍSTICAS CON AWSTATS
INDEPENDIENTES
PARA TUS DOS SITIOS WEBS DE TU SERVIDOR
http://www.lostscene.com/manuales/awstats.php
Editamos el siguiente archivo para decir cual será nuestro archivo log.
**AQUÍ ME QUEDADO EN ESTE EJERCICIO.
EJERCICIO 20. PROXY WEB PARA TU SERVIDOR APACHE
Instala y configura un proxy transparente en tu Linux NAT que gestione tu servidor web.
Especifica manual detallado para su instalación, configuración y puesta en marcha.
En el archivo /etc/apache2/httpd.conf añadimos las siguientes líneas.
Y este es el resultado: