apache

9

Click here to load reader

Transcript of apache

Page 1: apache

Sistemas Operativos Monopuesto

http://monopuesto.com

Sistemas Microinform�ticos y Redes

Ciclo de Grado Medio de Formaci�n Profesional

Xavier Cardona y Anna Ferrer

Manresa - 18 de marzo de 2011

i| Sistemas Operativos Monousuario http://monopuesto.com

Page 2: apache

Índice

1. Apache 1

1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1. Funcionamiento del protocolo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Instalación del servicio en el servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1. Módulos de processamiento MPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Elementos de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.1. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3.2. Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4. Ficheros de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.1. Fichero de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5. Parada y arrancada de Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5.1. Parada y arrancada de Apache desde la línea de órdenes . . . . . . . . . . . . . . . . . . 31.5.2. Parada y arrancada de Apache desde Webmin . . . . . . . . . . . . . . . . . . . . . . . . 3

1.6. Monitorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6.1. Monitorización del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6.2. Monitorización de los puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.7. Configuración de los clientes http . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.8. Personalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.8.1. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.8.2. Parámetros de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.8.2.1. Tiempo de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.8.2.2. Tiempo de persistencia de la conexión . . . . . . . . . . . . . . . . . . . . . . . 4

1.8.3. Página inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.8.4. Límite de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.8.5. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.8.5.1. Alias con Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.9. Módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.9.1. Módulo userdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.9.2. Administración de Módulos con Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.10. Hosts virtuales en una misma IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.10.1. Administración de hosts virtuales en una misma IP con Webmin . . . . . . . . . . . . . 5

1.11. Estadísticas: Awffull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.11.1. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.11.2. Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.12. Segurida básica: .htaccess y .htpasswd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.12.1. Casos prácticos de uso de .htaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.12.1.1. Restricción de acceso a carpetas . . . . . . . . . . . . . . . . . . . . . . . . . . 61.13. Conexión segura y Certificados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.14. Protecció contra ataques de fuerza bruta: fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . 7

Sistemas Operativos Monousuario http://monopuesto.com | ii

Page 3: apache

Sistema informático

ApacheServidor de páginas web

El objetivo del tema consiste en insta-lar y configurar el servidor de páginas webApache y comprobar diferentes configuracionescon clientes HTTP, llamados navegadores.

1. Apache

1.1. Introducción

HTTP, siglas de Hypertext Transfer Protocol o Pro-tocolo de Transferencia de Hipertexto en un protocolode Internet de la capa de aplicación que funciona sigu-iendo el esquema cliente-servidor.Apache es un servidor de páginas web que utilizael protocolo HTTP/1.1, descrito en el documentorfc2616. Este servidor es el que actualmente tiene unamayor cuota de mercado.

1.1.1. Funcionamiento del protocolo HTTP

Apache es un servicio que escucha peticiones en elpuerto HTTP (puerto 80).

Los clientes piden al servidor ficheros codificado comouna dirección URL, es decir:protocolo://dirección/directorio/fichero.Por ejemplo: http://www.monopuesto.com/index.html.

Los ficheros que puede enviar Apache son de dos tipos:

Ficheros binarios de datos: imágenes, sonido,películas,...

Ficheros de texto: ficheros que contieneninstrucciones en un lenguaje, generalmente,HTML, Javascript o CSS.

• HTML son las siglas de Hypertext MarkupLanguage o Lenguage de Marcas de Hiper-texto. Estos ficheros, también llamadospáginas web, son interpretados por el nave-gador y presentados según las etiquetasdefinidas en el fichero. Una característicade los ficheros HTML es que son hiper-textuales, es decir, pueden enlazar a otrosficheros.

• Javascript es un lenguaje que se utilizapara mejorar la interfaz de usuario, permi-tiendo, por ejemplo, el autocompletado enlas cajas de texto.

• CSS, siglas de Cascading Style Sheets o ho-jas de estilo en cascada es un lenguaje quedefine la presentación de un documento.Por ejemplo, con CSS se puede definir eltipo de letra y color del título de la página.

