Seguridad en Apache

Introducción

La seguridad en Apache hoy en día es algo muy importante ya que es uno de los servidores web más conocidos y usados habitualmente.

Hemos querido realizar un conjunto de medidas que nos pueda ayudar a todos ser un poco menos vulnerable en el mundo de Internet.

Aparte de ello quería reunir las distintas prácticas que hace la gente y tenerlo centralizado para aquellos que quieran aprender.

Seguridad en Apache

En Debian/Ubuntu la mayor parte de los cambios se encuentran en el siguiente fichero: /etc/apache2/conf-enabled/security.conf


Ocultar la versión de apache

Con esta configuración evitamos mostrar la versión de nuestro Apache y además pasará a tener el nombre de producción es decir Apache.

ServerTokens Prod
ServerSignature Off

Deshabilitar Trace

Si permitimos este método en Apache pueden realizar ataques de Cross Site Tracing y posibilidades de obtener la información de una cookie.

TraceEnable off

Deshabilitando Cabeceras

Antes de realizar los siguiente chequeos, te tienes que asegurar de que tienes el mod_headers activado. Para ello podemos ejecutar:

a2enmod headers

Después del reinicio podemos seguir añadiendo directivas de seguridad a /etc/apache2/conf-enabled/security.conf

NOTA: Hay que tener cuidado porque a veces aplicaciones nuestras dejan de funcionar por este control de cabeceras.

Deshabilitar ataques clickjacking
Header append X-FRAME-OPTIONS "SAMEORIGIN"
Deshabilitar XSS Attack
Header set X-XSS-Protection "1; mode=block"
Proteger las cookies con HTTPOnly Flag
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

Deshabilitar ETag

Este parámetro, si está habilitado, nos permite obtener información acerca del número de inodos, proceso hijo …

FileETag None

Deshabilitar los métodos que no se usan

Al realizar esto solo permitiremos peticiones GET, POST y HEAD. Tenerlo en cuenta por si las aplicaciones utilizan algún método no establecido aquí.

<LimitExcept GET POST HEAD>
   deny from all
</LimitExcept>

Limitar el tamaño de las peticiones

Por defecto apache no viene con limitaciones a nivel de cuerpo (LimitRequestBody 0), es recomendable limitar el tamaño de las peticiones HTTP. Esto dependerá del tamaño de ficheros que estemos subiendo entre otras cosas.

LimitRequestBody 204800 (~200 Megas)

Nota: Este parámetro de configuración lo podemos usar en VirtualHost, Configuración de Apache, .htaccess.


Desactivar listado de directorios

Generalmente se suele encontrar en /etc/apache2/apache2.conf, tener cuidado con apache 2.4 ya que viene por defecto sin signo. Pero no permite el listado ni seguir enlaces simbólicos.

Nota: Si usamos signos, se tiene que poner en cada una de las opciones ya que sino Apache te indicará un error.

<Directory /var/www/>
 Options -Indexes -FollowSymLinks
 AllowOverride None
 Require all granted
</Directory>

Deshabilitar módulos que no se usarán

En Debian/Ubuntu tenemos un comando que nos puede dar una pista de los módulos que tenemos activos en el servidor

a2dismod

Este comando nos muestra una lista aparte de que nos diga si queremos deshabilitar algún módulo.

Por defecto la carga de estos módulo es mínima en Ubuntu 16.04.


Deshabilitar la ejecución CGI

En el caso de que no se necesite se puede deshabilitar ya que puede generar algún tipo de ataque. Tener cuidado si esto lo considera como incorrecta la sintaxis en versiones nuevas de Apache o deje de funcionar sitios webs.

-ExecCGI y -Includes

Generalmente lo configura en el directorio por defecto “/var/www/”.


Conclusión

Con estos parámetros nos aseguramos de cubrir ciertos aspectos que pueden ser aprovechados por los atacantes para obtener información sensible.

Recomiendo ver Securización HTTPS para tener al día nuestra configuración HTTPS (Me siento seguroooooo).

El siguiente punto que debemos aprender es la Configuración de seguridad en certificados Apache.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *