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

ServerTokens Minimal

ServerSignature Off

Deshabilitar Trace

TraceEnable off

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

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. Esto dependerá del tamaño de ficheros que estemos subiendo entre otras cosas.

LimitRequestBody 204800 (~200 Megas)

# Desactivar listado de directorios || Seguir enlaces simbólicos

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.

<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.

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

Deja un comentario

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