En cada petición de una URL pueden suceder dos ca-sos:

Si la petición hace referencia a una página webestática, entonces Apache la envía al cliente taly como están almacenadas en el servidor, sinningún cambio. Las páginas estáticas suelen ten-er la extensión .htm o .html

Un ejemplo de página web estática es el sigu-iente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html lang="es">

<head>

<title>Ejemplo</title>

</head>

<body>

<p>Hola</p>

</body>

</html>

Si la petición hace referencia a una página webdinámica, entonces Apache ejecuta el código dela página y envía el código HTML resultante alcliente. Las páginas dinámicas suelen tener laextensión .php, .aspx, .jsp, ...

Un ejemplo de página web dinámica es el sigu-iente, que muestra la fecha actual:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html lang="es">

<head>

<title>Ejemplo</title>

</head>

<body>

<p>

<?php echo strftime("%d de %m del %Y");?>

</p>

</body>

</html>

En este capítulo supondremos que la dirección IP delservidor Apache es 192.168.1.222 Las referencias adicha IP deberán sustituirse por la dirección IP desu servidor. Por ejemplo, si la IP de su servidor es192.168.0.111, deberá sustituir cualquier referencia a192.168.1.222 por 192.168.0.111

1| Sistemas Operativos Monousuario http://monopuesto.com

Page 4: apache

Ejercicio 1 Utilice la encuesta dehttp://news.netcraft.como/archives/webserversurvey.html

para explicar la evolución de las cuotas demercado de los servidores HTTP durante losdos últimos años.

Ejercicio 2 Comprueba que el servidor tieneuna dirección IP estática.

1.2. Instalación del servicio en el servi-dor

1.2.1. Módulos de processamiento MPM

Los módulos de procesamiento o MPM gestionan laspeticiones que llegan al servidor Apache.Algunas peticiones pueden provocar problemas aApache. Por ejemplo, una petición puede consumir to-da la memoria, de manera que otras peticiones no sepodrán atender. Las peticiones que entran en buclesinfinitos también son fuente de problema y se debendetectar y eliminar.En la instalación de Apache, debe elegir entre los sigu-ientes dos módulos MPM:

MPM Prefork: Cada petición a Apache generaun proceso independiente. Una petición prob-lemática queda aislada del resto de peticiones,por lo tanto, es muy estable. Consume muchamemoria.

MPM Worker: Cada petición a Apache generaun hilo. Un hilo es como un proceso, pero másligero. Una petición problemática puede afectara diferentes hilos de un proceso, siendo menos es-table que MPM Prefork. Consume menos memo-ria.

En aqueste documento se instalará la versión MPMprefork. Para instalar Apache, ejecute desde la conso-la como root:# apt-get install apache2

Apache se ejecutará como servicio cada vez que seinicie el sistema operativo.

Para que Webmin detecte el servicio Apache, siga lospasos de la sección ?? de la página ??.Compruebe que en el menú de la columna izquierda,aparece la opción Servidores->Servidor Web Apachey selecciónela.

Las opciones principales de configuración de Apacheserán las siguientes:

Ejercicio 3 Envíe a su profesor/a una capturade pantalla con las opciones principales de con-figuración de Apache.

Ejercicio 4 Identifica el módulo MPM másadecuado para:

Un servidor Apache con poca memoriaRAM y muchas peticiones.

Un servidor Apache de una tienda virtualque debe tratar las petiones de los clientesde manera que si una petición se cuelga,no afecte a otras peticiones.

Ejercicio 5 Acceda con un navegador a la URLhttp://192.168.1.222 y comprueba que Apache seha instalado correctamente y muestra una men-saje como el siguiente:It works!This is the default web page for this server.The web server software is running but no con-tent has been added, yet.

1.3. Elementos de configuración

1.3.1. Puertos

Apache es un servicio que escucha peticiones en elpuerto HTTP (puerto 80).

1.3.2. Usuarios

El servicio Apache empieza ejecutándose como elusuario root, pero tan pronto como puede, para evi-tar posibles problemas de seguridad, cambia su UIDefectivo por el de la usuario www-data y el grupo porwww-data .

Estos valores se pueden cambiar con las directivasAPACHE_RUN_USER yAPACHE_RUN_GROUP, respectivamente, delfichero de configuración /etc/apache2/envvars

Ejercicio 6 A partir del fichero de configu-ración de Apache o bién con Webmin, seleccio-nando en el menú Servidor Web Apache laopción Usuarios y grupos, averigua el nombredel usuario y del grupo que ejecutan el programaApache

Sistemas Operativos Monousuario http://monopuesto.com | 2

Page 5: apache

1.4. Ficheros de configuración

Los fichero de configuración de Apache son ficheros detexto que se localizan en /etc/apache2. Las líneas queempiezan por el símbolo # son ignoradas. Las otraslíneas están formadas por directivas de configuraciónseguidas de parámetros.

1.4.1. Fichero de actividades

El fichero /var/log/apache2/access.log informa sobrelos accesos a las páginas.El fichero /var/log/apache2/error.log informa sobrelos errores producidos por el servicio.

Ejercicio 7 ¿Desde que direcciones IP se haaccedido al servidor Apache?¿Qué navegador ysistema operativo ha utilizado el cliente para ac-ceder a Apache?

Ejercicio 8 Accede a una página inexistentecomo, por ejemplo, http://192.168.1.222/no-

existe.htm y verifica que el acceso erróneo se haregistrado.

1.5. Parada y arrancada de Apache

1.5.1. Parada y arrancada de Apache desde la

línea de órdenes

El servicio Apache se ejecuta automáticamente cadavez que se ejecuta el sistema operativo.Cada vez que cambie algún fichero de configuración,deberá reiniciar el servicio.Apache se puede parar manualmente con el orden# service apache2 stop

Apache se inicia manualmente con la orden:# service apache2 start

La siguiente orden reinicia el servicio Apache:# service apache2 restart

1.5.2. Parada y arrancada de Apache desde

Webmin

Ejecute Webmin y seleccione la opción Servidores->Servidor Web Apache. En la parte superior de laconfiguración aparecerán las opciones Aplicar Cam-

bios y Parar Apache.

1.6. Monitorización

1.6.1. Monitorización del proceso

Para comprobar que el servicio Apache está funcio-nando, ejecute la orden:# ps aux|grep apache2

El resultado deberá ser parecido al siguiente (só-lo se muestra la primera y la última columna):

USER COMMANDroot /usr/sbin/apache2 -k startwww-data /usr/sbin/apache2 -k startwww-data /usr/sbin/apache2 -k startwww-data /usr/sbin/apache2 -k startroot grep apache2

Como se observa, hay 4 procesos Apache, de los cuales,uno pertenece al usuario root y los otros al usuariowww-data. El proceso que pertenece al root no sirvepáginas web, sino que crea otros procesos Apache con-forme se necesitan.La necesidad de ejecutar un proceso Apache comoroot viene dada porque los puertos hasta el 1024 sólopueden ser leídos por dicho usuario.

1.6.2. Monitorización de los puertos

Para listar los puertos que utiliza Apache y qué direc-ciones atiende, ejecute la orden:# netstat -petuan|grep apache2

El resultado de la anterior orden ha de ser parecido a:Active Internet connections (servers and established)Proto Local Addres Foreign Address State Programtcp6 :::80 :::* LISTEN apache2

Es decir, por defecto Apache utiliza el puerto 80 paraatender las peticiones que le llegan desde cualquierdirección IP.

1.7. Configuración de los clientes http

La mayoría de los sistemas operativos instalan, pordefecto, clientes http denominados ’navegadores’.Es recomendable que el navegador cumpla los están-dares web (Mozilla-Firefox, Chrome, ?) que sea seguroy de fácil uso.Se recomienda huir de Internet Explorer por nocumplir las anteriores condiciones.

