Introducción

Apache es uno de los servidores web más populares y, por lo tanto, suele ser vulnerable a los ataques de piratería. Una configuración estándar que revela información confidencial sobre el servidor reduce el tiempo que tarda un pirata informático en investigar. La mayoría de los ataques se realizan a través de PHP Injection attacks, Cross Site Scripting, Stealing Cookie Information, Denial of Service (DoS), Distributed DOS (DDoS), HTTP brute force attacks> por nombrar algunos. En este artículo, le mostraremos cómo configurar su servidor web Apache en Ubuntu 18.04 para que sea seguro y brinde una protección sólida contra ataques maliciosos.

requisitos

  • Debe tener un conocimiento básico de Apache>
  • Debe tener instalado el servidor web Apache más reciente (en el momento de la publicación 2.4.29) en Ubuntu 18.04 VPS
  • Debes haber instalado WordPress Demo Website en el /var/www/html
  • Necesitas saber como hacer eso inspector element en un navegador web para probar
  • Debe haber realizado una copia de los siguientes archivos de configuración
/etc/apache2/apache2.conf
/etc/apache2/conf-enabled/security.conf

1. Ocultar la versión y el sistema operativo de Apache

De forma predeterminada, la versión y el sistema operativo de Apache se muestran en los encabezados de respuesta, como se muestra a continuación. Este es un gran agujero de seguridad que expone tales detalles al mundo y puede ser explotado por piratas informáticos.

La figura muestra que el servidor web se ejecuta en Apache versión 2.4.29 y en el sistema operativo Ubuntu. Para ocultar estos detalles, agregue las dos líneas en el archivo de configuración de Apache /etc/apache2/conf-enabled/security.conf

ServerSignature Off 
ServerTokens Prod

Luego recargue Apache:

$ sudo systemctl reload apache2

Actualice el navegador y encontrará que la versión y los detalles del sistema operativo se han eliminado como se muestra a continuación:

2. Desactive la lista de directorios y FollowSymLinks.

De forma predeterminada, la lista de directorios está habilitada para todos los archivos en el directorio raíz web si no hay un archivo de índice, como se muestra a continuación. Esto permite a los piratas informáticos ver y analizar los archivos en el directorio de su servidor web y maximizar la vulnerabilidad más pequeña disponible para lanzar un ataque.

Además, por defecto, Apache está configurado para seguir enlaces simbólicos, lo que no es recomendable.

Para desactivar esto, edite el archivo de configuración /etc/apache2/apache2.conf llevar a cabo “-” antes de cada directiva de etiqueta en la línea Options Indexes FollowSymLinks volverse Options -Indexes -FollowSymLinks Como se muestra abajo:

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

Luego recargue el servicio Apache

Actualice el navegador y encontrará que los archivos ya no se pueden ver y, en su lugar, genera un mensaje de error 403 prohibido como se muestra a continuación:

3. Asegure Apache con los módulos mod_security y mod_evasive

Mod_Security

Actúa como un cortafuegos para aplicaciones y servidores web y ofrece protección contra ataques de fuerza bruta. Instálelo y reinicie Apache.

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

Mod_evasivo

Detecta y protege contra ataques de fuerza bruta HTTP y DDOS. Siempre detecta ataques cuando: tantas solicitudes se dirigen a un lado varias veces por segundo; La IP incluida temporalmente en la lista negra sigue intentando realizar una nueva solicitud; el proceso hijo intenta realizar más de 50 solicitudes simultáneas. Instale Apache y reinicie.

$ sudo apt install libapache2-mod-evasive -y
$ sudo systemctl restart apache2

4. Limitar el tamaño de la solicitud

De forma predeterminada, la solicitud HTTP en Apache es ilimitada, por lo que el servidor web es vulnerable a los ataques DoS al mantenerlo abierto para una gran cantidad de solicitudes. Por ejemplo, si hay un sitio que permite a los usuarios cargar archivos, es importante establecer un límite en el tamaño de carga. Esto se puede hacer configurando LimitRequestBody para este directorio de carga en particular de la siguiente manera:

<Directory "/var/www/html/wp_content/uploads">
 
LimitRequestBody 10485760
 
</Directory>

El tamaño de carga se limitó a un máximo de 10 megabytes. El límite máximo permitido suele ser de 2 GB.

Luego reinicie / recargue el servicio Apache.

5. Desactive la solicitud TRACE HTTP

La solicitud HTTP de seguimiento está activada de forma predeterminada para habilitar el seguimiento entre sitios. Esto permite a un pirata informático robar información de cookies fácilmente. La desactivación de la solicitud HTTP de seguimiento conduce al mod_proxy y al servidor central “405 - Method Not Allowed”Mensaje de error a los clientes. La solicitud de seguimiento se desactiva agregando la línea TraceEnable off en el archivo de configuración /etc/apache2/apache2.conf.

Guarde el archivo y vuelva a cargar el servicio Apache.

sudo systemctl restart apache2

Conclusión

Los 5 pasos enumerados son las protecciones de seguridad más básicas que necesita implementar en su servidor web Apache. Para agregar más funciones de seguridad, puede hacer lo siguiente:

  • Deshabilite las inclusiones del lado del servidor (SSI) y la ejecución CGI, que normalmente permiten la ejecución remota de código arbitrario
  • Asegúrese de que Apache esté actualizado con la última versión, ya que contiene parches que reducen la seguridad de los ataques.
  • Evite los ataques de clickjack que engañan a los usuarios para que hagan clic en sitios web maliciosos
  • Asegure el servidor web Apache con certificados SSL para cifrar todas las comunicaciones a través de Internet.