Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
▼
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
▼
marzo
(Total:
36
)
- Doble factor de autenticación o verificación en do...
- CopperheadOS es el fork abierto ultraseguro de And...
- Cabeceras de Seguridad HTTPS en el servidor web Ng...
- Lexar presenta una tarjeta microSDXC UHS-I de 200GB
- Gigabyte presenta la nueva GTX 960 Xtreme Gaming
- El FBI logra hackear el iPhone de San Bernardino
- 1 de cada 4 internautas españoles utiliza adblockers
- Aplicaciones bancarias móviles: la mayoría no apru...
- Las nuevas tarjetas contactless NFC no son tan seg...
- Apple criticada tras “burlarse de la gente pobre”
- Cómo tener dos cuentas a la vez de WhatsApp, Faceb...
- Cellebrite, la compañía israelí que ayuda al FBI a...
- La piratería de la TV de pago con CardSharing
- Kali Linux 2.1.2 para dispositivos ARM ya es compa...
- La herramienta BinDiff es ahora gratuita
- Surprise, un ransomware que se instala a través de...
- Empleados de Apple amenazan con dimitir antes de s...
- Un estudiante se imprime un aparato dental en 3D p...
- El propietario de una conexión wifi en un bar no e...
- ProtonMail, el correo cifrado, ultraseguro y libre...
- Metaphor, un exploit basado en Stagefright, secues...
- Así obtuvo las fotos íntimas de famosas el hacker ...
- Google Nexus 5X y Nexus 6P bajan de precio
- Navega de forma anónima (VPN + TOR) con un router ...
- PiDrive, el disco duro económico de 314 GB para la...
- AMD anuncia Radeon Pro Duo, la tarjeta gráfica más...
- El error ortográfico de un delincuente le impide r...
- Verizon pagará 1,2 millones a las autoridades esta...
- Facebook soluciona fallo que permitía hackear cuen...
- KeRanger es el primer ataque de ransomware para Ma...
- Recopilación comandos Windows con interfaz gráfica
- SSD de 16TB de Samsung ya está a la venta a un pre...
- Cazan a Kanye West, defensor del copyright, con un...
- DROWN: vulnerabilidad crítica en sitios HTTPS con ...
- FBI reconoce un error al manejar el iphone del aut...
- Facebook activa la posibilidad de emitir vídeo en ...
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Cabeceras de Seguridad HTTPS en el servidor web Nginx y Apache
Otro concepto importante dentro de la criptografía es que un algoritmo se considera seguro, si el tiempo y el esfuerzo necesarios para romperlo y descifrar el contenido sin el conocimiento de la clave, es mayor que el valor del contenido de los datos en sí.
Cabeceras de Seguridad (HTTP Headers)
- Content-Security-Policy (CSP): allows the website to define a policy concerning which domains external javascripts, css, images, etc, can be imported and rendered from. Prevents XSS and other cross-site injections.
- X-Content-Type-Options: prevents IE and Google Chrome from MIME-sniffing a response away from the declared content-type.
- X-Frame-Options: protects against clickjacking attacks.
- X-XSS-Protection: essentially useless; it comes enabled by default in modern browsers.
- Strict-Transport-Security (HSTS): tells your browser to always connect to a particular domain over HTTPS. Attackers aren’t able to downgrade connections, and users can’t ignore TLS warnings.
- Feature Policy
- Public-Key-Pins (HPKP): tells your browser to associate a specific public key fingerprint with a particular domain. Prevents against an attacker getting a valid certificate from one of the hundreds of other Certificate Authorities out there.
- Cabeceras que envía servidor web (apache, nginx)
- Código fuente HTML, añadiendo código tag
- Mediante PHP (con header, init_set o define)
Header always addHeader always setHeader always append
add
The response header is added to the existing set of headers, even if this header already exists. This can result in two (or more) headers having the same name. This can lead to unforeseen consequences, and in general set, append or merge should be used instead.append
The response header is appended to any existing header of the same name. When a new value is merged onto an existing header it is separated from the existing header with a comma. This is the HTTP standard way of giving a header multiple values.set
The response header is set, replacing any previous header with this name. The value may be a format string.
Opciones Básicas de seguridad según Observatorio de Mozilla:
- Cookies (
Secure
,HttpOnly
, andSameSite
) - Content Security Policy (no
'unsafe'
declarations) - HTTP Strict Transport Security (being preloaded)
- Subresource Integrity
X-Frame-Options
(done via Content Security Policy)
CSP (Content Security Policies)
Con la ayuda de la consola de desarrollador de Chrome, fija el color rojo-advertencias uno por uno, lo que resulta en esta política final:
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-eval' https://ssl.google-analytics.com https://ajax.cloudflare.com; img-src 'self' https://ssl.google-analytics.com ; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com; object-src 'none'";
Para obtener una puntuación de A+ en Security Headers:
add_header Strict-Transport-Security max-age=0; add_header X-Frame-Options "ANYTHINGREALLY"; add_header X-Content-Type-Options anythingreally; add_header X-XSS-Protection "0"; add_header Content-Security-Policy "default-src *"; add_header Public-Key-Pins max-age=0;
Son los headers que se usan para configurar de forma completa cómo debe ser la ejecución de los contenidos de una web. Desde carga de contenido script, plugins o servidores a utilizar.
- default-src: Define loading policy for all resources type in case of a resource type dedicated directive is not defined (fallback)
- script-src: Define which scripts the protected resource can execute, object-src: Define from where the protected resource can load plugins
- style-src: Define which styles (CSS) the user applies to the protected resource
- img-src: Define from where the protected resource can load images
- media-src: Define from where the protected resource can load video and audio
- frame-src: Define from where the protected resource can embed frames, font-src: Define from where the protected resource can load fonts
- connect-src: Define which URIs the protected resource can load using script interfaces
- form-action: Define which URIs can be used as the action of HTML form elements
- sandbox: Specifies an HTML sandbox policy that the user agent applies to the protected resource
- script-nonce: Define script execution by requiring the presence of the specified nonce on script elements
- plugin-types: Define the set of plugins that can be invoked by the protected resource by limiting the types of resources that can be embedded
- reflected-xss: Instructs a user agent to activate or deactivate any heuristics used to filter or block reflected cross-site scripting attacks, equivalent to the effects of the non-standard X-XSS-Protection header
- report-uri: Specifies a URI to which the user agent sends reports about policy violation
meta http-equiv="Content-Security-Policy" content="default-src https:"
meta http-equiv="Content-Security-Policy" content=Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'
meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
HTTP Referrer
- Referrer-Policy para evitar ataques CSRF
- Referrer-Policy: no-referrer
- Referrer-Policy: no-referrer-when-downgrade
- Referrer-Policy: origin
- Referrer-Policy: origin-when-cross-origin
- Referrer-Policy: same-origin
- Referrer-Policy: strict-origin
- Referrer-Policy: strict-origin-when-cross-origin
- Referrer-Policy: unsafe-url
Opciones (Directivas)
- no-referrer: La cabecera Referer se omitirá en su totalidad. No se enviará ningún dato de referente junto con las solicitudes.
- no-referrer-when-downgrade (predeterminado): Este es el comportamiento predeterminado del agente de usuario si no se especifica ninguna directiva. El origen se enviará como referente cuando el nivel de seguridad del protocolo permanece igual (HTTPS → HTTPS), pero no se enviará a destinos menos seguros (HTTPS → HTTP).
- origin: Se enviará únicamente el origen del documento como referente en todos los casos. El documento https://ejemplo.com/pagina.html enviará el referente https://ejemplo.com/.
- origin-when-cross-origin: Se enviará un URL completo al realizarse una solicitud de origen equivalente, pero únicamente el origen para otros casos.
- same-origin: Se enviará un referente para orígenes de sitio equivalente, pero las solicitudes de origen transversal no contendrán ningún dato de referente.
- strict-origin: Solo se enviará el origen del documento como referente a destinos que a priori son igual de seguros (HTTPS → HTTPS), pero no lo recibirán destinos menos seguros (HTTPS → HTTP).
- strict-origin-when-cross-origin: Se enviará un URL completo al realizarse una solicitud de origen equivalente, se enviará únicamente el origen del documento a destinos igual de seguros a priori (HTTPS → HTTPS) y no se enviará ninguna cabecera a destinos menos seguros (HTTPS → HTTP).
- unsafe-URL: Se enviará un URL completo al realizarse una solicitud de origen equivalente o de origen transversal.
La primera forma de configurar el comportamiento del navegador con los campos Referrer es a nivel de documento HTML con el uso de una META Tag llamada Referrer donde se establece una política para todos los hipervínculos que se generen - tanto de forma estática como de forma dinámica - desde esa URL.
Ejemplo:
meta name=”referrer” content=”origin”
O en el servidor web apache
Header always set Referrer-Policy "origin"
O se puede utilizar un HTTP Header llamado Referrer-Policy a nivel de servidor web:
X-Frame-Options
Con X-Frame-Options evitamos que nuestra web sea cargada como un iframe en otra web. Esto nos ayuda a protegernos frente a ataques de tipo Clickjacking. Estos son los tres posibles ejemplos de uso:- X-Frame-Options: deny
- X-Frame-Options: sameorigin
- X-Frame-Options: allow-from https://elhacker.net/
Header always append X-Frame-Options: "DENY"
O con "sameorigin"
Header always set X-Frame-Options "SAMEORIGIN"
header("X-FRAME-OPTIONS: DENY");
O en servidor web nginx
add_header X-Frame-Options “DENY”;
add_header X-Frame-Options SAMEORIGIN always;
Recuerda que en éste caso no puedes hacer uso de la etiqueta meta, será ignorada, no funcionará:
<meta http-equiv="X-Frame-Options" content="deny">
Más ejemplos:
X-XSS-Protection
- X-XSS-Protection: 0
- X-XSS-Protection: 1
- X-XSS-Protection: 1; mode=block
- X-XSS-Protection: 1; report= (Solo Chromium)
X-Content-Type-Options
- X-Content-Type-Options: nosniff
Header set X-Content-Type-Options nosniff
Nginx
add_header X-Content-Type-Options nosniff;
X-Permitted-Cross-Domain-Policies
- none -> no policy is allowed
- master-only -> allow only the master policy
- all -> everything is allowed
- by-content-only -> Allow only a certain type of content. Example – XML
- by-ftp-only -> applicable only for an FTP server
Header set X-Permitted-Cross-Domain-Policies "none"Nginx
add_header X-Permitted-Cross-Domain-Policies master-only;
Expect-CT
- max-age -> En segundos, durante cuánto tiempo el navegador debe almacenar en caché la política.
- enforce -> Una directiva opcional para hacer cumplir la política.
- Report-uri - > Browser para enviar un informe a la URL especificada cuando no se recibe una transparencia de certificado válida.
Header set Expect-CT 'enforce, max-age=43200, report-uri="https://elhacker.net/report"'
Nginx
add_header Expect-CT 'max-age=60, report-uri="https://elhacker.net/report"';
Feature Policy
El encabezado Feature-Policy le dice a los navegadores modernos qué características del navegador están permitidas. Por ejemplo, si desea asegurarse de que solo se permitan las funciones de geolocalización y vibración, puede configurar el encabezado Feature-Policy en consecuencia. También le permite controlar el origen de cada característica especificada. Aquí hay un ejemplo que muestra cómo agregar un encabezado Feature-Policy a través de Apache.Permite a los propietarios de sitios habilitar y deshabilitar ciertas funciones de la plataforma web en sus propias páginas y en las que incorporan. Poder restringir las funciones que su sitio puede usar es realmente útil, pero poder restringir las funciones que los sitios que insertas puede ser una protección aún mejor.
Directivas
- accelerometer
- autoplay
- battery
- geolocation
- midi
- notifications
- push
- sync-xhr
- microphone
- camera
- magnetometer
- gyroscope
- speaker
- vibrate
- fullscreen
- payment (PaymentRequest)
Acciones
- *
- 'self'
- 'none'
- 'src'
- origin(s)
Header set Feature-Policy "geolocation 'self'; vibrate 'none'"
Más información
- https://github.com/w3c/webappsec-permissions-policy
- https://w3c.github.io/webappsec-permissions-policy/
Cross-Origin Opener Policy (COOP)
Cross-Origin Opener Policy (COOP)COOP está disponible en Chrome 83 y Firefox 79.
Directivas
- unsafe-none (por defecto)
- same-origin-allow-popups
- same-origin
Cross-Origin-Opener-Policy: same-origin
COEP: Cross Origin Embedder Policy
Cross-Origin-Embedder-Policy: require-corp
HTTP Strict Transport Security (HSTS)
- max-age
- includeSubDomains
- preload
# Only connect to this site via HTTPS for the two years (recommended)
Strict-Transport-Security: max-age=63072000
Testing SSL/TLS with SSL Breacher
- HeartBleed
- ChangeCipherSpec Injection
- BREACH
- BEAST
- Forward Secrecy support
- RC4 support
- CRIME & TIME (If CRIME is detected, TIME will also be reported)
- Lucky13
- HSTS: Check for implementation of HSTS header
- HSTS: Reasonable duration of MAX-AGE
- HSTS: Check for SubDomains support
- Certificate expiration
- Insufficient public key-length
- Host-name mismatch
- Weak/Insecure Hashing Algorithm (MD2, MD4, MD5, SHA1)
- SSLv2 support
- Weak ciphers check (Low, Anon, Null, Export)
- Null Prefix in certificate
- HTTPS Stripping
- Surf Jacking
- Non-SSL elements/contents embedded in SSL page
- Cache-Control
Requerimientos SSL Labs (2014):
- Support for TLS 1.2 is now required to get an A. If this protocol version is not supported, the grade is capped at B. Given that, according to SSL Pulse, TLS 1.2 is supported by only about 20% servers, we expect this change to affect a large number of assessments.
- Keys below 2048 bits are now considered weak, with the grade capped at B.
- Keys below 1024 bits are now considered insecure, and given an F.
- MD5 certificate signatures are now considered insecure, and given an F.
- We introduce two new grades, A+ and A-, to allow for finer grading. This change allows us to reduce the grade slightly, when we don’t want to reduce it to a B, but we still want to show a difference. More interestingly, we can now reward exceptional configurations.
- We also introduce a concept of warnings; a server with good configuration, but with one ore more warnings, is given a reduced grade A-.
- Servers that do not support Forward Secrecy with our reference browsers are given a warning.
- Servers that do not support secure renegotiation are given a warning.
- Servers that use RC4 with TLS 1.1 or TLS 1.2 protocols are given a warning. This approach allows those who are still concerned about BEAST to use RC4 with TLS 1.0 and earlier protocols (supported by older clients), but we want them to use better ciphers with protocols that are not vulnerable to BEAST. Almost all modern clients now support TLS 1.2.
- Servers with good configuration, no warnings, and good support for HTTP Strict Transport Security (long
max-age
is required), are given an A+.
Configuración en Nginx
Ten en cuenta que no debes copiar-pegar las directivas de seguridad directamente en tu fichero de configuración sin antes entender lo que realmente estás haciendo o añadiendo. Debes antes consultar la documentación oficial para ver la compatibilidad con tu versión o las posibles notas de funcionamiento.Directivas para añadir en el fichero de configuración de Nginx
Configuración SSL
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256
EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4
EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
o bien:
ssl_prefer_server_ciphers On;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3
DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5;
Añadir directiva cabeceras:
add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "default-src 'self';";
HSTS (HTTP Strict Transport Security (HSTS))
3 meses edadEn configuración Apache httpd.conf para conseguir un A+ en SSL Test de Qualysadd_header Strict-Transport-Security max-age=7776000;
Header always add Strict-Transport-Security "max-age=15768000"
Header always set Strict-Transport-Security "max-age=31536000"
Según Mozilla
# HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
Header always set Strict-Transport-Security "max-age=63072000"
SSL Qualys Lab Test:
- This server supports TLS 1.3.
- HTTP Strict Transport Security (HSTS) with long duration deployed on this server.
- DNS Certification Authority Authorization (CAA) Policy found for this domain.
DNS Certification Authority Authorization (CAA)
1) Añade una entrada DNS del tipo CAA en la gestión de DNS de cPanel:
Zone Editor => Administrar => Agregar Registro => Add CAA Record.
Esta entrada debe tener los siguientes parámetros:
Tipo | Valor |
Domain | elhacker.net. (cambia tu dominio.com por tu dominio real, con un punto al final) |
TTL | 14400 |
Record Type | CAA |
Flags | 0 |
Tag | issue |
sslissuer.tld | letsencrypt.org |
0 issue letsencrypt.org
bind (named.conf)
elhacker.net. IN CAA 0 issue "letsencrypt.org"elhacker.net. IN CAA 0 iodef "mailto:webmaster@elhacker.net"
- issue Permite autorizar explícitamente a una única entidad de certificación a emitir certificados para ese dominio o subdominio. De ser necesario autorizar a más de una, se deberán crear múltiples registros CAA.
- issuewild Permite autorizar explícitamente a una única entidad de certificación a emitir certificados de comodín (wildcard) para ese dominio/subdominio. Ningún otro certificado que no sea wildcard podrá ser emitido por esa entidad, salvo que esté expresamente configurado.
- iodef Especifica a dónde deben enviarse los reportes de intentos de emisión de certificados por una entidad no autorizada (El formato debe ser “mailto:webmaster@elhacker.net”).
Configuración en Apache (Fortificando, Hardening Apache)
Directivas para añadir en el fichero de configuración httpd.confHTTP Request Methods
Default apache configuration support OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT method in HTTP 1.1 protocol.
deny from all
Web Application Security
Disable Trace HTTP Request
TraceEnable off
Set cookie with HttpOnly and Secure flag
En PHP
ini_set("session.cookie_httponly",1); // solo funciona si usamos PHP >= 5.2.0.
ini_set('session.cookie_secure',1);
Requiere mod_headers
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Clickjacking Attack
Opciones:
X-Frame-Options
DENY, SAMEORIGIN, ALLOW-URL url
Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff
Cross Site Scripting (XSS)
Opciones- 0 --> XSS filter disabled
- 1 --> XSS filter enabled and sanitized the page if attack detected
- 1;mode=block --> XSS filter enabled and prevented rendering the page if attack detected
- 1;report=http://example.com/report_URI --> XSS filter enabled and reported the violation if attack detected
Header set X-XSS-Protection "1; mode=block"Nginx
add_header X-XSS-Protection "1; mode=block";
HTTP Strict Transport Security (HSTS)
Opciones:
- max-age -> Duration (in seconds) to tell a browser that requests are available only over HTTPS.
- includeSubDomains ->The configuration is valid for the subdomain as well.
- preload -> Use if you would like your domain to be included in the HSTS preload list
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"Nginx
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
Configuración SSL
SSLProtocol all -SSLv3
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3
DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5
SSLCompression Off
nginx
# modern configuration nginx
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
# intermediate configuration nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# old configuration nginx
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;
ssl_prefer_server_ciphers on;
OCSP Stapling
SSLUseStapling OnSSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
nginx
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
- SSLUseStapling --> El "grapado" OCSP alivia el cliente de consulta de la respuesta OCSP por sí solo, pero hay que señalar que con la especificación RFC 6066, CertificateStatus la respuesta del servidor sólo puede incluir una respuesta OCSP para un solo certificado. Para los certificados de servidor con certificados CA intermedios en su cadena (el caso típico de hoy en día), grapado en su implementación actual, por tanto, sólo alcanza parcialmente el objetivo declarado de "ida y vuelta y el ahorro de recursos" - véase también el RFC 6961 (TLS Título Múltiple de estado de extensión).
- SSLStaplingCache --> Configura la memoria caché que se utiliza para almacenar las respuestas OCSP, que sean incluidos en el acuerdo de TLS si está habilitada la SSLUseStapling. La configuración de una memoria caché es obligatorio para el grapado OCSP. Con la excepción de none y nonenotnull, los mismos tipos de almacenamiento que son compatibles con SSLSessionCache.
Todo junto fichero configuración Apache httpd.conf
CoreDumpDirectory /tmp
# bajar timeout, por defecto 300
Timeout 80
# Maximum size of the request body.
#LimitRequestBody 10000
# Maximum number of request headers in a request.
LimitRequestFields 40
# Maximum size of request header lines.
LimitRequestFieldSize 4094
# Maximum size of the request line.
#request failed: URI too long (longer than 500)
#LimitRequestLine 500
#nuevo antidos
#RLimitCPU 10 20
#RLimitCPU 100 100
#RLimitMEM 10000000 10000000
#RLimitNPROC 25 25
# esconder versión Apache, aka version banner
ServerTokens Prod
#seguridad
# http://httpd.apache.org/docs/2.2/mod/core.html#traceenable
TraceEnable off
#seguridad
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
#https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
Header always append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options: "nosniff"
Header always set Referrer-Policy "origin"
Header always set Feature-Policy "geolocation 'self'; vibrate 'none'"
#activar HSTS
Header always add Strict-Transport-Security "max-age=15768000"
# https ssl
SSLRandomSeed startup file:/dev/urandom 1024
# enable SSLv3 and TLSv1, but not SSLv2
#SSLProtocol all -SSLv2
#SSLProtocol -ALL +SSLv3 +TLSv1
# https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-#secrecy
# new 2014
# https://www.ssllabs.com/ssltest/analyze.html?d=foro.elhacker.net
# Grade A, antes Grade F
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
#SSLCipherSuite ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+TLSv1 SLv2:+EXP:+eNULL
# mozilla
# https://wiki.mozilla.org/Security/Server_Side_TLS
# SSLCipherSuite AES256+EECDH:AES256+EDH:!aNULL:!eNULL
#
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS"
Configuración segura para el servidor web Lighttpd
ssl.honor-cipher-order = "enable" ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH" ssl.use-compression = "disable" setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload", "X-Frame-Options" => "DENY", "X-Content-Type-Options" => "nosniff" ) ssl.use-sslv2 = "disable" ssl.use-sslv3 = "disable"
Fuentes:
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.