Ejercicio 9 Compara el resultado de losnavegadores con el Acid Test disponible enhttp://www.webstandards.org/action/acid2/y http://www.webstandards.org/action/acid3/y explica qué navegador cumple mejor losestándares.

1.8. Personalización

La configuración del servicio Apache viene dada porlos ficheros de configuración de /etc/apache2/ . Unavez modificado el fichero, se debe reiniciar el servicio.

1.8.1. Puertos

Apache es un programa que actúa como un servicio,escuchando en el puerto 80. Este valor se asigna enfichero /etc/apache2/ports.conf en la línea:

Listen 80

1.8.2. Parámetros de tiempo

Los parámetros de tiempo están declarados en elfichero /etc/apache2/apache2.conf .

3| Sistemas Operativos Monousuario http://monopuesto.com

Page 6: apache

1.8.2.1. Tiempo de acceso Por defecto, si unapetición a Apache no se puede servir en 300 segundos,el cliente recibe un mensaje informándole que ha so-brepasado el tiempo máximo de espera. La directivaque controla el tiempo de acceso se llama Timeout.En Webmin el parámetro Timeout está traducido co-moTiempo de espera para requerimientos.

1.8.2.2. Tiempo de persistencia de la conex-

ión Cada vez que un nuevo cliente solicita una pági-na web, se establece una conexión que puede ser re-utilizada si el cliente solicita una nueva página web yno ha pasado un tiempo máximo determinado. Si unaconexión es reutilizada, se aprovecha mejor la memo-ria y el ancho de banda.La directiva que controla el máximo número de peti-ciones que se pueden atender en una conexión re-utilizada es MaxKeepAliveRequests. En Webmineste parámetro está traducido comoRequerimientos

múltiples por conexión.El tiempo de espera entre las peticiones de un clientecon una misma conexión es KeepAliveTimeout. EnWebmin el parámetro KeepAliveTimeout está tra-ducido comoTiempo de espera para mantener

vivos.

Ejercicio 10 Ejecute Webmin. Utilize las op-ciones Servidores->Servidor Web Apache y enla pestaña Global configuration seleccione laopción Redes y direcciones. Averigüe los val-ores por defecto del puerto que escucha Apachey los parámetros Keep-alive timeout, Request

timeout y Multiple requests per conection.

1.8.3. Página inicial

La página inicial que sirve Apache viene da-da por la directiva DocumentRoot, definida en/etc/apache2/sites-available/default.

1.8.4. Límite de procesos

Cuando se inicia Apache, se crean 5 procesos hijosque gestionan las peticiones. Si hay más de 5 peti-ciones, Apache aumenta el número de hijos. La direc-tiva que controla el número de servidores iniciales esStartServers. Esta directiva se puede modificar enel fichero /etc/apache2/apache2.confSi se producen más conexiones simultáneas, el pro-ceso Apache del usuario root creará tantos procesosApache como conexiones, hasta un cierto límite.

Si hay más de MaxSpareServers procesos Apachesin trabajar, se matan algunos de estos procesos, has-ta quedar sólo MinSpareServers.Apache limita el número máximo de peti-ciones que puede servir con la directiva Max-

clients. Esta directiva se puede modificar en elfichero/etc/apache2/apache2.conf .En el programa Webmin, la opción MaxSpare-

Servers está traducida en como Máximo número

de procesos libres del servidor, la opción MinS-

pareServers está traducida como Mínimo número

de procesos libres del servidor y la opción Start-

Servers está traducida como Procesos iniciales del

servidor.

Ejercicio 11 Compruebe con Webmin los val-ores de MinSpareServers, MinSpareServers

y de MaxSpareServers. Utilize las opcionesServidores->Servidor Web Apache y en la pes-taña Global configuration seleccione la opciónLímites y procesos.

1.8.5. Alias

