Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: senser в Feb 15, 2016, 19:44



Титла: openconnect в Debian sid - TLS fatal alert
Публикувано от: senser в Feb 15, 2016, 19:44
Здравейте,

Имам проблем с openconnect - версия 7.06-2+b2 в текущия Debian sid. Ползвам го чрез плъгина за network-manager в gnome, но това е без значение, защото и при директно извикване резултатът е същия, а  именно:

Код
GeSHi (Bash):
  1. POST https://*.*.*.*/
  2. Attempting to connect to server *.*.*.*:443
  3. SSL negotiation with *.*.*.*
  4. SSL connection failure: A TLS fatal alert has been received.
  5. Failed to open HTTPS connection to *.*.*.*
  6.  

Ползвайки клиентът на openssl, за да тествам отсрещната страна (някакво CISCO, до което нямам достъп) получавам следното:

Код
GeSHi (Bash):
  1. No client certificate CA names sent
  2. ---
  3. SSL handshake has read 703 bytes and written 497 bytes
  4. ---
  5. New, TLSv1/SSLv3, Cipher is RC4-MD5
  6. Server public key is 1024 bit
  7. Secure Renegotiation IS NOT supported
  8. Compression: NONE
  9. Expansion: NONE
  10. No ALPN negotiated
  11. SSL-Session:
  12.    Protocol  : TLSv1
  13.    Cipher    : RC4-MD5
  14.    Session-ID: 8529A69EC827DD492E4B0036A2FF3FC7F7FE4521867705BBBBAFBEE54D021E3B
  15.    Session-ID-ctx:
  16.    Master-Key: 9FCE53E33CC4B33D308768E038DFFEE757F1F83B8249B0B1CBFFA3182F75AD525471BD66336366328993C95736C2EA78
  17.    Key-Arg   : None
  18.    PSK identity: None
  19.    PSK identity hint: None
  20.    SRP username: None
  21.    Start Time: 1455557262
  22.    Timeout   : 300 (sec)
  23.    Verify return code: 18 (self signed certificate)
  24. ---
  25.  

В същото време, при преглеждане на мрежовия трафик (wireshark), когато се опитвам да се закача с openconnect виждам това в SSL Client HELLO (ssl.handshake.ciphersuites):

Код:
Cipher Suites (54 suites):
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
....

Не ги изреждам всичките, но по-важното е, че липсва RC4-MD5.

Ако се ориентирам правилно, CISCO-то отсреща предлага шифър, който openconnect не поддържа и това осира връзката. Въпросният шифър е набеден за несигурен и затова сигурно openconnect не го ползва, но все пак дали няма начин да го накарам да го "хареса" отново, защото нещата си работеха нормално допреди няколко дни. Предполагам е минал ъпдейт, който е променил openconnect.
Не можах и да се ориентирам какво ползва openconnect - openssl, gnutls ...


Титла: Re: openconnect в Debian sid - TLS fatal alert
Публикувано от: neter в Feb 16, 2016, 00:30
Не ги изреждам всичките, но по-важното е, че липсва RC4-MD5.
Ако се ориентирам правилно, CISCO-то отсреща предлага шифър, който openconnect не поддържа и това осира връзката.
Да, би трябвало това да ти е проблемът.

Не можах и да се ориентирам какво ползва openconnect - openssl, gnutls ...
Зависи с кое е компилирано, поддържа и двете, но ако ползваш пакета от хранилищата, то би трябвало да ползва gnutls. Можеш да провериш с команда
Код:
openconnect --version

Въпросният шифър е набеден за несигурен и затова сигурно openconnect не го ползва, но все пак дали няма начин да го накарам да го "хареса" отново, защото нещата си работеха нормално допреди няколко дни. Предполагам е минал ъпдейт, който е променил openconnect.
Работата с шифрите не е действие на openconnect, а на gnutls/openssl. Малко ми е съмнително проблемът ти да е от няколко дни, тъй като не виждам някое от тези обновления да включва промяна по въпроса, но може и да пропускам нещо или пък системата ти да не е била обновявана отдавна. Както и да е.
Единият вариант е да downgrade-неш до версии, при които отново ще ти работи (от /var/log/dpkg.log и наличните пакети във /var/cache/apt/archives можеш да се ориентираш какво кога и с какво се е надградило).
Другият вариант е да прекомпилираш openconnect с флаг да ползва openssl, вместо gnutls (изглежда, че openssl-ът ти се разбира с RC4-MD5).
А най-добрият вариант е да се превключи към друг шифър на въпросното Cisco (предполагам някаква ASA?), но... при тези Cisco и при липсата ти на достъп това може да се окаже непосилна задача.


Титла: Re: openconnect в Debian sid - TLS fatal alert
Публикувано от: senser в Feb 16, 2016, 07:51
Работата с шифрите не е действие на openconnect, а на gnutls/openssl. Малко ми е съмнително проблемът ти да е от няколко дни, тъй като не виждам някое от тези обновления да включва промяна по въпроса, но може и да пропускам нещо или пък системата ти да не е била обновявана отдавна. Както и да е.
Единият вариант е да downgrade-неш до версии, при които отново ще ти работи (от /var/log/dpkg.log и наличните пакети във /var/cache/apt/archives можеш да се ориентираш какво кога и с какво се е надградило).
Другият вариант е да прекомпилираш openconnect с флаг да ползва openssl, вместо gnutls (изглежда, че openssl-ът ти се разбира с RC4-MD5).
А най-добрият вариант е да се превключи към друг шифър на въпросното Cisco (предполагам някаква ASA?), но... при тези Cisco и при липсата ти на достъп това може да се окаже непосилна задача.

neter, благодаря за помощта!

Проблемът със сигурност е от 15-20 дни и преди това ВПН-а работеше. Сещам се обаче, че причината за проблема може да не е в ъпгрейд минал при мен, а промяна в конфигурацията, или ъпгрейд на отдалеченото CISCO. Както казах, нямам достъп до него, само мога да пиша на админите, но ми се струва доста "оптимистично" да реагират :)

За openconnect си прав - компилиран е с gnutls, който явно не поддържа въпросния шифър:
Код:
gnutls-cli --list |grep -i md5

TLS_RSA_NULL_MD5                                  0x00, 0x01 SSL3.0
TLS_RSA_ARCFOUR_128_MD5                            0x00, 0x04 SSL3.0
TLS_DH_ANON_ARCFOUR_128_MD5                        0x00, 0x18 SSL3.0
MACs: SHA1, MD5, SHA256, SHA384, SHA512, SHA224, UMAC-96, UMAC-128, AEAD
Digests: SHA1, MD5, SHA256, SHA384, SHA512, SHA224
PK-signatures: SIGN-RSA-SHA1, SIGN-RSA-SHA1, SIGN-RSA-SHA224, SIGN-RSA-SHA256, SIGN-RSA-SHA384, SIGN-RSA-SHA512, SIGN-RSA-RMD160, SIGN-DSA-SHA1, SIGN-DSA-SHA1, SIGN-DSA-SHA224, SIGN-DSA-SHA256, SIGN-RSA-MD5, SIGN-RSA-MD5, SIGN-RSA-MD2, SIGN-ECDSA-SHA1, SIGN-ECDSA-SHA224, SIGN-ECDSA-SHA256, SIGN-ECDSA-SHA384, SIGN-ECDSA-SHA512

Ще разгледах history.log на apt  да видя какви ъпдейти са минали напоследък (ъпдейтвам се почти ежедневно) и мога ли да се върна към стара версия на openconnect или gnutls, а ако не стане ще компилирам върху openssl явно.