You are on page 1of 9

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


Índice
1. Apache 1
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Funcionamiento del protocolo HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Instalación del servicio en el servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Módulos de processamiento MPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Elementos de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2. Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4. Ficheros de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.1. Fichero de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Parada y arrancada de Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5.1. Parada y arrancada de Apache desde la línea de órdenes . . . . . . . . . . . . . . . . . . 3
1.5.2. Parada y arrancada de Apache desde Webmin . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6. Monitorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6.1. Monitorización del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6.2. Monitorización de los puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7. Configuración de los clientes http . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8. Personalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8.1. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8.2. Parámetros de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8.2.1. Tiempo de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8.2.2. Tiempo de persistencia de la conexión . . . . . . . . . . . . . . . . . . . . . . . 4
1.8.3. Página inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8.4. Límite de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8.5. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8.5.1. Alias con Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.9. Módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.9.1. Módulo userdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.9.2. Administración de Módulos con Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.10. Hosts virtuales en una misma IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.10.1. Administración de hosts virtuales en una misma IP con Webmin . . . . . . . . . . . . . 5
1.11. Estadísticas: Awffull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.11.1. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.11.2. Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.12. Segurida básica: .htaccess y .htpasswd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.12.1. Casos prácticos de uso de .htaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.12.1.1. Restricción de acceso a carpetas . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.13. Conexión segura y Certificados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.14. Protecció contra ataques de fuerza bruta: fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . 7

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


Sistema informático

Apache
Servidor de páginas web

• CSS, siglas de Cascading Style Sheets o ho-

E l objetivo del tema consiste en insta-


lar y configurar el servidor de páginas web
jas de estilo en cascada es un lenguaje que
define la presentación de un documento.
Por ejemplo, con CSS se puede definir el
Apache y comprobar diferentes configuraciones tipo de letra y color del título de la página.
con clientes HTTP, llamados navegadores.
En cada petición de una URL pueden suceder dos ca-
sos:

1. Apache Si la petición hace referencia a una página web


