Se propone realizar las siguientes acciones para mejorar la seguridad del servidor web Apache:
- Actualizar el ServidorWeb Apache
- Prevenir Ataques de Denegación de Servicio
- Prevenir Ataques de Fuerza Bruta
- Ocultar la Versión de Apache y del Sistema Operativo
- Deshabilitar Listado de Directorio y FollowSymLinks
- Deshabilitar TRACE HTTP Request
- Seguridad de Encabezados
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: