Comment filtrer les connexions TLS1.1 et inférieures non sécurisées sur l'équilibreur de charge

Voir les catégories

Comment filtrer les connexions TLS1.1 et inférieures non sécurisées sur l'équilibreur de charge

2 min de lecture

Introduction #

Les services SSL sont de plus en plus critiques et nous devons nous assurer que nous utilisons des versions plus récentes du protocole TLS et des chiffrements sécurisés. Mais, dans la vie réelle, où nos services s'adressent à différents types de clients avec différents types d'appareils, nous devons garantir la connectivité à nos services sécurisés.

Il pourrait donc être utile d'identifier quels clients se connectent (ou tentent de se connecter) à nos services SSL. Dans ce cas, vous pouvez utiliser l'outil tcpdump pour un équilibreur de charge ou n'importe quel serveur Linux.

Exécuter tcpdump avec le filtre SSL #

La commande tcpdump dans l'équilibreur de charge ou le serveur Linux permet de filtrer par champs TCP, nous devons donc faire correspondre les octets en fonction du numéro de version des paquets SSL trouvés en 12ème position. De plus, comme différentes positions peuvent être trouvées pour SSLv2, SSLv3, TLS1.0 ou TLS1.1, une composition de plusieurs filtres doit être utilisée :

root@noid-ee-01 :~$ tcpdump -i any -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] & 0xf0) >> 2)+2] < 0x03))) || (tcp[((tcp[12] & 0xf0) >> 2)] = 0x16) && (tcp[((tcp[12] & 0xf0) >> 2)+1] = 0x03) && (tcp[((tcp[12] & 0xf0) >> 2)+9] = 0x03) && (tcp[((tcp[12] & 0xf0) >> 2)+10] < 0x03) || (tcp[((tcp[12] & 0xf0) >> 2)] < 0x14) || (tcp [((tcp[12] & 0xf0) >> 2)] > 0x18)) && (tcp[((tcp[12] & 0xf0) >> 2)+3] = 0x00) && (tcp[((tcp[ 12] & 0xf0) >> 2)+4] = 0x02))"

La commande attendra l'annulation manuelle de la commande avec Crtl+C.

Test du filtre SSL #

Pour tester la connexion SSL sur un serveur avec un certain protocole SSL, vous pouvez utiliser openssl côté client, comme illustré ci-dessous avec une connexion réussie.

client:~$ openssl s_client -connect 192.168.56.10:443 -tls1 CONNECTED(00000003) [...] --- Chaîne de certificats [...] --- Certificat de serveur -----BEGIN CERTIFICATE---- - MIID8DCCAtigAwIBAgIJAJ22cPNVcSZYMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD VQQGEwJFUzEOMAwGA1UECAwFU3BhaW4xDjAMBgNVBAcMBVNwYWluMRMwEQYDVQQK DApaZXZlbmV0IFNMMRswGQYDVQQLDBJUZ WxlY29tbXVuaWNhdGlvbnMxCjAIBgNV [...]

Devoir changer de serveur et de port souhaité. Vous pouvez également modifier le paramètre -tls1 pour que le protocole souhaité soit utilisé.

Interpréter les résultats #

Côté serveur, vous verrez quelque chose comme ceci :

root@noid-ee-01:~$ tcpdump [...] tcpdump : sortie détaillée supprimée, utilisez -v ou -vv pour une écoute de décodage complet du protocole sur n'importe quel LINUX_SLL de type lien (cuit par Linux), taille de capture 262144 octets 12 :20:46.984131IP 192.168.56.1.58286 > 192.168.56.10.444: Flags [P.], seq 1580373103:1580373207, ack 4195613909, victoire 502, longueur 104 12:20:46.988648 IP 192.168.56.10.444 > 192.168.56.1.58286 : Flags seq 1:1414, accusé de réception 104, victoire 29, longueur 1413 [...]

L'adresse IP 192.168.56.1 est détecté comme une connexion non sécurisée au service 192.168.56.10.444 dans le serveur.

📄 Téléchargez ce document au format PDF #

    E-MAIL: *

    Sécurité accrue. Efforts réduits. Succès durable. Meilleurs Docs