estática, entonces Apache la envía al cliente tal
y como están almacenadas en el servidor, sin
1.1. Introducción
ningún cambio. Las páginas estáticas suelen ten-
HTTP, siglas de Hypertext Transfer Protocol o Pro- er la extensión .htm o .html
tocolo de Transferencia de Hipertexto en un protocolo Un ejemplo de página web estática es el sigu-
de Internet de la capa de aplicación que funciona sigu- iente:
iendo el esquema cliente-servidor.
Apache es un servidor de páginas web que utiliza <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
el protocolo HTTP/1.1, descrito en el documento "http://www.w3.org/TR/html4/strict.dtd">
rfc2616. Este servidor es el que actualmente tiene una <html lang="es">
<head>
mayor cuota de mercado. <title>Ejemplo</title>
</head>
<body>
1.1.1. Funcionamiento del protocolo HTTP <p>Hola</p>
</body>
Apache es un servicio que escucha peticiones en el </html>
puerto HTTP (puerto 80).
Los clientes piden al servidor ficheros codificado como
una dirección URL, es decir: Si la petición hace referencia a una página web
protocolo://dirección/directorio/fichero. dinámica, entonces Apache ejecuta el código de
Por ejemplo: http://www.monopuesto.com/index.html . la página y envía el código HTML resultante al
Los ficheros que puede enviar Apache son de dos tipos: cliente. Las páginas dinámicas suelen tener la
extensión .php, .aspx , .jsp, ...
Ficheros binarios de datos: imágenes, sonido,
Un ejemplo de página web dinámica es el sigu-
películas,... iente, que muestra la fecha actual:
Ficheros de texto: ficheros que contienen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
instrucciones en un lenguaje, generalmente, "http://www.w3.org/TR/html4/strict.dtd">
HTML, Javascript o CSS. <html lang="es">
<head>
<title>Ejemplo</title>
• HTML son las siglas de Hypertext Markup </head>
Language o Lenguage de Marcas de Hiper- <body>
texto. Estos ficheros, también llamados <p>
páginas web, son interpretados por el nave- <?php echo strftime("%d de %m del %Y");?>
</p>
gador y presentados según las etiquetas </body>
definidas en el fichero. Una característica </html>
de los ficheros HTML es que son hiper-
textuales, es decir, pueden enlazar a otros
En este capítulo supondremos que la dirección IP del
ficheros.
servidor Apache es 192.168.1.222 Las referencias a
• Javascript es un lenguaje que se utiliza dicha IP deberán sustituirse por la dirección IP de
para mejorar la interfaz de usuario, permi- su servidor. Por ejemplo, si la IP de su servidor es
tiendo, por ejemplo, el autocompletado en 192.168.0.111, deberá sustituir cualquier referencia a
las cajas de texto. 192.168.1.222 por 192.168.0.111
1| Sistemas Operativos Monousuario http://monopuesto.com
Ejercicio 1 Utilice la encuesta de
http://news.netcraft.como/archives/webserversurvey.html
para explicar la evolución de las cuotas de
mercado de los servidores HTTP durante los
dos últimos años.
Ejercicio 2 Comprueba que el servidor tiene
una 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 las Ejercicio 3 Envíe a su profesor/a una captura
peticiones que llegan al servidor Apache. de pantalla con las opciones principales de con-
Algunas peticiones pueden provocar problemas a figuración de Apache.
Apache. Por ejemplo, una petición puede consumir to-
da la memoria, de manera que otras peticiones no se Ejercicio 4 Identifica el módulo MPM más
podrán atender. Las peticiones que entran en bucles adecuado para:
infinitos también son fuente de problema y se deben
detectar y eliminar. Un servidor Apache con poca memoria
En la instalación de Apache, debe elegir entre los sigu- RAM y muchas peticiones.
ientes dos módulos MPM: Un servidor Apache de una tienda virtual
MPM Prefork: Cada petición a Apache genera que debe tratar las petiones de los clientes
un proceso independiente. Una petición prob- de manera que si una petición se cuelga,
lemática queda aislada del resto de peticiones, no afecte a otras peticiones.
por lo tanto, es muy estable. Consume mucha Ejercicio 5 Acceda con un navegador a la URL
memoria. http://192.168.1.222 y comprueba que Apache se
MPM Worker: Cada petición a Apache genera ha instalado correctamente y muestra una men-
un hilo. Un hilo es como un proceso, pero más saje como el siguiente:
ligero. Una petición problemática puede afectar It works!
a diferentes hilos de un proceso, siendo menos es- This is the default web page for this server.
table que MPM Prefork. Consume menos memo- The web server software is running but no con-
ria. tent has been added, yet.

En aqueste documento se instalará la versión MPM


prefork. Para instalar Apache, ejecute desde la conso- 1.3. Elementos de configuración
la como root:
1.3.1. Puertos
# apt-get install apache2
Apache se ejecutará como servicio cada vez que se Apache es un servicio que escucha peticiones en el
inicie el sistema operativo. puerto HTTP (puerto 80).

Para que Webmin detecte el servicio Apache, siga los


pasos de la sección ?? de la página ??. 1.3.2. Usuarios
Compruebe que en el menú de la columna izquierda,
aparece la opción Servidores->Servidor Web Apache
y selecciónela.

El servicio Apache empieza ejecutándose como el


