miércoles, 13 de noviembre de 2019

Deshabilitar TLS 1.0 y TLS 1.1 en SAP



Cómo deshabilitar TLS 1.0 y TLS 1.1 en productos de SAP como SAP Web Dispatcher.



Si estás leyendo estas líneas, probablemente estés a cargo de configurar el Web Dispatcher de SAP en tu compañía y busques cómo limitar la versión de TLS que acepta el servidor a TLS 1.2 para superar una auditoría de seguridad sin que salten alertas :)

Como ya comenté, a partir de marzo de 2020, TLS 1.0 y TLS 1.1 dejarán de ser soportados por los navegadores web, por lo que deja de tener sentido soportar esos protocolos de encriptación en el Web Dispatcher de SAP, a menos que tengamos la certeza de que servimos contenido a usuarios con PCs, sistemas operativos y/o navegadores antiguos.


Opciones de configuración



En SAP, se pueden configurar los parámetros ssl/ciphersuites y ssl/client_ciphersuites usando combinaciones (sumas) de los siguientes valores:

Valor     Descripción

1            "BC" (aceptar SSL Version 2.0 CLIENT-HELLO / SSLv2Hello para TLSv1.x Handshake)
2            "BEST" (activar TLS más alto disponible)
4            "NO_GAP" (sin saltos entre protocolos TLS)
16           Permitir el envío ciego de un certificado de cliente (5.5.5pl36+ and all CCL 8.x.x)
32           "Strict protocol version configuration" (no habilitare TLSv1.0)
64            SSLv3
128          TLSv1.0
256          TLSv1.1 (solo con CommonCryptoLib (CCL) 8.4.31 o superior)
512          TLSv1.2 (solo con CommonCryptoLib (CCL) 8.4.31 o superior)

Con los valores predeterminados, el lado servidor del sistema SAP tiene todas las versiones de los protocolos SSL y TLS (más BC) habilitadas:

TLSv1.0 + SSLv3 + BC = 128 + 64 + 1 = 193
TLSv1.2 + TLSv1.1 + TLSv1.0 + SSLv3 + BC = 512 + 256 + 128 + 64 + 1 = 961

Los valores predeterminados para el lado del cliente solo permiten SSLv3 + TLSv1.0:

TLSv1.0 + SSLv3 = 128 + 64 = 192


Configurando solo TLS 1.2



Para limitar las versiones de TLS en el lado servidor a TLS 1.2 solamente, debemos configurar los cipher suites en el archivo DEFAULT.PFL (se pueden configurar en DEFAULT.PFL o en el archivo de instancia, pero SAP recomienda configurarlos en DEFAULT.PFL).

Para solo atender peticiones que lleguen con TLS 1.2 debemos usar estas líneas:

ssl/ciphersuites = 545:PFS:HIGH::EC_P256:EC_HIGH
ssl/client_ciphersuites = 560:PFS:HIGH::EC_P256:EC_HIGH
icm/HTTPS/client_sni_enabled = TRUE
ssl/client_sni_enabled = TRUE

Los valores 545 y 560 salen de:

TLSv1.2 + STRICT_PROTOCOL_VERSIONS + BC = 512 + 32 + 1 = 545
TLSv1.2 + STRICT_PROTOCOL_VERSIONS + BLIND_CLIENT_CERTS = 512 + 32 + 16 = 560

Una vez aplicados los cambios, reiniciar instancia para aplicar la configuración.


Fuentes:

https://launchpad.support.sap.com/#/notes/510007
https://launchpad.support.sap.com/#/notes/2384290
0

miércoles, 6 de noviembre de 2019

Deshabilitar TLS 1.0 y TLS 1.1 en IIS



Cómo deshabilitar TLS 1.0 y TLS 1.1 en IIS en un Windows Server.



Expliqué anteriormente cómo deshabilitar TLS 1.0 y TLS 1.1 en NGINX y cómo deshabilitar TLS 1.0 y TLS 1.1 en Apache. A continuación, explicaré cómo hacer lo propio en IIS sobre Windows Server. Recordemos que estos protocolos dejarán de estar soportados por los navegadores en marzo de 2020, por lo que a partir de esa fecha dejará de tener sentido soportarlos en nuestros servidores web.

El registro de Windows contiene diferentes claves por cada protocolo de encriptación que este sistema acepta en modo servidor. Estas claves se almacenan en:

HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders \SCHANNEL\Protocols

Habitualmente, esta clave contiene las siguientes subclaves:

• SSL 2.0
• SSL 3.0
• TLS 1.0
• TLS 1.1
etc.

Cada una de estas claves contiene una entrada que indica a la máquina si acepta dicho protocolo o no.

Cualquiera de estos protocolos se puede deshabilitar creando un nuevo valor con una subclave "Server" y ubicando dentro una clave de tipo DWORD llamada Enabled con valor 0:



Veamos cómo deshabilitar TLS 1.0 paso a paso:

1. Hacer clic en Inicio, Ejecutar, escribir "regedit" y pulsar enter.
2. En el Editor del Registro, buscar la siguiente clave:

HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders \SCHANNEL\Protocols\

3. Botón derecho del mouse encima, clic en Agregar Clave y escribir TLS 1.0 (si esta no existe)
4. Crear nueva sub-clave llamada Server.
5. Crear tipo de datos DWORD y titularlo Enabled.
6. Escribir 0 como valor de la entrada Enabled.

Repetir los pasos para TLS 1.1 y al finalizar, reiniciar la máquina.

Una vez reiniciada la máquina, esta ya no negociará con TLS 1.0 ni TLS 1.1 en el lado servidor.


Fuentes:

https://support.microsoft.com/es-es/help/187498/how-to-disable-pct-1-0-ssl-2-0-ssl-3-0-or-tls-1-0...
https://docs.microsoft.com/es-es/windows-server/security/tls/tls-registry-settings
0

miércoles, 30 de octubre de 2019

Deshabilitar TLS 1.0 y TLS 1.1 en NGINX



Cómo deshabilitar TLS 1.0 y TLS 1.1 en un servidor que esté ejecutando NGINX para servir contenido.



Transport Layer Security (TLS) es un protocolo de encriptación usado encima de la capa HTTP para generar conexiones HTTPS, es decir, conexiones seguras vía navegador web entre un cliente y un servidor (entre otros usos). TLS es el sucesor del protocolo SSL. A su vez, TLS ha ido evolucionando en diferentes versiones desde el año 1999 hasta la actualidad: TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3...

Compañías de la talla de Microsoft, Google o Mozilla han declarado que dejarán de ofrecer soporte para TLS 1.0 y TLS 1.1 en marzo de 2020, por lo que si tenemos un servidor web corriendo NGINX (tanto en modo servidor como en modo Reverse Proxy), sería recomendable deshabilitarlos, puesto que dejarán de ser un estándar. Las conexiones HTTPS se podrán seguir realizando con TLS 1.2 o superior.


Backup



Antes de deshabilitar TLS 1.0 y TLS 1.1 en una instalación de NGINX, deberíamos empezar por realizar un backup de la configuración actual de NGINX que se esté ejecutando en el servidor:

HOST# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup


Configuración general



Para que NGINX solo negocie con TLS 1.2 o superior en todos los dominios que apuntan a él, debemos editar la directiva "server" general del servidor en el archivo /etc/nginx/nginx.conf y añadir (o modificar) la opción ssl_protocols para que quede tal que así:

server { listen 443 ssl http2; ... ssl_protocols TLSv1.2 TLSv1.3; }

Si ya disponemos de la directiva ssl_protocols, simplemente debemos eliminar los valores TLSv1 y TLSv1.1.


Configuración independiente de un dominio



Puede que se de el caso de que usemos NGINX como Reverse Proxy y queramos que un dominio determinado sea accesible con TLS 1.0, por ejemplo, porque se conectan a él máquinas que tienen un sistema operativo antiguo embedido y solo pueden negociar conexiones HTTPS con TLSv1.

Para este tipo de casos, podemos configurar la entrada de tipo "server" que agrupa la configuración del dominio en cuestión (por ejemplo, dominio.net) para que este dominio funcione con TLS 1.0 de forma independiente a la configuración general. Para ello, especificamos en el bloque server del dominio los ssl_protocols que queremos que acepte (TLSv1, TLSv1.1, TLSv1.2, etc.):

server { listen 443 ssl http2; server_name www.dominio.net dominio.net; ... ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; }


Aplicar cambios



Una vez configurados los protocolos, solo queda recargar la configuración de NGINX:

HOST# nginx -s reload

