Icono del sitio Blog personal de Guido Cutipa

Cómo configurar la seguridad en Apache 2.4

HTTP/2

Se propone realizar las siguientes acciones para mejorar la seguridad del servidor web Apache:

Actualizar el Servidor Web Apache

Es crucial contar con las últimas actualizaciones del servidor, que prevengan los posibles problemas a encontrar.

apt-get update
apt-get dist-upgrade

Prevenir Ataques de Denegación de Servicio

Poner en una lista negra el IP desde el que provienen muchas solicitudes, que se dirigen a una página varias veces por segundo.

apt install libapache2-mod-evasive -y
systemctl restart apache2
apachectl -M | grep evasive

Prueba de validación:

Configuración:

nano /etc/apache2/mods-available/evasive.conf
<IfModule mod_evasive20.c>
    DOSHashTableSize    10240
    DOSPageCount        20
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   60
    DOSLogDir           "/var/log/mod_evasive"
    DOSWhitelist        File:/etc/apache2/whitelist


</IfModule>

Ahora se debe crear la carpeta que contendrá los logs

mkdir /var/log/mod_evasive

chown -R www-data:www-data /var/log/mod_evasive

En el archivo white liste se pondran todas las IPs de la red interna o los IPs que no deben ser bloqueado por este módulo:

nano /etc/apache2/whitelist
DOSWhitelist 127.0.0.1
DOSWhitelist 127.0.0.*
DOSWhitelist 192.168.3.*
DOSWhitelist 172.16.10.15

Finalmente verificamos que la configuración sea correcta y reiniciamos el servidor:

apache2ctl configtest

service apache2 restart

Prevenir Ataques de Fuerza Bruta

Previene ataques de fuerza bruta a aplicaciones de servidores web.

apt install libapache2-mod-security2 -y
systemctl restart apache2

Pruebade validación:

Ocultar la Versión de Apache y del Sistema Operativo

Esta práctica puede ocultar información a los atacantes que recolecteninformación del servidor WEB.

nano /etc/apache2/conf-enabled/security.conf

Modificar los siguientes valores:

ServerSignature Off 
ServerTokens Prod

Reiniciar el servidor

systemctl reload apache2

Prueba de validación:

Revisar las cabeceras de respuestas del servidor Web

Deshabilitar Listado de Directorio y FollowSymLinks

Esto impide que los hackers analisen los archivos del servidor web.

a2dismod autoindex -f
systemctl reload apache2

Prueba de validación:

Medianteun navegador acceder a una carpeta publicada en el servidor Web.

Deshabilitar TRACE HTTP Request

Esto impide que un atacante robe la información de las cookies.

nano /etc/apache2/conf-enabled/security.conf

Modificar el siguiente valor:

TraceEnable Off
systemctl reload apache2

Prueba de validación:

Seguridad de Encabezados

Los encabezados le indican al navegador que tenga en cuenta los tipos de archivos definidos y no permite el rastreo de contenido.

# a2enmod headers
# nano /etc/apache2/conf-enabled/security.conf

Modificar los siguientes valores:

Header set X-Content-Type-Options: "nosniff"

Los encabezados le indican al navegador que tenga en cuenta los tipos de archivos definidos y no permite el rastreo de contenido.

Header always set X-Frame-Options: "SAMEORIGIN"

Previene el ataque Clickjacking

Header always set Referrer-Policy: "no-referrer"

Este parámetro indica que nunca se envíe el origen del visitante al acceder a un link. De esta manera, todos los usuarios que llegan a una web desde otra configurada como no-referrer aparecerán con el origen NULL.

Header set X-XSS-Protection: "1; mode=block"

Habilita el filtro XSS. En lugar de sanitizar la página, el navegador evitará la visualización de la página en caso de que algún ataque sea detectado.

Reiniciar el servidor:

systemctl restart apache2

Prueba de validación:

Revisar las cabeceras de respuesta delservidor Web apache.

Referencia:

https://httpd.apache.org/docs/2.4/misc/security_tips.html

Salir de la versión móvil