usuario root, pero tan pronto como puede, para evi-
tar posibles problemas de seguridad, cambia su UID
efectivo por el de la usuario www-data y el grupo por
www-data .
Estos valores se pueden cambiar con las directivas
APACHE_RUN_USER y
APACHE_RUN_GROUP, respectivamente, del
fichero 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 la
opción Usuarios y grupos, averigua el nombre
Las opciones principales de configuración de Apache del usuario y del grupo que ejecutan el programa
serán las siguientes: Apache
Sistemas Operativos Monousuario http://monopuesto.com | 2
El resultado deberá ser parecido al siguiente (só-
lo se muestra la primera y la última columna):
USER COMMAND
root /usr/sbin/apache2 -k start
www-data /usr/sbin/apache2 -k start
www-data /usr/sbin/apache2 -k start
1.4. Ficheros de configuración www-data /usr/sbin/apache2 -k start
root grep apache2
Los fichero de configuración de Apache son ficheros de Como se observa, hay 4 procesos Apache, de los cuales,
texto que se localizan en /etc/apache2. Las líneas que uno pertenece al usuario root y los otros al usuario
empiezan por el símbolo # son ignoradas. Las otras www-data. El proceso que pertenece al root no sirve
líneas están formadas por directivas de configuración páginas web, sino que crea otros procesos Apache con-
seguidas de parámetros. forme se necesitan.
La necesidad de ejecutar un proceso Apache como
1.4.1. Fichero de actividades root viene dada porque los puertos hasta el 1024 sólo
pueden ser leídos por dicho usuario.
El fichero /var/log/apache2/access.log informa sobre
los accesos a las páginas. 1.6.2. Monitorización de los puertos
El fichero /var/log/apache2/error.log informa sobre
los errores producidos por el servicio. Para listar los puertos que utiliza Apache y qué direc-
ciones atiende, ejecute la orden:
Ejercicio 7 ¿Desde que direcciones IP se ha
# netstat -petuan|grep apache2
accedido al servidor Apache?¿Qué navegador y
El resultado de la anterior orden ha de ser parecido a:
sistema operativo ha utilizado el cliente para ac- Active Internet connections (servers and established)
ceder a Apache? Proto Local Addres Foreign Address State Program
tcp6 :::80 :::* LISTEN apache2
Ejercicio 8 Accede a una página inexistente Es decir, por defecto Apache utiliza el puerto 80 para
como, por ejemplo, http://192.168.1.222/no- atender las peticiones que le llegan desde cualquier
existe.htm y verifica que el acceso erróneo se ha dirección IP.
registrado.
1.7. Configuración de los clientes http
1.5. Parada y arrancada de Apache La mayoría de los sistemas operativos instalan, por
1.5.1. Parada y arrancada de Apache desde la defecto, clientes http denominados ’navegadores’.
línea de órdenes Es recomendable que el navegador cumpla los están-
dares web (Mozilla-Firefox, Chrome, ?) que sea seguro
El servicio Apache se ejecuta automáticamente cada y de fácil uso.
vez que se ejecuta el sistema operativo. Se recomienda huir de Internet Explorer por no
Cada vez que cambie algún fichero de configuración, cumplir las anteriores condiciones.
deberá reiniciar el servicio.
Ejercicio 9 Compara el resultado de los
Apache se puede parar manualmente con el orden
navegadores con el Acid Test disponible en
# service apache2 stop
http://www.webstandards.org/action/acid2/
Apache se inicia manualmente con la orden:
y http://www.webstandards.org/action/acid3/
# service apache2 start
y explica qué navegador cumple mejor los
La siguiente orden reinicia el servicio Apache: estándares.
# service apache2 restart
1.8. Personalización
1.5.2. Parada y arrancada de Apache desde
Webmin La configuración del servicio Apache viene dada por
los ficheros de configuración de /etc/apache2/ . Una
Ejecute Webmin y seleccione la opción Servidores- vez modificado el fichero, se debe reiniciar el servicio.
>Servidor Web Apache. En la parte superior de la
configuración aparecerán las opciones Aplicar Cam- 1.8.1. Puertos
bios y Parar Apache.
Apache es un programa que actúa como un servicio,
escuchando en el puerto 80. Este valor se asigna en
fichero /etc/apache2/ports.conf en la línea:
Listen 80

1.8.2. Parámetros de tiempo


1.6. Monitorización
1.6.1. Monitorización del proceso
Para comprobar que el servicio Apache está funcio-
nando, ejecute la orden: Los parámetros de tiempo están declarados en el
# ps aux|grep apache2 fichero /etc/apache2/apache2.conf .
3| Sistemas Operativos Monousuario http://monopuesto.com
1.8.2.1. Tiempo de acceso Por defecto, si una Si hay más de MaxSpareServers procesos Apache
petición a Apache no se puede servir en 300 segundos, sin trabajar, se matan algunos de estos procesos, has-
el cliente recibe un mensaje informándole que ha so- ta quedar sólo MinSpareServers.
brepasado el tiempo máximo de espera. La directiva Apache limita el número máximo de peti-
que controla el tiempo de acceso se llama Timeout. ciones que puede servir con la directiva Max-
En Webmin el parámetro Timeout está traducido co- clients. Esta directiva se puede modificar en el
moTiempo de espera para requerimientos. fichero/etc/apache2/apache2.conf .
En el programa Webmin, la opción MaxSpare-
1.8.2.2. Tiempo de persistencia de la conex- Servers está traducida en como Máximo número
ión Cada vez que un nuevo cliente solicita una pági- de procesos libres del servidor, la opción MinS-
na web, se establece una conexión que puede ser re- pareServers está traducida como Mínimo número
utilizada si el cliente solicita una nueva página web y de procesos libres del servidor y la opción Start-
no ha pasado un tiempo máximo determinado. Si una Servers está traducida como Procesos iniciales del
conexión es reutilizada, se aprovecha mejor la memo- servidor.
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 Webmin
este parámetro está traducido comoRequerimientos
múltiples por conexión.
El tiempo de espera entre las peticiones de un cliente
con una misma conexión es KeepAliveTimeout. En
Webmin el parámetro KeepAliveTimeout está tra-
ducido comoTiempo de espera para mantener
vivos. Ejercicio 11 Compruebe con Webmin los val-
ores de MinSpareServers, MinSpareServers
y de MaxSpareServers. Utilize las opciones
Servidores->Servidor Web Apache y en la pes-
taña Global configuration seleccione la opción
Límites y procesos.

