Cómo filtrar conexiones TLS1.1 e inferiores no seguras en el equilibrador de carga

Ver Categorías

Cómo filtrar conexiones TLS1.1 e inferiores no seguras en el equilibrador de carga

Introducción #

Los servicios SSL son cada vez más críticos y debemos asegurarnos de que utilizamos versiones más nuevas del protocolo TLS y cifrados seguros. Pero, en la vida real, donde nuestros servicios tienen diferentes tipos de clientes con diferentes tipos de dispositivos, debemos garantizar la conectividad a nuestros servicios seguros.

Por lo tanto, podría ser útil identificar qué clientes se conectan (o intentan conectarse) a nuestros servicios SSL. En ese caso, puede utilizar la herramienta tcpdump para un balanceador de carga o cualquier servidor Linux.

Ejecutando tcpdump con filtro SSL #

El comando tcpdump en el balanceador de carga o servidor Linux permite filtrar por campos TCP, por lo que debemos hacer coincidir los bytes según el número de versión de los paquetes SSL que se encuentran en la posición 12. Además, como se pueden encontrar diferentes posiciones para SSLv2, SSLv3, TLS1.0 o TLS1.1, se debe utilizar una combinación de varios filtros:

root@noid-ee-01:~$ tcpdump -i cualquiera -n "(((tcp[((tcp[12] & 0xf0) >> 2)] = 0x14) || (tcp[((tcp[12] & 0xf0) >> 2)] = 0x15) || (tcp[((tcp[12] & 0xf0) >> 2)] = 0x17)) && (tcp[((tcp[12] & 0xf0) >> 2 )+1] = 0x03 && (tcp[((tcp[12] y 0xf0) >> 2)+2] < 0x03))) || (tcp[((tcp[12] y 0xf0) >> 2)] = 0x16) && (tcp[((tcp[12] & 0xf0) >> 2)+1] = 0x03) && (tcp[((tcp[12] & 0xf0) >> 2)+9] = 0x03) && (tcp[((tcp[12] y 0xf0) >> 2)+10] < 0x03) || (((tcp[((tcp[12] y 0xf0) >> 2)] < 0x14) || (tcp [((tcp[12] y 0xf0) >> 2)] > 0x18)) && (tcp[((tcp[12] y 0xf0) >> 2)+3] = 0x00) && (tcp[((tcp[ 12] & 0xf0) >> 2)+4] = 0x02))"

El comando estará esperando hasta la cancelación manual del comando con Crtl+C.

Probando el filtro SSL #

Para probar la conexión SSL con un servidor que utiliza un protocolo SSL determinado, puede usar openssl en el lado del cliente, como se muestra a continuación con una conexión exitosa.

cliente:~$ openssl s_client -connect 192.168.56.10:443 -tls1 CONNECTED(00000003) [...] --- Cadena de certificados [...] --- Certificado de servidor -----COMENZAR CERTIFICADO---- - MIID8DCCAtigAwIBAgIJAJ22cPNVcSZYMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD VQQGEwJFUzEOMAwGA1UECAwFU3BhaW4xDjAMBgNVBAcMBVNwYWluMRMwEQYDVQQK DApaZXZlbmV0IFNMMRswGQYDVQQLDBJUZWxl Y29tbXVuaWNhdGlvbnMxCjAIBgNV [...]

Debe cambiar el servidor y el puerto deseados. También puede cambiar el parámetro -tls1 para especificar el protocolo que desea utilizar.

Interpretando los resultados #

En el lado del servidor, verás algo como esto:

root@noid-ee-01:~$ tcpdump [...] tcpdump: salida detallada suprimida, use -v o -vv para escuchar la decodificación completa del protocolo en cualquier LINUX_SLL de tipo enlace (preparado para Linux), tamaño de captura 262144 bytes 12 :20:46.984131IP 192.168.56.1.58286 > 192.168.56.10.444: Banderas [P.], seq 1580373103:1580373207, ack 4195613909, win 502, longitud 104 12:20:46.988648 IP 192.168.56.10.444 > 192.168.56.1.58286: Banderas [P.], 1:1414, reconocimiento 104, victoria 29, longitud 1413 [...]

La dirección IP 192.168.56.1 se detecta como una conexión no segura al servicio 192.168.56.10.444 en el servidor.

📄 Descarga este documento en formato PDF #

    EMAIL: *

    Desarrollado por BetterDocs