Əksər OpenVPN TLS müzakirələrində üç fərqli fakt bir sətirdə birləşdirilir: müştəri quruluşunuzun nə edə biləcəyi, profilin nəyə icazə verdiyi və sessiyanın əslində nə üzərində razılaşdığı. Qısa TLS 1.3 paket siyahısı orta suala yalnız yarımçıq cavab verir və protokol versiyasının aşağı həddi barədə heç nə demir. Aşağıdakı yoxlamaları sıra ilə keçin və ilk uğursuz olanında dayanın, çünki hər sonrakı yoxlama əvvəlkilərin həll olunduğunu fərz edir.

Hər hansı siyahını oxumazdan əvvəl quruluşu yoxlayın

Konfiqurasiya direktivi binary-nin malik olmadığı protokol dəstəyini ona əlavə edə bilməz. Kompilyasiya olunmuş kripto kitabxanasını göstərən versiya bannerindən başlayın:

openvpn --version

OpenSSL ilə əlaqələndirilmiş 2.6 quruluşu həm tls-cipher, həm də tls-ciphersuites qəbul edir. mbed TLS ilə quruluşda ümumiyyətlə TLS 1.3 paket seçimi yoxdur və 2.6 təlimatı tls-ciphersuites parametrini OpenSSL seçimi kimi qeyd edir. Server fərqli backend ilə yenidən qurulubsa, eyni profil konfiqurasiyanın bir sətri belə dəyişmədən davranışını dəyişə bilər.

Buradaykən openvpn --show-tls əmrini işə salın və çıxışı saxlayın. Bu, sonra müqayisə edəcəyiniz inventardır və hər kəs profilləri redaktə etməyə başlamazdan əvvəl onu qeyd etmək ucuzdur.

Banneri və siyahını söhbət pəncərəsinə deyil, dəyişiklik bileti içinə yazın. İki nəfər müştərinin altı həftə sonra paket təklif edib-edə bilməyəcəyi barədə mübahisə etdikdə, qeydə alınmış çıxış bunu bir sətirdə həll edir.

Versiya hədlərini şifrə siyahılarından ayrı saxlayın

2.6 təlimatında bunlar bir deyil, üç idarəetmə elementidir:

  • tls-cipher TLS 1.2 və daha erkən versiyalar üçün şifrə siyasətini təyin edir və OpenSSL-in şifrə siyahısına ötürülür;
  • tls-ciphersuites TLS 1.3 paketlərini seçir;
  • tls-version-min və tls-version-max bağlantının istifadə edə biləcəyi protokol versiyalarını məhdudlaşdırır.

Beləliklə, diqqətlə kəsilmiş TLS 1.3 paket siyahısı köhnə versiyanın hələ də icazəli olması barədə heç nə sübut etmir. Tələb «yalnız TLS 1.3» olduqda, onu versiya aşağı həddi daşıyır və paket siyahısı yalnız bu hədd daxilində seçimləri daraldır:

tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Bu cüt iki iş görür. Sətirlərdən birini silmək digərini düşündüyünüzdən az məcburi qoyur və bu, bütün bu yoxlamanın tutmaq üçün mövcud olduğu nasazlıqdır.

Data kanalı dördüncü idarəetmə elementidir. data-ciphers tunel daxilində simmetrik şifrəni razılaşdırır və nəticəsi kontrol kanalının TLS versiyası barədə heç nə demir. Sessiya xülasəsində AES-256-GCM görmək heç bir istiqamətdə TLS 1.3 üçün sübut deyil.

show-tls-i yerli inventar kimi oxuyun

--show-tls bu binary-nin əlaqələndirildiyi kripto kitabxanasının dəstəklədiyi paketləri üstünlük sırası ilə sadalayır. Bu, gateway-dən gələn hesabat deyil. Təlimat açıq şəkildə bildirir ki, siyahı yerli kitabxanadan gəlir, yəni OpenSSL 3.x olan noutbuk və köhnə quruluşlu marşrutlaşdırıcı eyni serverlə danışarkən fərqli siyahılar çap edəcək.

EvidenceWhat it actually describes
--show-tls outputCapabilities of this client build and its library
Profile directivesWhat this attempt is allowed to offer
Session log lineWhat this one negotiation selected

Tutaq ki, müştəri A, B və C paketlərini dəstəkləyir və bir sessiya B-ni seçir. Bu, serverin A və ya C-yə icazə verdiyi barədə heç nə müəyyən etmir və B-nin onun yeganə icazəli seçimi olduğu barədə də heç nə demir. Üç sətri ayrı saxlayın və əksər çaşdırıcı TLS mövzuları öz-özünə həll olunacaq.

İnventarı saxlamaq yenə də dəyərlidir. Sessiya uğursuz olduqda, kitabxana siyahısının profil siyahısı ilə müqayisəsi müştərinin serverin istədiyini təklif etmək şansının olub-olmadığını göstərir. Həm də backend dəyişikliyinin köhnə müştərilərin asılı olduğu hovuzdan TLS_CHACHA20_POLY1305_SHA256 səssizcə çıxarıb-çıxarmadığını göstərir — digərləri heç nə görməzəkən bir ovuc istifadəçinin qoşula bilməməsi kimi üzə çıxan reqressiya növü.

Gateway-dən cavab verə biləcəyi bir sual soruşun

Xidməti idarə edirsinizsə, diskdəki faylı deyil, işləyən instansın effektiv konfiqurasiyasını yoxlayın. OpenVPN fərqli --config yolu ilə başladılmış, daxiletmələri çəkmiş və ya düzəlişdən sonra yenidən başladılmamış ola bilər. Müştərilərin rastlaşdığı şey işləyən demonun siyasətidir.

Əgər onu idarə etmirsinizsə, operatora dəstəklənən müştəri tələbləri və ya məhdud qəbul testi barədə müraciət edin. Rədd edilmiş cəhd avtomatik olaraq rədd edilmiş paket deyil: versiya aşağı həddi, remote-cert-tls kimi sertifikat identifikasiyası yoxlamaları və ya tls-auth ilə tls-crypt arasındakı uyğunsuzluq mübadiləni paket seçimi vacib olmazdan əvvəl bitirə bilər. Müştəri siyahısını dəyişməzdən əvvəl serverin xətasını oxuyun, çünki «handshake failed» dörd fərqli səbəbi əhatə edir və yalnız biri şifrə uyğunsuzluğudur.

openssl s_client istiqamətləndirmək VPN portuna da sualı təkrar istehsal etmir. Kontrol kanalı OpenVPN-in öz çərçivəsi daxilində işləyir, buna görə xam TLS zondlaması başqa bir şey gözləyən portda fərqli protokolu yoxlayır. Ondan çıxarılan hər hansı nəticə zondlama haqqındadır, tunel haqqında deyil.

İki nəticəni qeyd edin və onları ayrı saxlayın

Yeni icazəli sessiya protokol versiyasını və seçilmiş şifrəni göstərən bir kontrol kanalı sətri və tunel şifrəsini göstərən ayrı bir data kanalı sətri yaradır. Hər ikisini müştəri versiyası və profil adı ilə birlikdə qeyd edin və hansı server instansının cavab verdiyini qeyd edin:

openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt

Sonra iki sətri yaddaşdan deyil, həmin fayldan oxuyun. Cüt sübutdur; tək paket adı üstünlükdür, versiya sərhədi isə serverin nəyi rədd etdiyi barədə ayrı bir ifadədir.

Yoxlamaları bu sıra ilə aparın. Quruluşu və backend-i --version ilə təsdiqləyin. Hər nəyisə dəyişməzdən əvvəl --show-tls qeydə alın. Tələb olunan versiya aşağı həddini paket siyahısından ayrı göstərin. İşləyən instansın effektiv siyasətini sahibi ilə təsdiqləyin. Bir icazəli sessiyanı və plan imkan verirsə, bir rədd edilmiş köhnə versiya cəhdini müşahidə edin. Kontrol kanalı və data kanalı nəticələrini ayrı tapıntılar kimi qeyd edin.

Tələb olunan müştəri yeni minimumu ödəyə bilmirsə, yayımın bitmiş görünməsi üçün əlaqəsiz bir qəbul qaydasını səssizcə aşağı salmaq əvəzinə bu miqrasiya və ya istisna qərarını açıq şəkildə verin.

Əlaqəli məqalələr