1.8.5. Alias

Los Alias permiten, a los clientes de Apache,


acceder a los directorios del servidor con
Ejercicio 10 Ejecute Webmin. Utilize las op- un nombre más sencillo de recordar. Por
ciones Servidores->Servidor Web Apache y en ejemplo, para acceder al wordpress instalado
en /var/www/aplicaciones/lamp/wordpress-v3.1 ,
la pestaña Global configuration seleccione la hace falta escribir desde el navegador
opción Redes y direcciones. Averigüe los val- http://192.168.1.222/aplicaciones/lamp/wordpress-v3.1 .
ores por defecto del puerto que escucha Apache Para crear un Alias más amigable como, por
y los parámetros Keep-alive timeout, Request ejemplo, http://192.168.1.222/blog, debe añadir a
/etc/apache2/sites-enabled/000-default antes de:
timeout y Multiple requests per conection.
Alias /doc/ "/usr/share/doc/"

1.8.3. Página inicial La línea:


La página inicial que sirve Apache viene da- Alias /blog "/var/www/aplicaciones/lamp/wordpress-v3.1"
da por la directiva DocumentRoot, definida en
/etc/apache2/sites-available/default. Reinicie el servicio Apache.

1.8.4. Límite de procesos 1.8.5.1. Alias con Webmin Para crear un Alias
con Webmin, seleccione las opciones Servidores-
>Servidor Web Apache->Existing virtual hosts. A
continuación seleccione el servidor en el cual desea
crear el Alias. En este ejemplo, lo crearemos en el
Cuando se inicia Apache, se crean 5 procesos hijos servidor Servidor por Defecto. Seleccione el icono
que gestionan las peticiones. Si hay más de 5 peti- Alias y Redireccionamientos.
ciones, Apache aumenta el número de hijos. La direc-
tiva que controla el número de servidores iniciales es
StartServers. Esta directiva se puede modificar en
el fichero /etc/apache2/apache2.conf
Si se producen más conexiones simultáneas, el pro-
ceso Apache del usuario root creará tantos procesos
Apache como conexiones, hasta un cierto límite.
Sistemas Operativos Monousuario http://monopuesto.com | 4
Ejercicio 12 Cree un fichero Para que el dominio funcione deberá relacionar
/var/www/24/enero/2010/index.htm cuyo los dominios anteriores con la dirección IP
contenido sea una página web que salu- 192.168.1.222 configure un servidor DNS o bien
da al usuario. A continuación, cree edite en los clientes el fichero /etc/hosts en Linux
un Alias de forma que el acceso a o c:\windows\system32\drivers\etc\hosts en Win-
2http://192.168.1.222/datos muestre el con- dows y añada la siguientes línea: 192.168.1.222
tenido del /var/www/24/enero/2010/index.htm www.manoloohara.com www.aitortilla.com
Ejercicio 14 Compruebe con un ping
1.9. Módulos que el cliente sabe resolver las direcciones
www.manoloohara.com y www.aitortilla.com.
1) Cree los directorios:

