Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Funcionalidad

Esta guía consta de plantillas genéricas para realizar una correcta configuración de servidores Apache, Tomcat y Nginx. Además de una explicación más concreta de los aspectos más importantes por si fuera necesario personalizar la plantilla de configuración.

Requisitos

Comunicaciones entre cliente-servidor (básico)

Métodos de cifrado

Configuración del servidor utilizado (Apache, Nginx, Tomcat)

Descripción

Este acelerador tiene como objetivo reducir el tiempo invertido en la configuración de los servidores de aplicaciones (Apache, Nginx y Tomcat). Para ello se facilitarán a continuación unas plantillas de cada uno de los servidores, las cuales los dotarán de una mayor seguridad en las comunicaciones entre cliente-servidor.

Beneficios

  • Proteger la información sensible:  evitar que la información viaje en claro y pueda ser interceptada por un atacante, el cual podría visualizar o modificar dicha información, afectando a la confidencialidad, integridad y disponibilidad de los datos.

  • Generar confianza: entre cliente-servidor, garantizando la identidad del nombre del dominio donde se encuentra su servicio Web por medio de los certificados.

  • Lograr el cumplimiento de normativas: en materia de seguridad informática (RDPG, ENS, PCI-DSS, etc.).

Evidencias

Configuración por defecto

Configuración personalizada

Permitir  el uso de protocolos inseguros como TLS 1.0 y 1.1 puede causar vulnerabilidades, puesto que pueden ser utilizados en ataques Downgrade attack. Se recomienda deshabilitarlos por completo de modo que nuestro servidor solo acepte protocolos seguros (TLS 1.2 y 1.3).

Riesgos de seguridad

Tip

Recuerda

Las suite de cifrado de estas plantillas son orientativas, recuerda que si quieres saber más sobre ello o ya tienes las tuyas propias puedes verificar si son lo suficientemente seguras en la entrada del marco de seguridad Suites de cifrado TLS/SSL

Plantillas de servidor de aplicaciones

Table of Contents
minLevel3
maxLevel3

Plantilla servidor Apache

Si quieres mas información sobre configuraciones Apache puedes dirigirte a Configuración Servidor Apache

Configuración segura Apache

Code Block
SSLCipherSuite    TLSv1.3   TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
SSLCipherSuite    SSL       ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
# Requires Apache 2.4.36 & OpenSSL 1.1.1
SSLProtocol -all +TLSv1.3 +TLSv1.2
SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
# Older versions
# SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

Plantilla servidor Nginx

Si quieres mas información sobre configuraciones Nginx puedes dirigirte a Configuración Servidor Nginx

/etc/nginx/nginx.conf

Code Block
http {
    server {
    #Configuración de TLS
    listen 443 ssl http2;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/dhparam.pem;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256;
    ssl_ecdh_curve secp384r1;
    ssl_certificate ruta_certificado; #Indica la ruta de tu certificado
    ssl_certificate_key ruta_clave; #Indica la ruta de tu certificado    
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_session_cache   shared:SSL:40m;
    ssl_session_timeout 4h;
    ssl_session_tickets off;
 
    #Añadir cabeceras y DNS en función de tu producto
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    }
}

Plantilla servidor Tomcat

Si quieres mas información sobre configuraciones Tomcat puedes dirigirte a Configuración Servidor Tomcat

/etc/tomcat9/server.xml

Code Block
<Server>
  <Service>
    <Connector port="443"
             protocol="org.apache.coyote.http11.Http11NioProtocol"
             SSLEnabled="true"
             maxThreads="150"
             scheme="https"
             secure="true"
             keystoreFile="Añade aqui la ruta de tu certificado"
             keystorePass="Contraseña del certificado"
             clientAuth="false"
             sslProtocol="TLSv1.2, TLSv1.3"
             sslEnabledProtocols="TLSv1.2, TLSv1.3"
             ciphers="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256"
     />
  </Service>
</Server>