Los Alias permiten, a los clientes de Apache,acceder a los directorios del servidor conun nombre más sencillo de recordar. Porejemplo, para acceder al wordpress instaladoen /var/www/aplicaciones/lamp/wordpress-v3.1 ,hace falta escribir desde el navegadorhttp://192.168.1.222/aplicaciones/lamp/wordpress-v3.1 .Para crear un Alias más amigable como, porejemplo, http://192.168.1.222/blog, debe añadir a/etc/apache2/sites-enabled/000-default antes de:

Alias /doc/ "/usr/share/doc/"

La línea:

Alias /blog "/var/www/aplicaciones/lamp/wordpress-v3.1"

Reinicie el servicio Apache.

1.8.5.1. Alias con Webmin Para crear un Alias

con Webmin, seleccione las opciones Servidores->Servidor Web Apache->Existing virtual hosts. Acontinuación seleccione el servidor en el cual deseacrear el Alias. En este ejemplo, lo crearemos en elservidor Servidor por Defecto. Seleccione el iconoAlias y Redireccionamientos.

Sistemas Operativos Monousuario http://monopuesto.com | 4

Page 7: apache

Ejercicio 12 Cree un fichero/var/www/24/enero/2010/index.htm cuyocontenido sea una página web que salu-da al usuario. A continuación, creeun Alias de forma que el acceso a2http://192.168.1.222/datos muestre el con-tenido del /var/www/24/enero/2010/index.htm

1.9. Módulos

Apache se configura en una estructura modular.Puede consultar la lista de los módulos instalados en/etc/apache2/mods-available y los módulos activadosen /etc/apache2/mods-enabled .Para activar un módulo, utilice la siguiente sintaxis:# a2enmod nombre_modulo

Para desactivar un módulo, utilice la siguiente sin-taxis:# a2dismod nombre_modulo

1.9.1. Módulo userdir

Este módulo permite que los ficheros de los usuariossituados en ~/public_html se visualicen con el naveg-ador como http://ip_ordenador/ nombre_usuario.

1.9.2. Administración de Módulos con Web-

min

Para administrar los módulos de Apache con Webmin,seleccione las opciones Servidores->Servidor WebApache->Configure Apache modules. A continuación,active o desactive los módulos que desee.

Ejercicio 13 Active el módulo userdir.Cree un usuario manoloohara y una página~/home/manoloohara/public_html/index.htmly acceda a ella desde un navegador. ¿Qué per-misos mínimos debe tener aquesta página parapoder ser modificada por el usuario manolooharay accedida por Apache?

1.10. Hosts virtuales en una misma IP

Como las direcciones IP cuestan dinero, Apache per-mite tener varios dominios en una misma IP. Por ejem-plo, configuraremos Apache para que gestione los do-minios www.manoloohara.com y www.aitortilla.com. Supo-dremos que las páginas de los dominios estan, re-spectivamente, a /home/apachevirtual/manolooharay /home/apachevirtual/aitortilla.Suponga que la dirección IP del servidor es192.168.1.222, cambie esta dirección por la que ten-ga asignada a su servidor.

Para que el dominio funcione deberá relacionarlos dominios anteriores con la dirección IP192.168.1.222 configure un servidor DNS o bienedite en los clientes el fichero /etc/hosts en Linuxo c:\windows\system32\drivers\etc\hosts en Win-dows y añada la siguientes línea: 192.168.1.222

www.manoloohara.com www.aitortilla.com

Ejercicio 14 Compruebe con un pingque el cliente sabe resolver las direccioneswww.manoloohara.com y www.aitortilla.com.

1) Cree los directorios:

# mkdir -p /home/apachevirtual/manoloohara/htdocs

# mkdir /home/apachevirtual/manoloohara/logs

# mkdir /home/apachevirtual/manoloohara/cgi-bin

# echo "<html><body>Soy manoloohara</body></html>" \

>>/home/apachevirtual/manoloohara/htdocs/index.html

Ejercicio 15 Explique qué directorios debecrear para el dominio www.aitortilla.com. Expli-ca la función de cada directorio.

2) Cree el fichero /etc/apache2/sites-available/www.manoloohara.com

