Vamos a ver diferentes casos y para eso, vamos a simular la siguiente red con el Virtual Box.
Lo primero que hacemos es configurar otra interfaz en la
máquina virtual. La ponemos en solo anfitrión y configuramos
la dirección de la nueva interfaz.
Lo
primero que hacemos es crear el nuevo sitio desde el archivo /var/www/html/moodle y dentro de este index.html
Lo
siguiente es habilitar el servicio ssl para hacerlo de forma segura, para ello
lo que ponemos es a2enmod ssl
Y
restablecemos el servicio.
Lo siguiente es irnos a
/etc/apache2/sites-availables
y dentro de default-ssl.conf
modificar la dirección
y los errores.
Poner
activo el servicio con a2ensite default-ssl.conf.
Y
restablecemos el servicio.
Lo
comprobamos en el navegador poniendo https:// 192.168.128.209 (dirección que tengo en mi caso).
Vamos
a crear dentro de Moodle el archivo img y dentro un archivo oculto .htaccess
con las directivas que queramos, que en este caso la que ponemos es la de
Options
–indexes para que
quien entre en el moodle no pueda acceder a toda la información.
Para
ver el listado de estos archivos ocultos se hace con ls -a
Ahora
hay que modificar el archivo default-ssl.conf
Restablecemos
el servicio.
Ahora vamos a ponerlo seguro cambiando la directiva Options –Indexes
Configurar apache2 para que pueda cachear y
comprimir.
Configuración del cacheado.
Vamos a realizar la configuración del cacheado
para un sitio ya creado.
Tenemos tres módulos que son.
- Mod_file_cache que es
el menos flexible de los tres. Sirve para cachear ficheros concretos en disco o
memoria, pero si modificamos alguno de dichos ficheros sólo podremos conseguir
que Apache sirva la versión actualizada con un reinicio del gestor.
- Mod_mem_cache nos
permite cachear los ficheros de memoria. Sin embargo, lo que teóricamente
podría suponer una gran mejora de rendimiento del servidor, puede quedarse en
mucho menos por dos motivos In-Memory
Caching.
- Mod_disk_cache va
almacenando en un directorio los documentos que se van solicitando, así como
sus cabeceras. Si el mod_deflate está activo y hay unos clientes que aceptan
compresión y otros que no, se cacheará el documento comprimido y sin comprimir.
Por supuesto, no debemos olvidar que la caché del sistema operativo está
actuando, así que estos ficheros de caché, si hay memoria suficiente, también
serán cacheados en memoria por el kernel.
Vamos a
utilizar Disk_cache que es el más
eficiente. Para habilitarlo hacemos lo siguiente:
Nos
vamos a /etc/apache2/mods-available y
habilitamos el módulo cache_disk con
a2enmod cache-disk.
Nos vamos a cache_disk.conf y descomentamos la línea Cache Enable disk.
Nos dirigimos ahora a /etc/apache2/sites-available/sitio1.conf
y añadimos la misma línea. CacheEnable
disk /
Por
último reiniciamos el servidor apache.
La
carpeta donde se almacena el contenido por defecto es:
/var/cache/apache2/mod_cache_disk
Configuración para comprimir.
Vamos
a realizar la configuración para un sitio, para que apache comprima el
contenido de una página web.
Vamos
a habilitar el módulo correspondiente, nos vamos dentro de /etc/apache2/mods-available/ y el
módulo que necesitamos es el deflate.
Así que lo habilitamos con a2enmod deflate
Ahora
nos vamos al fichero de configuración deflate.conf
para comprobar que están todas las líneas y si no añadirlas.
Y
una vez configurado, reiniciamos el servicio apache.
Configura el sitio1.es
para que contenga un directorio "privado" al que sólo puedan acceder
usuarios autorizados. Debes usar el tipo de autenticación básica, realizarlo
usando el archivo htaccess para configurar las directivas de seguridad y crear
un archivo de usuarios/contraseñas. Indica cómo se realizaría utilizando el
tipo de autenticación "digest".
Autenticación básica.
Lo
primero que hay que hacer es añadir una directiva al fichero de configuración
del sitio1 que se encuentra en /etc/apache2/sites_availables
Y
le añadimos:
<directory
/var/www/html/sitio1>
AllowOverride AuthConfig
</directory>
Especifica
que las directivas, en su caso, puede ser puesto en archivos de configuración
por directorio.
Si no lo tenemos instalado, hay que instalar apache2-utils para
poder utilizar la herramienta htpasswd.
Utilizando htpasswd creo el usuario y las contraseñas,
para ello ponemos:
htpasswd –c
/var/www/usuarios.apache usuario
donde /var/www/usuarios.apache
es la ruta, usuario.apache es el
fichero donde lo creo y usuario es
el usuario que se crea. Te pide también que introduzcas la contraseña y que la
repitas.
Si quiero crear otro usuario le quito el –c
Y ahora hay que configurarlo y para ello nos vamos
donde se encuentra el sitio1
/var/www/html/sitio1 y creamos un .htaccess
Reiniciamos
el servicio.
Comprobamos con el navegador que al poner www.sitio1.es
nos pide las credenciales.
Creación
de otro usuario.
En el archivo de configuración, se pone el nuevo
usuario.
Para evitar tener que cambiar el archivo cada vez que
metamos un usuario nuevo, vamos a crear un grupo que los contenga a todos.
Para ello habilitamos el módulo authz_groupfile.load
con:
a2enmod
authz_groupfile.load y restablecemos el servicio.
Lo siguiente es que en la ruta /var/www al igual que creamos antes
usuarios.apache, creamos ahora con nano grupos.apache.
Y dentro ponemos el nombre del grupo y los
componentes.
Y modifico el archivo de configuración.
De forma que si yo creo un nuevo usuario que no se
encuentra en el grupo, e intento entrar, no me dejara.
Digest.
Configura el sitio1.es
para que contenga un directorio "privado" al que sólo puedan acceder
usuarios autorizados. Cómo se realizaría utilizando el tipo de autenticación
"digest".
Creamos
el directorio privado.
Habilitamos
el módulo
auth_digest.
Reiniciamos
apache2.
Para
usar la autentificación digest hay que crear un fichero accesible por Apache en
el que se guardarán los usuarios y sus contraseñas asociados a un dominio.
Para
crear este fichero se utilizará el comando htdigest.
htdigest –c
/etc/apache2/digest privado usuario1
Para
crear el usuario 2 no hace falta poner –c.
Editamos
el fichero de configuración /etc/apache2/sites-available/sitio1 y permitimos
el acceso al directorio /var/www/privado a los usuarios usuario1 y usuario2.
Para
eso lo que hacemos es introducir una nueva directiva.
Añade estadísticas a cada uno de los sitios con “awstats” y con
“Webalizer”.
Awstats.
Lo
primero que hacemos es instalar el awstats con apt-get install awstats.
Configuración de awstats y
funcionamiento.
El
archivo de configuración de awstats es /etc/awstats/awstats.conf. Hacemos una copia de
este en /etc/awstats/sitio1.awstats.conf.
Es
importante comprobar que se tiene activado el módulo cgid ya que es necesario
para el funcionamiento de Awstats.
Y se restablece el servicio.
Nos
vamos al archivo de configuración /etc/awstats/sitio1.awstats.conf y se hacen las modificaciones correspondientes.
Hay
que indicar donde se encuentra el log de Apache2, para ello modificamos la
siguiente directiva: LogFile=”/var/log/apache2/sitio1-access.log”
Como
en un mismo host pueden "cohabitar" distintos dominios, SiteDomain es
la directiva que indica a cual de esos dominios nos estamos refiriendo. En caso
de tener varios dominios en un mismo host (virtual host) es recomendable
generar logs independientes, es decir, uno para cada dominio. En mi caso:
Nos
falta configurar en el apache otra cosa, nos vamos a /etc/apache2/conf-available y
creamos un nuevo archivo awstats.conf con el siguiente contenido.
Alias
/awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon
"/usr/share/awstats/icon/"
Alias /awstatscss
"/usr/share/doc/awstats/examples/css"
ScriptAlias /awstats/
/usr/lib/cgi-bin/
Options
+ExecCGI -MultiViews +SymLinksIfOwnerMatch
Una
vez llegado a este punto, deberíamos de ser capaces de visualizar la página web
por medio del enlace ip/cgi-bin/awstats.pl.
Las
estadísticas están vacías. Eso es porque el archivo no lee los datos de los
logs directamente sino que genera un archivo de texto y muestra los datos a
partir de dicho texto. Los archivos de texto generados se encuentran en:
/var/lib/awstats
Para
generar estos archivos por primera vez o actualizarlos manualmente, ejecutamos el
archivo awstats.pl con los siguientes parámetros: /usr/lib/cgi-bin/awstats.pl -config=sitio1 –update.
Para
hacer esto automáticamente cuando se instala awstats se crea un tarea cron en /etc/cron.d/awstats. Esta tarea hay que
modificarla para indicar la ruta correcta de los log de Apache:
0,10,20,30,40,50 * * * * www-data [ -x
/usr/lib/cgi-bin/awstats.pl -a -
f /etc/awstats/awstats.conf -a -
r /var/log/apache2/access.log ] &&
/usr/lib/cgi-bin/awstats.pl -
config=awstats -update >/dev/null
Es
decir cada 10 minutos se va actualizar la estadística utilizando el log de
apache y el fichero de configuración de awstats.
Webalizer.
The
Webalizer es una herramienta de análisis de servidores rápida, fiable y fácil
de usar. Genera informes con información detallada sobre todos los movimientos que
se producen en un servidor web.
Estos
informes están en formato HTML, por lo que se pueden visualizar con cualquier
navegador web, y son sencillos de configurar y totalmente personalizables.
Lo
primero que hacemos es instalarlo. apt-get install webalizer.
Configuración.
El fichero de
configuración de webalizer es /etc/webalizer/webalizer.conf, veamos los cambios
que hay que realizar para poner en marcha nuestra estadística:
Fichero donde
apache está guardando sus LOGS.
LogFile /var/log/apache2/access.log
Directorio donde
se van a generar los ficheros html que muestran la estadística
OutputDir /var/www/webalizer
Indicar el
nombre de dominio.
Para generar las estadísticas sólo es necesario
ejecutar el comando:
Webalizer
Para ver las estadísticas sólo hay que indicar como
dirección URL:
Para automatizar esta tarea, podemos crear una tarea
crontab que ejecute el comando
periodísticamente cada cierto tiempo, para ello editamos
el crontab del root con la instrucción crontab
-e y añadimos la siguiente línea:
0,10,20,30,40,50
* * * * webalizer > /dev/null
Lo que hemos
explicado hasta ahora es la configuración de webalizer para un sólo dominio. Si
tenemos más de uno, vamos a ver como tener una estadística para cada uno.
Lo primero que
hay que hacer es guardar en fichero de logs distintos cada uno de los accesos a
los distintos sitios virtuales, para ello hay que modificar la configuración de
los sitios virtuales y añadir una nueva directiva. Por ejemplo para sitio1.es
habría que añadir la siguiente línea:
CustomLog /var/log/apache/pagina1-access.log common
Se cambia
también en el sitio2 y después hay que reiniciar el servicio.
A continuación
vamos a crear un directorio donde vamos a guardar los ficheros de configuración
de webalizer para cada uno de los dominios:
mkdir
/var/www/estadistica/
Del mismo modo
creamos los directorios donde vamos aguardar los ficheros html generados que
muestran las estadísticas:
mkdir
/var/www/sitio1/webalizer
mkdir
/var/www/sitio2/webalizer
A continuación
copiamos el fichero de configuración de webalizer en el directorio que hemos
creado anteriormente pero con nombre distintos para cada uno de los dominios:
cp
/etc/webalizer.conf /var/www/estadistica/sitio1.conf
cp
/etc/webalizer.conf /var/www/estadistica/sitio2.conf
Dentro de cada uno de ellos se deben hacer los
siguientes cambios:
LogFile
/var/log/apache2/sitio1-access.log
OutputDir
/var/www/sitio1/webalizer
HostName
www.sitio1.es