# mkdir -p /home/apachevirtual/manoloohara/htdocs
Apache se configura en una estructura modular. # mkdir /home/apachevirtual/manoloohara/logs
Puede consultar la lista de los módulos instalados en # mkdir /home/apachevirtual/manoloohara/cgi-bin
/etc/apache2/mods-available y los módulos activados # echo "<html><body>Soy manoloohara</body></html>" \
>>/home/apachevirtual/manoloohara/htdocs/index.html
en /etc/apache2/mods-enabled .
Para activar un módulo, utilice la siguiente sintaxis:
# a2enmod nombre_modulo Ejercicio 15 Explique qué directorios debe
Para desactivar un módulo, utilice la siguiente sin- crear para el dominio www.aitortilla.com. Expli-
taxis: ca la función de cada directorio.
# a2dismod nombre_modulo 2) Cree el fichero /etc/apache2/sites-available/www.manoloohara.
<VirtualHost *:80>
1.9.1. Módulo userdir ServerAdmin admin@manoloohara.com
ServerName manoloohara.com
Este módulo permite que los ficheros de los usuarios ServerAlias www.manoloohara.com
DocumentRoot /home/apachevirtual/manoloohara/htdocs/
situados en ~/public_html se visualicen con el naveg- ErrorLog /home/apachevirtual/manoloohara/logs/error.log
ador como http://ip_ordenador/ nombre_usuario. CustomLog /home/apachevirtual/manoloohara/logs/access.log combined
</VirtualHost>

1.9.2. Administración de Módulos con Web- Ejercicio 16 Explique qué contenido


min debe tener el fichero /etc/apache2/sites-
Para administrar los módulos de Apache con Webmin, available/www.aitortilla.com. Explique la
seleccione las opciones Servidores->Servidor Web función de cada línea.
Apache->Configure Apache modules. A continuación, 3) Habilite los dominios para gestionarlos con Apache:
active o desactive los módulos que desee.
# 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 y
Ejercicio 13 Active el módulo userdir. www.aitortilla.com .

Cree un usuario manoloohara y una página


~/home/manoloohara/public_html/index.html 1.10.1. Administración de hosts virtuales en
y acceda a ella desde un navegador. ¿Qué per- una misma IP con Webmin
misos mínimos debe tener aquesta página para
En el siguiente ejemplo creará un nuevo host virtu-
poder ser modificada por el usuario manoloohara
y accedida por Apache? al de nombre www.zebbomax.com . Antes de crear el host
virtual, cree la carpeta /home/apachevirtual/zebbomax/ht-
1.10. Hosts virtuales en una misma IP docs y una página web en /home/apachevirtual/zebbo-
max/htdocs/index.html . Compruebe que desde un cliente
puede realizar un ping a la dirección www.zebbomax.com .
Ejercicio 18 Realice capturas de pantalla
Como las direcciones IP cuestan dinero, Apache per- donde se observe la realización de las acciones
mite tener varios dominios en una misma IP. Por ejem- del párrafo anterior.
plo, configuraremos Apache para que gestione los do- Ejecute Webmin y seleccione las opciones Servidores-
minios www.manoloohara.com y www.aitortilla.com . Supo- >Servidor Web Apache y la pestaña Create vir-
dremos que las páginas de los dominios estan, re- tual host. En ell campo Raíz para Documentos
spectivamente, a /home/apachevirtual/manoloohara introduzca el directorio creado anteriormente /home-
y /home/apachevirtual/aitortilla. /apachevirtual/zebbomax/htdocs y en el campo Nombre
Suponga que la dirección IP del servidor es del Servidor introduzca el nombre www.zebbomax.com .
192.168.1.222, cambie esta dirección por la que ten- Pulse el botón Crear ahora y reinicie el servicio
ga asignada a su servidor. Apache.
5| Sistemas Operativos Monousuario http://monopuesto.com
Ejercicio 19 Realice dos capturas de pantalla
donde muestre el gráfico de las páginas que ha
servido Apache a cada hora del día y las páginas
que 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 .htaccess
y .htpasswd los convierte en ocultos. Para visualizar
sus propiedades, sitúese en la carpeta de los ficheros
Compruebe que en la pestaña Existing virtual hots y ejecute:
aparece como entrada www.zebbomax.com y que puede # ls -la
acceder a la página del nuevo dominio virtual medi- Los posibles parámetros que puede contener un fichero
ante un navegador. .htaccess vienen determinados por el parámetro Al-
lowOverride dentro de la directiva Directory.
Aunque los ficheros .htaccess proporcionan una mayor
flexibilidad a la hora de configurar Apache, tienen los
siguientes inconvenientes:

