Как фильтровать незащищенные соединения TLS1.1 и ниже в балансировщике нагрузки

Просмотр категорий

Как фильтровать незащищенные соединения TLS1.1 и ниже в балансировщике нагрузки

2 min read

Главная #

Службы SSL становятся все более важными, и нам необходимо убедиться, что мы используем новые версии протокола TLS и защищенные шифры. Но в реальной жизни, когда у наших сервисов есть разные типы клиентов с разными типами устройств, нам необходимо обеспечить подключение к нашим защищенным сервисам.

Таким образом, может быть полезно определить, какие клиенты подключаются (или пытаются подключиться) к нашим службам SSL. В этом случае вы можете использовать инструмент ТСРйитр для балансировщика нагрузки или любого сервера Linux.

Выполнение tcpdump с фильтром SSL #

Команда ТСРйитр в балансировщике нагрузки или на сервере Linux позволяет фильтровать по полям TCP, поэтому нам нужно сопоставить байты в соответствии с номером версии пакетов SSL, найденных в 12-й позиции. Кроме того, поскольку для SSLv2, SSLv3, TLS1.0 или TLS1.1 могут быть разные позиции, следует использовать комбинацию из нескольких фильтров:

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))"

Команда будет ждать ручной отмены команды с помощью Crtl+C.

Тестирование SSL-фильтра #

Чтобы проверить SSL-соединение с сервером с определенным протоколом SSL, вы можете использовать OpenSSL на стороне клиента, как показано ниже, при успешном подключении.

клиент:~$ openssl s_client -connect 192.168.56.10:443 -tls1 CONNECTED(00000003) [...] --- Цепочка сертификатов [...] --- Сертификат сервера -----НАЧАТЬ СЕРТИФИКАТ ---- - MIID8DCCAtigAwIBAgIJAJ22cPNVcSZYMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD VQQGEwJFUzEOMAwGA1UECAwFU3BhaW4xDjAMBgNVBAcMBVNwYWluMRMwEQYDVQQK DApaZXZlbmV0IFNMMRswGQYDV QQLDBJUZWxlY29tbXVuaWNhdGlvbnMxCjAIBgNV [...]

Приходится менять сервер и желаемый порт. Также вы можете изменить параметр -tls1 для желаемого протокола, который будет использоваться.

Интерпретация результатов #

На стороне сервера вы увидите что-то вроде этого:

root@noid-ee-01:~$ tcpdump [...] tcpdump: подробный вывод подавлен, используйте -v или -vv для прослушивания полного декодирования протокола на любом типе канала LINUX_SLL (подготовленный Linux), размер захвата 262144 байта 12 :20:46.984131 ИП 192.168.56.1.58286 > 192.168.56.10.444: Флаги [P.], seq 1580373103:1580373207, ack 4195613909, win 502, длина 104 12:20:46.988648 IP 192.168.56.10.444 > 192.168.56.1.58286: Флаги [P.], seq 1:1414, подтверждение 104, выигрыш 29, длина 1413 [...]

IP-адрес 192.168.56.1 определяется как незащищенное соединение с сервисом 192.168.56.10.444 на сервере.

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs