Instalación Inicial

Una vez instalado el Ubuntu Server y hechas todas las operaciones para dejar dicha instalación en un estado seguro que han sido enumeradas en la sección anterior, podemos proceder a la instalación de Apache. Esta instalación es sencilla, al ser este servidor un paquete instalable directamente mediante apt-get. La instalación además necesita permisos de administrador para completarse. Los pasos a seguir son:

  • Ejecutar su para conseguir permisos de root del sistema o bien ejecutar la siguiente orden anteponiendo el comando sudo, lo cual tiene la misma función.
  • En ambos casos el sistema nos pedirá la clave del usuario actual para continuar con la operación. Esto solo funcionará si el usuario desde el que se ejecuta la orden pertenece al grupo sudoers de Ubuntu (más información: https://help.ubuntu.com/community/Sudoers). El usuario que se crea en la instalación de Ubuntu (que en este caso hemos llamado mainuser) cumple con este requisito. En caso contrario se recomienda consultar el enlace anterior.
  • Ejecutar apt-get install apache2 y esperar a que finalice la instalación, confirmando la misma cuando el sistema pregunte:

Instalando Apache

Instalando Apache (2)
     
Instalacion completada
  • Tras la instalación de Apache podemos listar los módulos compilados inicialmente con el servidor gracias al comando apache2 –l. Estos módulos son los que están inicialmente disponibles con una instalación por defecto del servidor y son la funcionalidad básica que ofrece. Hablaremos de los módulos básicos instalados con Apache posteriormente.

Módulos compilados con Apache

NOTA: Si al usar algunas opciones de Apache aparece el error “bad user name” se pueden hacer dos cosas:

  • Asegurarse de haber ejecutado la orden con sudo (permisos de root)
  • Modificar apache2.conf para que se puedan leerlas variables de entorno de usuario y grupo que por alguna razón no se están leyendo. Para ello, añadir a este archivo las siguientes líneas:

User www-data
Group www-data

Una vez instalado Apache, es primordial mantenerlo actualizado.— Esto en Ubuntu es sencillo, gracias a la gestión de actualizaciones automática que incorpora que también incluye a Apache entre las mismas.

A la hora de hacer una nueva instalación de Apache, es conveniente probar su funcionamiento correcto antes de continuar haciendo más operaciones. Aunque en nuestra infraestructura de pruebas tenemos un cliente Windows XP que podemos usar para estos fines sin problema, hay otras formas de hacerlo. Los software de virtualización más usados actualmente permiten añadir a las máquinas virtuales tarjetas de red cuyo tipo de red sea "Host-Only". Esto establece una red privada entre host y máquinas virtuales que se puede usar para comunicar ambas.

En este caso nuestra máquina servidora de pruebas de Apache tiene una de esas tarjetas añadida. Para poder usar esta posibilidad debemos consultar la IP que ha asignado el software de virtualización a nuestro host en ese interfaz de red en el panel de control (suponemos que el host es Windows). En el ejemplo que estamos viendo se asigna una IP estática, la 192.168.56.1/255.255.255.0. Posteriormente procederemos a modificar la IP del interfaz correspondiente en la máquina virtual Ubuntu a una que sea compatible con la anterior y que permita establecer la comunicación entre ambas (en el caso que nos ocupa 192.168.56.2/255.255.255.0). Esto se puede hacer mediante el comando sudo nano /etc/network/interfaces y siguiendo las indicaciones para configurar una IP estática que podemos encontrar en la siguiente dirección: http://www.ubuntugeek.com/ubuntu-networking-configuration-using-command-line.html

Red host-only entre máquinas

Tras dar todos estos pasos preliminares simplemente debemos probar la instalación conectándonos al servidor web con un navegador cualquiera:

Test de Apache

Finalmente, mencionar que la instalación de Apache crea un usuario y un grupo llamado www-data, como se mostró en la nota anterior. Esta es la cuenta sobre la que Apache se ejecuta por defecto y que tiene una serie de privilegios limitados, de manera que comprometer la seguridad de Apache sea menos crítico que en el caso de que Apache se ejecutase como root. En este último caso, el atacante que comprometa el sistema tendría privilegios para hacer prácticamente lo que desease, con el peligro que conlleva.

El comando ps auwwfx | grep apache permite ver precisamente ese usuario, tal y como se muestra en la siguiente imagen:

Comprobación de la existencia del usuario www-data

Una vez hecha la instalación, se van a sugerir una serie de cambios respecto a la configuración inicial de Apache para que este sea más seguro. Como se ha dicho anteriormente, la configuración de Apache puede residir en múltiples ficheros. Estos son los más importantes:

  • /etc/apache2/apache2.conf: La configuración central de Apache. Es el lugar típico donde colocar configuraciones que afecten a todo el servidor y sus webs.
  • —/etc/apache2/mods-enabled/mime.conf: Tipos MIME soportados por Apache
  • —/etc/apache2/mods-enabled/: Este directorio contiene todos los mods activos en un momento dado en una instalación de Apache, es decir, las funcionalidades soportadas por dicho servidor en un momento concreto. Tradicionalmente gran parte de los módulos que se encuentran en este directorio tienen dos archivos asociados: <nombre del módulo>.load (que es el módulo en sí) <nombre del módulo>.conf (la configuración particular de las opciones de dicho módulo).
  • —/etc/apache2/mods-available/: contiene todos los mods disponibles (no necesariamente activos, sino todos los que están instalados independientemente de que estén o no en funcionamiento).
  • —/etc/apache2/sites-enabled/: Contiene los distintos hosts virtuales (es decir, los distintos sitios web) habilitados sobre un servidor Apache concreto.
    • Debería contener la configuración personalizada para cada posible host que creemos, cada una en un fichero independiente.
    • El fichero 000-default que reside dentro de este directorio contiene la configuración del sitio web por defecto de Apache.
  • /var/log/apache2/: Directorio donde están todos los logs de Apache.
  • —/var/www/: Directorio por defecto donde se cuelga el contenido de los sitios web en sí.

Una vez presentado un mapa detallado de dónde está cada cosa en una instalación de Apache, podemos proceder a sugerir la serie de cambios en su configuración por defecto que habíamos mencionado. A la hora de hablar de configuración, debemos tener en cuenta que un cambio en la misma puede aplicarse a todo el servidor, una web o webs concretas del mismo o bien a un directorio concreto de una web, según las opciones que se usen agrupadas dentro de directivas Directory. En concreto debemos tener en cuenta los siguientes criterios:
  • Directory /: Con esta directiva aplicaremos una configuración concreta al directorio raíz del servidor, que se propagará a todos los que dependan de él.
  • Directory /websdepepe: Esta directiva aplicará una serie de opciones sobre todos los directorios que dependan del directorio websdepepe.
  • Ficheros .htaccess: Estos ficheros establecen una determinada configuración en el directorio donde están situados, así como en todos los subdirectorios del mismo.

La política seguida por Apache es que prevalece la configuración que sea más específica en caso de conflicto, de manera que si tenemos una determinada configuración establecida para / y otra distinta para /webs, en el directorio webs prevalecerá precisamente la que tiene definida /webs respecto a / en caso de conflictos, pudiéndose decir lo mismo de los ficheros .htaccess. En otras palabras, una configuración concreta se aplica a todos los subelementos del elemento sobre el que se configura (si se tiene una configuración para un directorio, también se aplica a todos sus subdirectorios), salvo que haya algún subelemento que tenga una configuración específica asignada que establezca otra cosa. Esto último es cierto siempre y cuando no haya directivas AllowOverride que impidan sobrescribir determinadas opciones de configuración a los subelementos de uno dado. Todo este tema será tratado en detalle posteriormente.

Toda la información posible sobre los distintos parámetros y sus opciones podemos encontrarla en: http://httpd.apache.org/docs/2.2/mod/core.html
Última modificación: sábado, 31 de julio de 2010, 01:03