A partir de este momento, si realizamos un test de conexión HTTPS (con Qualys, nmap, etc.), observaremos que el servidor ya no negocia con TLS 1.0 ni TLS 1.1.
0

miércoles, 23 de octubre de 2019

Deshabilitar TLS 1.0 y TLS 1.1 en Apache



Cómo deshabilitar TLS 1.0 y TLS 1.1 en un servidor web Apache.

Microsoft, Google y Mozilla han declarado que dejarán de ofrecer soporte para TLS 1.0 y TLS 1.1 en marzo de 2020 en sus navegadores web (Edge, Chrome y Firefox, respectivamente).

Cuando accedemos a una web por HTTPS, cliente y servidor negocian la encriptación con un protocolo que ambos soporten (TLS 1.0, TLS 1.2, TLS 1.3, etc.). A partir de marzo de 2020, TLS 1.1 ya no será aceptado como protocolo válido por los navegadores web de las compañías mencionadas.

Aprovechando que los navegadores web actuales ya no podrán usar TLS 1.1 o inferior, podemos aprovechar para deshabilitar estos protocolos de encriptación HTTPS obsoletos e inseguros en nuestros servidores web. Por un lado ganaremos en seguridad; por otro lado perderemos en compatibilidad con ordenadores que usen navegadores antiguos (NOTA: nadie debería usar navegadores antiguos).

Apache, en su rama actual 2.4.x, soporta TLS 1.0 y TLS 1.1 por defecto.

Para deshabilitar estos protocolos, debemos editar el archivo ssl-global.conf:

HOST# vi /etc/apache2/ssl-global.conf

En este archivo, encontraremos la siguiente sección:

# SSL protocols # Supporting TLS only is adequate nowadays SSLProtocol all -SSLv2 -SSLv3

Por defecto, Apache ya no acepta encriptación SSL, solo TLS.


Opciones



Para dejar de aceptar TLS 1.0 y TLS 1.1 en Apache, deberemos cambiar la directiva SSLProtocol all. Al modificarla, podemos usar uno de estos dos métodos, segun si queremos aceptar o rechazar cipher suites en nuestro servidor web.

Método 1

Con el método 1, indicamos al servidor web qué protocolos no acepta. Es decir, el servidor aceptará todos aquellos cipher suites que no estén en la lista.

Para quitar protocolos de encriptación, debemos usar el signo "-" precediendo el nombre del protocolo:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1.0 -TLSv1.1


Método 2

Con el método 2 indicamos solo aquellos cipher suites que sí acepta el servidor.

Para permitir solo ciertos protocolos, los indicamos explícitamente:

SSLProtocol all TLSv1.2 TLSv1.3


Conclusión



Personalmente, prefiero el método 1, ya que de este modo, podemos ir especificando los protocolos que van quedando obsoletos a medida que vayan quedando obsoletos. Bajo mi punto de vista, es más fácil estar al día sobre qué protocolos se "deprecan" que sobre qué protocolos se lanzan.
0

miércoles, 16 de octubre de 2019

Averiguar versión de VMWare ESXi de un host



Cómo averiguar la versión y el build number de VMWare ESX/ESXi que está corriendo un host.



Puede que no recordemos qué versión de VMWare ESXi se está ejecutando sobre un host y necesitemos averiguarlo para ver si cierta versión de un sistema operativo está soportada en esa versión. O puede que simplemente queramos saber la versión para mantenerla en nuestra documentación interna.

Para averiguar la versión de VMWare que se ejecuta en un host determinado, existen dos formas:

- Vía SSH
- Vía vSphere


SSH



Para ver la versión de VMWare que se está ejecutando en un host por SSH, deberemos conectarnos al host vía SSH y ejecutar el siguiente comando:

[root@esxigs:~] vmware -v VMware ESXi 6.0.0 build-6921384

El resultado es la versión y build number de ESXi que está corriendo en el host.


vSphere



Para ver la versión de VMWare mediante vSphere Web Client, deberemos conectarnos al apartado web del vSphere y seguir los siguientes pasos:

1. Ir a Home.
2. Clicar Hosts and Clusters.
3. Abrir el datacenter.
4. Expandir el cluster.
5. Clicar sobre el host.
6. Clicar sobre Summary.
7. En el apartado "Configuration" se encuentra el campo "ESX/ESXi Version":




Fuentes:

https://kb.vmware.com/s/article/1022196
0