Actualizado el 21 de Marzo del 2018 (Publicado el 25 de Noviembre del 2017)
783 visualizaciones desde el 25 de Noviembre del 2017
888,8 KB
35 paginas
Creado hace 11a (16/08/2012)
Guía básica para la securización del
servidor web Apache
Julio 2012
La presente publicación pertenece a INTECO (Instituto Nacional de Tecnologías de la Comunicación) y
está bajo una licencia Reconocimiento-No comercial 3.0 España de Creative Commons. Por esta razón está
permitido copiar, distribuir y comunicar públicamente esta obra bajo las condiciones siguientes:
o Reconocimiento. El contenido de este informe se puede reproducir total o parcialmente por
terceros, citando su procedencia y haciendo referencia expresa tanto a INTECO-CERT como a su
sitio web: http://www.inteco.es. Dicho reconocimiento no podrá en ningún caso sugerir que
INTECO-CERT presta apoyo a dicho tercero o apoya el uso que hace de su obra.
o Uso No Comercial. El material original y los trabajos derivados pueden ser distribuidos, copiados y
exhibidos mientras su uso no tenga fines comerciales.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de
estas condiciones puede no aplicarse si se obtiene el permiso de INTECO-CERT como titular de los
derechos de autor. Texto completo de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/es/
El presente documento cumple con las condiciones de accesibilidad del formato PDF (Portable Document
Format). Se trata de un documento estructurado y etiquetado, provisto de alternativas a todo elemento no
textual, marcado de idioma y orden de lectura adecuado.
Para ampliar información sobre la construcción de documentos PDF accesibles puede consultar la guía
disponible en la sección Accesibilidad > Formación > Manuales y Guías de la página http://www.inteco.es
Seguridad en Apache
2
ÍNDICE
1.
2.
3.
4.
INTRODUCCIÓN
DIRECTIVAS Y ARCHIVOS DE CONFIGURACIÓN
SEGURIDAD EN LA INSTALACIÓN
CONTROL DE LOS ARCHIVOS PUBLICADOS
4.1.
4.2.
4.3.
Denegar el acceso por defecto
Revisar las directivas Alias
Evitar la resolución de enlaces simbólicos
5.
OCULTAR INFORMACIÓN
5.1.
5.2.
5.3.
5.4.
Deshabilitar el listado de ficheros
Limitar el acceso a archivos por extensión
Información en la cabecera “Server”
Información en páginas generadas por el servidor
6.
CGI Y MÓDULOS
6.1.
6.2.
¿CGI o módulo?
Medidas de seguridad
7.
AUTENTICACIÓN Y AUTORIZACIÓN
7.1.
7.2.
7.3.
Por contraseña
Autorización a grupos
Otros factores de autenticación
8.
COMUNICACIÓN HTTPS Y AUTENTICACIÓN CON CERTIFICADO CLIENTE
8.1.
8.2.
8.3.
8.4.
8.5.
Ventajas de HTTPs sobre HTTP
Configuración segura de HTTPS
Comprobación de la seguridad de HTTPS
Autenticación del usuario por certificado
Criterios compuestos de autorización
9.
ATAQUES DE DENEGACIÓN DE SERVICIO
9.1.
9.2.
Ataques DOS
Número máximo de peticiones concurrentes
Seguridad en Apache
5
7
9
10
10
10
11
12
12
12
13
15
17
17
18
19
19
21
21
22
22
22
24
24
25
26
26
27
3
9.3.
9.4.
Restricciones sobre las peticiones
Monitorización del uso de recursos
10. MONITORIZACIÓN
10.1. Monitorización del servicio
10.2. Configuración y revisión de logs
10.3. Detección de ataques
11. FUENTES DE INFORMACIÓN
28
28
31
31
32
33
34
Seguridad en Apache
4
1.
INTRODUCCIÓN
En la actualidad, cada vez más aplicaciones y servicios se desarrollan para entornos web -
siendo accesibles a través del navegador- de forma que se facilite el acceso desde las redes
internas de las empresas o a través de Internet. Por este motivo, se debe poner especial
énfasis en la seguridad de los servidores web.
Por poner un ejemplo, caídas del servidor, problemas se seguridad por la configuración,
robo de información confidencial, defacements (modificaciones en del aspecto de la web) o
inyección de código malicioso son algunas de las consecuencias de no disponer una
instalación segura del servidor web.
Debido a la facilidad de instalación, las extensas posibilidades de configuración y los
módulos de seguridad que dispone, Apache se ha convertido en el servidor web más
utilizado entre el resto de opciones.
Gráfica con los servidores web más utilizados desde 1995 (fuente netcraft.com)
Por este motivo INTECO-CERT presenta la «Guía básica para la securización del servidor
web Apache» que tiene el objetivo de ofrecer unos primeros pasos a administradores de
sistemas sobre cómo implementar el servidor web Apache en sistemas operativos tipo
Unix/Linux (aunque muchas de las configuraciones son aplicables a sistemas Windows) de
Seguridad en Apache
5
forma segura considerando los aspectos esenciales antes de establecerlos en un entorno de
producción.
No hay que olvidar otros factores determinantes en la seguridad del servidor web, como por
ejemplo su bastionado, aunque estos temas no entran en el alcance del presente
documento.
Los temas tratados en el informe son:
Cómo modificar la configuración de Apache y las medidas de seguridad que se
deben aplicar al instalar el software.
Las directivas principales para definir los ficheros que servirá Apache sin que se
facilite el acceso a ningún otro archivo del servidor.
Los métodos para tratar de minimizar la información expuesta que facilite ataques
sobre el servidor web.
Las características de los distintos métodos de ejecución de código que ofrece
Apache y los requisitos de seguridad que conllevan.
Los métodos Basic y Digest de autenticación, además de cómo construir requisitos
de acceso más sofisticados.
Cómo configurar de manera segura el protocolo HTTPS, que proporciona cifrado de
la comunicación y autenticación del servidor.
Una introducción sobre los ataques DOS y sus mitigaciones. Y cómo configurar
Apache en vista del número de peticiones concurrentes que espera recibir el servidor.
Las opciones de configuración de
log y
las principales herramientas de
monitorización de Apache.
Seguridad en Apache
6
2. DIRECTIVAS Y ARCHIVOS DE CONFIGURACIÓN
Como cualquier aplicación, el servidor web apache contiene una serie de archivos que será
necesario configurar correctamente durante su instalación para dotar al servidor de la
funcionalidad deseada y en lo que atañe a esta guía, asegurarlo de manera correcta. La
configuración se realiza a través de directivas o reglas en archivos de configuración
concretos.
Es importante resaltar que dependiendo de la distribución de Linux/Unix utilizada con
Apache, el número, las rutas y los nombres de los archivos de configuración de
Apache pueden variar. Con el comando apache2ctl -V, se pueden averiguar datos sobre
una instalación concreta incluyendo cual es el archivo de configuración:
Este archivo de configuración puede incluir a su vez otros más utilizando la directiva Include
Seguridad en Apache
7
Por ejemplo, en sistemas Debian/Ubuntu se utiliza la siguiente estructura de archivos de
configuración diseñada para facilitar la administración:
/etc/apache2/apache2.conf: el archivo raíz es el que incluye a los demás. No se debe
modificar este archivo.
mods-enabled/*.load y mods-enabled/*.conf: la finalidad de estos archivos es la
carga y configuración de los módulos de Apache.
httpd.conf: directivas aplicables a todos los servidores web.
ports.conf: define en qué puertos «escuchará» Apache.
conf.d/: directorio que contiene archivos de configuración para cada funcionalidad de
apache (charset, php, security, etc.)
sites-enabled/: directorio que contiene los archivos de configuración de cada virtual
host.
Seguridad en Apache
8
3. SEGURIDAD EN LA INSTALACIÓN
Afortunadamente, las instalaciones de Apache en sistemas Linux/Unix a través de los
mecanismos de gestión de paquetes incluyen muchas de las opciones que se citan a
continuación activadas o implantadas por defecto. Pero en alguna ocasión es posible que
esas características no sean necesarias o no se vayan a utilizar por lo que en
ocasionalmente es posible que se conviertan en un problema de seguridad si no se actúa
correctamente, por lo que hay que analizar previamente las necesidades para desactivar
todo aquello que no se vaya a utilizar.
Deshabilitar los módulos que no se utilicen:
El deshabilitar los módulos que no se vayan a utilizar, va a ofrecer dos ventajas principales.
Por un lado no sólo se evitarán ataques sobre estos módulos (a mayor número de módulos
mayor número de posibilidades de ataque); y por otro, también Apache en ejecución
consumirá menos recursos Otra ventaja más de desactivar los módulos, es que se verá
reducida la necesidad de emplear más recursos para su administración y control.
Permisos sobre ficheros:
Durante la instalación se creará un usuario y grupo exclusivo para la ejecución de Apache.
Este usuario y grupo se configura con las directivas User y Group. En cuanto a los p
Comentarios de: Guía Básica para la securización del servidor web Apache (0)
No hay comentarios