<VirtualHost *:80>ServerAdmin [email protected] manoloohara.comServerAlias www.manoloohara.comDocumentRoot /home/apachevirtual/manoloohara/htdocs/ErrorLog /home/apachevirtual/manoloohara/logs/error.logCustomLog /home/apachevirtual/manoloohara/logs/access.log combined

</VirtualHost>

Ejercicio 16 Explique qué contenidodebe tener el fichero /etc/apache2/sites-available/www.aitortilla.com. Explique lafunción de cada línea.

3) Habilite los dominios para gestionarlos con Apache:

# a2ensite www.manoloohara.com

# a2ensite www.aitortilla.com

Ejercicio 17 Explique el contenido del directo-rio /etc/apache2/sites-enabled

4) Reinicialize el servicio Apache

5) Con un navegador, abra www.manoloohara.com ywww.aitortilla.com.

1.10.1. Administración de hosts virtuales en

una misma IP con Webmin

En el siguiente ejemplo creará un nuevo host virtu-al de nombre www.zebbomax.com. Antes de crear el hostvirtual, cree la carpeta /home/apachevirtual/zebbomax/ht-

docs y una página web en /home/apachevirtual/zebbo-

max/htdocs/index.html. Compruebe que desde un clientepuede realizar un ping a la dirección www.zebbomax.com.

Ejercicio 18 Realice capturas de pantalladonde se observe la realización de las accionesdel párrafo anterior.

Ejecute Webmin y seleccione las opciones Servidores->Servidor Web Apache y la pestaña Create vir-

tual host. En ell campo Raíz para Documentos

introduzca el directorio creado anteriormente /home-

/apachevirtual/zebbomax/htdocs y en el campo Nombre

del Servidor introduzca el nombre www.zebbomax.com.Pulse el botón Crear ahora y reinicie el servicioApache.

5| Sistemas Operativos Monousuario http://monopuesto.com

Page 8: apache

Compruebe que en la pestaña Existing virtual hots

aparece como entrada www.zebbomax.com y que puedeacceder a la página del nuevo dominio virtual medi-ante un navegador.

1.11. Estadísticas: Awffull

Awffull permite generar estadísticas del acceso alservidor Apache a partir de los ficheros log. Insta-lación:# apt-get install awffull

1.11.1. Configuración

El fichero de configuración de Awffull es/etc/awffull/awffull.conf Para modificar el directo-rio donde se guardan los informes, edite:

OutputDir /var/www/awffull

Para las webs con mucho tráfico, Apache crea más deun fichero log al día. En este caso, debe modificar elparámetro:

Incremental yes

1.11.2. Ejecución

Webalizer es ejecutado cada día por el servicio cron.Para forzar la actualización de los datos manualmente,ejecute:# awffull

Para ver las estadísticas desde un navegador:

http://192.168.1.222/awffull

Ejercicio 19 Realice dos capturas de pantalladonde muestre el gráfico de las páginas que haservido Apache a cada hora del día y las páginasque más veces han sido visitadas.

1.12. Segurida básica: .htaccess y .ht-passwd

Los ficheros .htaccess permiten configurar determina-dos parámetros de Apache de manera que dicha con-figuración sólo afecte a un directorio y a sus subdirec-torios.Observe que el punto inicial de los ficheros .htaccessy .htpasswd los convierte en ocultos. Para visualizarsus propiedades, sitúese en la carpeta de los ficherosy ejecute:# ls -la

Los posibles parámetros que puede contener un fichero.htaccess vienen determinados por el parámetro Al-

lowOverride dentro de la directiva Directory.Aunque los ficheros .htaccess proporcionan una mayorflexibilidad a la hora de configurar Apache, tienen lossiguientes inconvenientes:

Pérdida de velocidad: Apache debe buscar en ca-da petición si existe el fichero .htaccess en eldirectorio del fichero o en sus directorios supe-riores.

Seguridad: si los usuarios pueden crear sus pro-pios ficheros .htaccess, se debe auditar qué mod-ificaciones se permiten y su uso.

1.12.1. Casos prácticos de uso de .htaccess

