Bu xəta parol sorğusundan əvvəl gəlir və faydalı hissə də budur: hələ heç nə autentifikasiya olunmayıb, yəni problem etimad məlumatlarında deyil. Linux-da eyni AnyConnect dialoqu köhnə protokol versiyasından, 1024 bitlik açar mübadiləsi qrupundan və ya sistemin kripto siyasətinin rədd etdiyi şifr dəstindən qaynaqlana bilər. Mən bunu üç maşında üç fərqli üsulla aradan qaldırdım və bu həlləri bir-birindən ayıran şey hazırcavablıq deyil, təsir dairəsidir. Hər biri düzgün yerdə müdafiə oluna bilər, hər başqa yerdə isə pis standartdır.

Siyasətə toxunmazdan əvvəl mesajı oxuyun

Dəqiq sətri dialoqdan çıxarın. Versiya şikayəti protokol qatını, sertifikat şikayəti etimad və ya adlandırmanı, uğursuz giriş isə etimad məlumatlarını göstərir. TLS 1.0, 1024 bitlik DHE qrupu, AES-256-CBC və SHA-1 imzası təklif edən şlüz tamamilə etibarlı sertifikata sahib ola bilər və yenə də müasir siyasət tərəfindən etimad məlumatlarınız göndərilməmişdən əvvəl rədd edilə bilər.

Son nöqtəni sistemin OpenSSL-i ilə, real host adı və müştərinin istifadə etdiyi portla yoxlayın.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com uğursuz olub -tls1 -cipher DEFAULT@SECLEVEL=0 uğurlu olursa, bu, sərhədin versiya və açar ölçüsü birlikdə olduğunu göstərir. Birinci əmr protokol xəbərdarlığı yerinə kiçik DH açarı bildirirsə, versiya qaydasındadır və yalnız qrupa diqqət lazımdır. Yoxlamaya heç vaxt şəxsi açar və ya parol qoymayın.

Variant 1: bütün hostu kripto siyasəti ilə yumşaltmaq

Fedora və RHEL 8 və 9-da update-crypto-policies --set LEGACY OpenSSL-in sistem siyasətini aşağı salır, update-crypto-policies --show isə nəyin aktiv olduğunu təsdiqləyir. Bu, adətən tuneli bərpa edir, lakin siyasət proses başlayanda oxunur, ona görə yenidən sınaqdan əvvəl müştərini və onun yaratdığı hər hansı köməkçi prosesi yenidən başladın. Bu həmçinin maşındakı hər TLS müştərisi üçün köhnə protokollara və zəif qruplara icazə verir: qonşu pəncərədəki brauzerdən tutmuş nüvəni yeniləyən paket menecerinə qədər.

Bu genişlik həm məqsəddir, həm də problemdir. LEGACY host səviyyəsindədir, davamlıdır və asanlıqla unudulur, ona görə idarə olunan qurmada diaqnostik addım və ya sənədləşdirilmiş istisna olmalıdır, iş stansiyasının daimi vəziyyəti heç vaxt. Birini görmüşəm: iki il LEGACY-də qaldı, çünki bir daxili portal ona ehtiyac duyurdu və heç kim bunun nə vaxt başladığını deyə bilmirdi.

Debian və Ubuntu-da bunun üçün vahid açar yoxdur. Ekvivalent /etc/ssl/openssl.cnf faylında sistem standartları bölməsində daha aşağı MinProtocol və CipherString = DEFAULT@SECLEVEL=0 təyin edən düzəlişdir. Eyni təsir dairəsi, fərqli fayl, buraxılış yeniləməsi zamanı izini itirmək bir az daha asandır.

Variant 2: bir müştəri üçün bir konfiqurasiya faylı

Proses üzrə OpenSSL konfiqurasiyası dəyişikliyi bir proses ağacının içində saxlayır, ancaq fayl kitabxananın gözlədiyi şəkildə qoşulubsa. ssl_conf bölməsini adlandırmaq kifayət deyil: OpenSSL yuxarı səviyyəli openssl_conf açarını oxuyur, onu init bölməsinə izləyir və yalnız sonra SSL standartlarına çatır.

openssl_conf = openssl_init

[openssl_init]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0

OPENSSL_CONF dəyişənini o fayla yönəldin və VPN müştərisini onu ixrac edən sarğı ilə işə salın. Hostda qalan hər şey standart siyasəti saxlayır və uyğunluq sualı gələndə vacib olan xassə də budur. Şlüzü günahlandırmazdan əvvəl faylın həqiqətən qüvvədə olduğunu təsdiqləyin: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 TLS 1.0 şifrlərini sadalamalıdır, boş nəticə isə zəncirin qırıldığını və müştərinin səssizcə sistem standartlarını saxladığını bildirir.

Fayl versiyaya həssasdır. OpenSSL 1.1.1 və 3.x eyni bölmə adlarını qəbul edir, lakin provayderlər ətrafında direktiv emalı 3.x-də dəyişdi, ona görə faylın oxunduğunu güman etmək əvəzinə müştərinin öz jurnalı və sınaq əl sıxması ilə yoxlayın. Bölmə adındakı yazı səhvi açıq şəkildə uğursuz olur və müştəri səssizcə sistem standartlarını istifadə edir.

Məhdudiyyət əhatədir. GnuTLS və ya NSS ilə linked olan hər şey OPENSSL_CONF dəyişəninə məhəl qoymur, mühiti miras almadan müştərinin yaratdığı hər hansı köməkçi proses də belə. Sarğı qurmazdan əvvəl ldd ilə ikili faylın həqiqətən hansı TLS kitabxanası ilə linked olduğunu yoxlayın, çünki cavab bu variantın ümumiyyətlə mövcud olub-olmadığını müəyyən edir.

Variant 3: birdəfəlik VM və ya konteyner

İki həftə bir köhnə şlüzə qoşulan podratçı üçün yumşaldılmış siyasətli ayrıca VM iş stansiyasından daha təmiz sərhəddir. Köhnə səth və gündəlik brauzer profili artıq nüvə siyasətini paylaşmır və utilizasiya audit tapıntısı deyil, sadəcə silmə olur.

Bu hələ də şəbəkə maşınıdır, ona görə girişini məhdudlaşdırın və ümumi gəzintidən kənarda saxlayın. Texniki xidmət xərci yamaqlanmalı daha bir obrazdır; bu realdır, amma məhdud və görünəndir, noutbukda unudulmuş LEGACY bayrağından fərqli olaraq.

Müqayisə sizə nə qoyur

Üç sualla seçin: köhnə protokolu kimə lazımdır, nə qədər müddətə, və istisna öz səbəbini üstələsə kim fərq edəcək. Bir tətbiq, bir adam, bir neçə gün — proses üzrə konfiqurasiyaya işarə edir. Bir cihazın arxasındakı bütün park — şlüzün özünə işarə edir. Daimi LEGACY host siyasəti tələb edən hər şey texniki libas geyinmiş satınalma qərarıdır.

Davamlı həll cihazın üzərindədir: TLS 1.2 və ya daha yeni, ən azı 2048 bitlik qrup, AEAD şifri və müasir imzalı sertifikat. Bu dəyişikliyi cihazın sahibindən xahiş edin, sonra razılaşdırılmış versiyanı və şifri müştəri jurnalında təsdiqləyin. İstisnanı host, şlüz, razılaşdırılmış protokol, təsdiqləyən və bitmə tarixi ilə birlikdə yazın, çünki müvəqqəti həllin standarta çevrilməsinin qarşısını məhz bu qeyd alır.

Əlaqəli məqalələr