Pérdida de velocidad: Apache debe buscar en ca-


1.11. Estadísticas: Awffull da petición si existe el fichero .htaccess en el
Awffull permite generar estadísticas del acceso al directorio del fichero o en sus directorios supe-
servidor Apache a partir de los ficheros log. Insta- riores.
lación:
# apt-get install awffull Seguridad: si los usuarios pueden crear sus pro-
pios ficheros .htaccess, se debe auditar qué mod-
ificaciones se permiten y su uso.
1.11.1. Configuración
El fichero de configuración de Awffull es
1.12.1. Casos prácticos de uso de .htaccess
/etc/awffull/awffull.conf Para modificar el directo-
rio donde se guardan los informes, edite: 1.12.1.1. Restricción de acceso a car-
petas Para restringir el acceso al fichero
OutputDir /var/www/awffull /var/www/secreto/index.html de manera que sólo
puedan acceder los usuarios usuario1 y usuario2
Para las webs con mucho tráfico, Apache crea más de
con contraseñas respectivas 1234 y 5678, edite el
un fichero log al día. En este caso, debe modificar el
fichero /etc/apache2/sites-available/default y susti-
parámetro:
tuya las líneas:
Incremental yes
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
1.11.2. Ejecución
AllowOverride None
Webalizer es ejecutado cada día por el servicio cron. Order allow,deny
Para forzar la actualización de los datos manualmente, allow from all
ejecute: </Directory>
# awffull
Para ver las estadísticas desde un navegador: Por:

http://192.168.1.222/awffull <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
Para añadir nuevos usuarios, repita la orden anterior 1.14. Protecció contra ataques de
sin la opción -c. fuerza bruta: fail2ban
Ejercicio 20 Repita la orden anterior con el A menudo, los servidores de Internet son atacados por
usuario usuario2. programas que utilizan técnicas de fuerza bruta para
Cree el fichero /var/www/secreto/.htaccess con elentrar como administrador. Los ataques de diccionario
siguiente contenido: son un tipo de ataque de fuerza bruta que prueba
una y otra vez contraseñas utilizando palabras que se
AuthType Basic
pueden encontrar en un diccionario. Para eliminar es-
AuthName "Necesita validarse para continuar"
tos tipos de ataques se utilizan diferentes programas,
AuthUserFile /etc/apache2/htpasswdsecreto
como el fail2ban.
Reinicie el servicio y acceda con un navegador a Instale el programa:
http://192.168.1.22/secreto.
# apt-get install fail2ban
Este servicio lee los ficheros log y si encuentra una IP
que genera muchos errores, no le permite el acceso al
servidor 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 un


usuario o programa queda expulsado.

maxretry: Número de faltas amarillas que


equivalen a una tarjeta roja.

Para parar los ataques por SSH, la configuracion por


Ejercicio 21 Añada un tercer usuario usuario3 defecto es:
que pueda validarse en la página del ejemplo
[ssh]
Ejercicio 22 ¿Porqué es muy mala idea crear # Habilita
el fichero /var/www/secreto/.htpasswd enabled = true
# Puerto
port = ssh
1.13. Conexión segura y Certificados # Directorio del filtro
filter = sshd
HTTPS son las siglas de Hypertext Transfer Proto-
# Fichero log
col Secure o Protocolo Seguro de Transferencia de
logpath = /var/log/auth.log
Hipertexto. Este protocolo está ubicado en la capa
# Numero maximo de intentos fallidos permitidos
de Aplicación y utiliza el puerto 443. HTTPS crea un
maxretry = 6
canal cifrado entre el emisor y el receptor. Para crear
una conexión segura, el cliente debe recibir del emisor
un fichero con un certificado válido, firmado por una Ejercicio 24 Modifique fail2ban para que, de-
Autoridad de Certificación. La Autoridad de Certifi- spués de cuatro intentos erróneos de validación
cación es una entidad que tiene la confianza de los en una página con acceso mediante .htpasswd, el
usuarios a la hora de firmar digitalmente certificados usuario no pueda conectarse al servidor durante
digitales que legitiman ante los usuarios la relación en- 6 horas.
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.
7| Sistemas Operativos Monousuario http://monopuesto.com

You might also like