1.12.1.1. Restricción de acceso a car-

petas Para restringir el acceso al fichero/var/www/secreto/index.html de manera que sólopuedan acceder los usuarios usuario1 y usuario2

con contraseñas respectivas 1234 y 5678, edite elfichero /etc/apache2/sites-available/default y susti-tuya las líneas:

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

Por:

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride AuthConfig

Order allow,deny

allow from all

</Directory>

Para crear el fichero con los usuarios y las contraseñas,ejecute:

# htpasswd -c /etc/apache2/htpasswdsecreto \

usuario1

Sistemas Operativos Monousuario http://monopuesto.com | 6

Page 9: apache

Para añadir nuevos usuarios, repita la orden anteriorsin la opción -c.

Ejercicio 20 Repita la orden anterior con elusuario usuario2.

Cree el fichero /var/www/secreto/.htaccess con elsiguiente contenido:

AuthType Basic

AuthName "Necesita validarse para continuar"

AuthUserFile /etc/apache2/htpasswdsecreto

Reinicie el servicio y acceda con un navegador ahttp://192.168.1.22/secreto.

Ejercicio 21 Añada un tercer usuario usuario3que pueda validarse en la página del ejemplo

Ejercicio 22 ¿Porqué es muy mala idea crearel fichero /var/www/secreto/.htpasswd

1.13. Conexión segura y Certificados

HTTPS son las siglas de Hypertext Transfer Proto-col Secure o Protocolo Seguro de Transferencia deHipertexto. Este protocolo está ubicado en la capade Aplicación y utiliza el puerto 443. HTTPS crea uncanal cifrado entre el emisor y el receptor. Para crearuna conexión segura, el cliente debe recibir del emisorun fichero con un certificado válido, firmado por unaAutoridad de Certificación. La Autoridad de Certifi-cación es una entidad que tiene la confianza de losusuarios a la hora de firmar digitalmente certificadosdigitales que legitiman ante los usuarios la relación en-tre la identidad del servidor al que realizan una conex-ión y su clave pública.

Como los certificados de las Autoridades de Certifi-cación cuestan dinero, crearemos un certificado aut-ofirmado.

Cree el certificado con:

# make-ssl-cert generate-default-snakeoil \

--force-overwrite

Active el modulo HTTPS:

# a2enmod ssl

# a2ensite default-ssl

Reinicie el programa Apache.

Ejercicio 23 Compruebe que puede entrar me-diante https al servidor.

1.14. Protecció contra ataques defuerza bruta: fail2ban

A menudo, los servidores de Internet son atacados porprogramas que utilizan técnicas de fuerza bruta paraentrar como administrador. Los ataques de diccionarioson un tipo de ataque de fuerza bruta que pruebauna y otra vez contraseñas utilizando palabras que sepueden encontrar en un diccionario. Para eliminar es-tos tipos de ataques se utilizan diferentes programas,como el fail2ban.Instale el programa:# apt-get install fail2ban

Este servicio lee los ficheros log y si encuentra una IPque genera muchos errores, no le permite el acceso alservidor durante un cierto tiempo.Las opciones de configuración están en el fichero/etc/fail2ban/jail.conf . Las más importantes son:

ignoreip: Ignora los datos transmitidos o envi-ados por una IP

bantime: Segundos durante los cuales unusuario o programa queda expulsado.

maxretry: Número de faltas amarillas queequivalen a una tarjeta roja.

Para parar los ataques por SSH, la configuracion pordefecto es:

[ssh]

# Habilita

enabled = true

# Puerto

port = ssh

# Directorio del filtro

filter = sshd

# Fichero log

logpath = /var/log/auth.log

# Numero maximo de intentos fallidos permitidos

maxretry = 6

Ejercicio 24 Modifique fail2ban para que, de-spués de cuatro intentos erróneos de validaciónen una página con acceso mediante .htpasswd, elusuario no pueda conectarse al servidor durante6 horas.

7| Sistemas Operativos Monousuario http://monopuesto.com