FuncionalidadEsta 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. | RequisitosComunicaciones 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
Problema | Vulnerabilidad | Mitigación | Referencias |
---|---|---|---|
Comunicaciones inseguras | Fuga de información | Correcta configuración de los servidores | http://nginx.org/en/docs/http/ngx_http_ssl_module.html?ref=hackernoon.com https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html#intranet https://tomcat.apache.org/tomcat-10.0-doc/ssl-howto.html#SSL_and_Tomcat https://www.ssl.com/es/gu%C3%ADa/tls-cumplimiento-de-normas/ |
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
Plantilla servidor Apache
Si quieres mas información sobre configuraciones Apache puedes dirigirte a Configuración Servidor Apache
Configuración segura Apache
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
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
<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> |