Bueno, aqui les dejo para aquellas personas que deseen blindar su apache de manera que no sea tan vulnerable.
Esto lo lei en la Comunidad Dragonjarina xD (Dragonjar)
El post es buenisimo:
1.- Instalar los ultimos parches de seguridad: No hay sentido en poner cerraduras en las ventanas, si tu puerta está abierta de par en par.
2.- Ocultar el número de versión de Apache, y otra información sensible: Por defecto muchas instalaciones de Apache dicen qué versión de Apache está funcionando, qué sistema operativo, y los módulos de Apache que están instalados en el servidor. Los atacantes pueden utilizar esta información a su ventaja al realizar un ataque. Hay dos directorios que necesitas agregar, o corregir en tu archivo de ¨httpd.conf¨:
ServerSignature Off
ServerTokens Prod
El ServerSignature aparece en las páginas generadas por Apache, tal como ¨error 404¨, ¨listados del directorio¨, etc.
El directorio de ServerTokens se utiliza para determinar lo que pondrá Apache en el servidor en respuesta del HTTP header.
3.-Cerciorarse de que Apache esté funcionando bajo tu cuenta y grupo de usuario: Varias instalaciones de Apache hacen que funcione como usuario a ¨Nobody¨. Suponer un Apache, y con el servidor de correo funcionando como nobody puede permitir un ataque, a través de Apache, comprometiendo tu servidor de correo también:
User apache
Group apache
4.- Asegurarse de que los archivos fuera de web root no estén servidos: No quisiéramos que Apache pudiera tener acceso a ningún de los archivos fuera de la raíz. Si se asume que tu sitio web se coloca bajo un directorio (llamaremos a este /web), se debe instalar como sigue:
Observamos que fijamos Options None y AllowOverride None. Esto pondra off a todas las opciones y se eliminan para el servidor. Ahora tienes que agregarlas explícitamente para cada directorio que requiera una opción o una invalidación.
5.- Poner Off a la navegación de directorios: Puedes hacer esto con las opcionesde directivas dentro de una etiqueta del directorio.Fijar las ¨Options¨ a ¨None¨ o -¨Indexes¨.
Options -Indexes
6.- Poner a Off Server Side Includes: Tambien puedes hacer esto con las opciones de directivas dentro de una etiqueta del directorio. Fijar las ¨Options¨ a ¨None¨ o ¨-Includes¨.
Options -Includes
7.- Poner a Off la ejecucion de CGI: Fijar las ¨Options¨ a ¨None¨ o ¨-ExecCGI¨
Options -ExecCGI
8.- No permitir que Apache siga enlaces simbólicos: Fijar las ¨Options¨ a ¨None¨ o ¨-FollowSymLinks¨
Opciones - FollowSymLinks
9.- Poner a Off multiples opciones: Si deseas apagar a todas las opciones simplemente usa:
Options None
Si solo deseas poner a Off algunas opciones, solo pon un espacio en el directorio:
Options -ExecCGI -FollowSymLinks -Indexes
10.- Poner a Off la ayuda para los archivos de .htaccess: Esto se hace en una etiqueta del directorio, pero con el directorio de ¨AllowOverride¨. Fijarlo a ¨None¨.
AllowOverride None
Si deseas asegurarte de que no pueden ser descargados, y/o eliminados cambias el nombre por algo con excepción de .htaccess. Por ejemplo podríamos cambiarlo a .httpdoverride, y bloqueamos todos los archivos que comienzan con .ht de ser descargados, de la siguiente forma:
11.- Ejecutar mod_security: mod_security es un módulo práctico y estupendo de Apache escrito por Ivan Ristic, el autor de Apache Security desde O'Reilly press.
Puedes hacer lo siguiente con mod_security:
* Filtración simple
* Filtración basada expresión regular
* Validación de codificación del URL
* Validación de Unicode Encoding
* Auditoria
* Prevención del ataque de Null byte
* Upload memory limits
* Enmascarar la identidad del servidor
* Built in Chroot support
* Y más
12.- Inhabilitar cualquier módulo innecesario: Apache viene típicamente con varios módulos instalados. Estudia la documentación de los módulos de Apache y aprenderas lo que hace cada módulo. Muchas veces encontrarás que no necesitas tener activados algunos modulos.
Buscar las líneas en tus ¨httpd.conf¨ que contengan ¨LoadModule¨. Para inhabilitar el módulo solo debes agregar un # al principio de la línea. Para buscar los módulos que estan funcionando:
grep LoadModule httpd.conf
Aquí están algunos módulos que se instalan típicamente pero a menudo no son necesarios: mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.
13.- Cerciorarte de que solamente Root tenga acceso a los config y a los binarios de Apache: Esto se puede hacer si asumimos que la instalación de tu Apache está situada en ¨/usr/local/apache¨ como sigue:
chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache
14.- Bajar el valor del time out: Por defecto el directorio del ¨Timeout¨ es fijado a 300 segundos. Puedes disminuirlo ayudando a atenúar los efectos potenciales de un ataque Denial of Service.
Timeout 45
15.- Limitación de peticiones grandes: Apache tiene varios directorios que permiten que limites el tamaño de una petición. Esto puede también ser útil para atenuar los efectos de un ataque Denial of Service.
Un buen lugar a comenzar es el directorio de ¨LimitRequestBody¨. Este directorio está fijado a ilimitado por defecto. Si estás permitiendo subidas de archivos de no más de 1MB, podrías fijar este ajuste en algo como:
LimitRequestBody 1048576
Algunos otros directorios a mirar son ¨LimitRequestFields¨, ¨LimitRequestFieldSize¨ y ¨LimitRequestLine¨. Estos directorios se fijan a algo razonable para la mayoría de los servidores, pero puedes desear limitarlos para adaptarlos lo mejor posible a tus necesidades.
16.- Limitación del tamaño de XML Body: Si estás ejecutando el ¨mod_dav¨, entonces puedes desear limitar el tamaño máximo de un cuerpo de la petición de XML. El directorio de ¨LimitXMLRequestBody¨ está solamente disponible en Apache 2, y su valor prefijado es 1 millón de octetos (aproximadamente 1 Mb). Muchos tutoriales tendrán fijado este valor a 0, lo que significa que los archivos de cualquier tamaño pueden ser subidos; lo que puede ser necesario si estás utilizando WebDAV para subir archivos grandes, pero si lo estás utilizando simplemente para el control del source, puedes fijar un límite superior, tal como 10 Mb:
LimitXMLRequestBody 10485760
17.- Limitación de concurrencia: Apache tiene varios ajustes de la configuración que se pueden utilizar para ajustar la dirección de peticiones concurrentes. El ¨MaxClients¨ es el número máximo de los pequeños procesos que serán creados para servir peticiones. Esto se puede fijar demasiado alto si tu servidor no tiene bastante memoria para manejar una gran cantidad de peticiones de concurrentes.
Otros directorios tales como ¨MaxSpareServers¨, ¨MaxRequestsPerChild¨, y sobre Apache2 ¨ThreadsPerChild¨, ¨ServerLimit¨, y ¨MaxSpareThreads¨ son importantes de ajustar para emparejar tu sistema operativo, y el hardware.
18.- Acceso de restricción por el IP: Si tienes un recurso que deba ser accesado por cierta red, o dirección IP puedes hacer cumplir esto en tu configuración de Apache. Por ejemplo si deseas restringir el acceso a tu Intranet para permitir solamente la red 176.16.x.x:
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16
O por IP:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
19.- Ajustando la configuracion de KeepAlive: KeepAlive es activado por defecto y debes dejarlo encendido, pero puedes considerar el cambiar¨MaxKeepAliveRequests¨ que por defecto está fijado en 100, y ¨KeepAliveTimeout¨ que por defecto está en 15. Analizando tus ficheros a diario podrás determinar los valores apropiados.
20.- Hacer Funcionar Apache en un ambiente de Chroot:¨el chroot¨ permite que ejecutes un programa en su propio ambiente aislado. Esto evita que un defecto dentro en un servicio pueda afectar todo lo demás en el servidor. mod_security se ha construido en ayuda del chroot. Hace el proceso tan simple como agregar un directorio del mod_security a tu configuración:
SecChrootDir /chroot/apache
No hay comentarios:
Publicar un comentario