Tema 5: Instalación de Apache 2.X sobre Linux (Ubuntu)
Completion requirements
Tema 5: Instalación de Apache 2.X sobre Linux (Ubuntu)
Al igual que se mencionó anteriormente para IIS, la seguridad de Apache empieza por realizar una instalación de SSOO segura previamente. De nada sirve hacer una configuración segura de Apache sin asegurar antes todo su entorno. El operativo, la red y cualquier cosa con la que interaccione Apache también debe ser protegida, siguiendo para ello los procedimientos más adecuados en función del sistema operativo sobre el que se esté ejecutando.
En el caso de que se instale Apache sobre Windows puede servirnos como guía lo dicho anteriormente acerca de este tema. En caso de que lo hagamos sobre Linux, tenemos que asegurarnos de que la configuración de los siguientes aspectos es adecuada a nuestras necesidades y segura:
- Eliminar todos los paquetes innecesarios para las funciones del servidor, instalando sólo lo mínimo imprescindible para que cumpla con lo que se espera del mismo y reduciendo la superficie de ataque.
- Aplicar todos los parches disponibles periódicamente (apt-get update, apt-get upgrade). Si el servidor tiene interfaz gráfico normalmente existe un programa que avisa de la existencia de actualizaciones importantes.

- Detectar y gestionar adecuadamente los puertos abiertos, cerrando aquellos que no sean necesarios. Herramientas como nmap permiten averiguar esta información.
- Quitar todos los servicios que se ejecutan en el arranque del SSOO que no sean estrictamente necesarios. Para ello se recomienda revisar los scripts de inicio y ficheros que gestionen el arranque.
- Restringir el acceso al sistema por parte de otras redes y servidores.
- Usar SSH para acceder al sistema vía consola y otros medios seguros para el acceso gráfico.
- Si se usan, asegurarse de que los servicios postfix, sendmail y nfs tienen una configuración segura.
- Configurar parámetros de seguridad que ofrezca el SSOO y el Kernel de acuerdo a nuestras necesidades.
- Asegurarse de que los permisos y los propietarios de los archivos son los adecuados y desarrollar una política que permita saber este hecho en cualquier momento, para evitar errores al respecto durante el servicio del sistema.
- Chequear las cuentas de usuario en busca de cuentas anónimas, no usadas, no esperadas o que violen alguna política de uso del sistema.
- Habilitar la expiración de claves pasado un tiempo para renovarlas frecuentemente y forzar a que éstas sean seguras (el usuario al cambiarla tendrá que darles un mínimo de complejidad), forzando además a que no se repitan a la hora de cambiarlas (lista de las últimas N claves usadas).
- Bloquear o suspender temporalmente cuentas de usuario cuando hay demasiados intentos de login fallidos, para evitar el efecto de ataques de fuerza bruta.
- Restringir el acceso directo via login para cuentas compartidas o del sistema.
- Restringir el uso de los comandos su y sudo a determinadas cuentas de usuario autorizadas para ello (sudoers) y prohibirlo al resto, aunque conozcan la clave correcta.
- Tomar medidas contra ataques DoS (balanceo de carga, control de conexiones, etc.).
- Crear y mostrar mensajes de advertencia a los posibles infractores.
En esta sección no describiremos los pasos necesarios para securizar cada uno de estos aspectos del sistema operativo, ya que todos estos aspectos exceden el propósito de este curso, pero podemos encontrar información muy útil al respecto en:
- http://www.puschitz.com/SecuringLinux.shtml
- http://www.computerworld.com/s/article/9002691/Tips_on_keeping_your_Ubuntu_Linux_server_secure
- http://www.linuxjournal.com/article/10012
Una referencia alternativa para consultar los contenidos que vamos a dar a continuación es esta: http://www.symantec.com/connect/es/articles/securing-apache-2-step-step
Finalmente, como fuente de información sobre vulnerabilidades y soluciones podemos usar: http://secunia.com/product/9633/?task=advisories
Last modified: Saturday, 31 July 2010, 12:58 AM