Linux’da AnyConnect’ning noto‘g‘ri TLS versiyasi: avval tuzatish qamrovini belgilang
Butun host uchun LEGACY siyosati, har bir jarayon uchun OpenSSL sozlamasi va bir martalik VM solishtirildi, shuningdek xatoni butunlay yo‘q qiladigan shlyuz o‘zgarishi.
Bu xato parol so‘ralishidan oldin chiqadi va foydali qismi ham shu: hali hech narsa autentifikatsiya qilinmagan, shuning uchun muammo hisob ma’lumotlarida emas. Linux’da o‘sha AnyConnect oynasi eski protokol versiyasidan, 1024-bitli kalit almashuv guruhidan yoki tizimning kripto siyosati rad etadigan shifr to‘plamidan kelishi mumkin. Men uni uchta mashinada uch xil usulda olib tashladim va bu yechimlarni ajratadigan narsa zukkolik emas, ta’sir qamrovi. Har biri o‘z joyida asosli, boshqa hamma joyda yomon standart.
Siyosatga tegishdan oldin xabarni o‘qing
Oynadagi aniq satrni saqlab qo‘ying. Versiya shikoyati protokol qatlamiga, sertifikat shikoyati ishonch yoki nomlashga, muvaffaqiyatsiz kirish esa hisob ma’lumotlariga ishora qiladi. TLS 1.0, 1024-bitli DHE guruhi, AES-256-CBC va SHA-1 imzosini taklif qiluvchi shlyuz to‘liq haqiqiy sertifikatga ega bo‘lishi va baribir ma’lumotlaringiz yuborilishidan oldin zamonaviy siyosat tomonidan rad etilishi mumkin.
Oxirgi nuqtani tizimning OpenSSL’i bilan tekshiring, haqiqiy host nomi va mijoz ishlatadigan port bilan.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com muvaffaqiyatsiz bo‘lib, -tls1 -cipher DEFAULT@SECLEVEL=0 muvaffaqiyatli bo‘lsa, chegara versiya va kalit o‘lchami birga ekanini bildiradi. Agar birinchi buyruq protokol ogohlantirishi o‘rniga kichik DH kalitini xabar qilsa, versiya joyida va faqat guruhga e’tibor kerak. Tekshiruvga hech qachon shaxsiy kalit yoki parol qo‘ymang.
Variant 1: kripto siyosati bilan butun hostni bo‘shatish
Fedora va RHEL 8 va 9’da update-crypto-policies --set LEGACY OpenSSL’ning tizim siyosatini pasaytiradi, update-crypto-policies --show esa nima faol ekanini tasdiqlaydi. Bu odatda tunnelni tiklaydi, lekin siyosat jarayon boshlanganda o‘qiladi, shuning uchun qayta sinashdan oldin mijozni va u yaratgan har qanday yordamchi jarayonni qayta ishga tushiring. Shuningdek, mashinadagi har bir TLS mijozi uchun eski protokollar va kuchsiz guruhlarga ruxsat beradi, yon oynadagi brauzerdan yadroni yangilovchi paket menejerigacha.
Ana shu kenglik ham butun maqsad, ham butun muammo. LEGACY butun hostga tegishli, doimiy va unutish oson, shuning uchun u diagnostika qadami yoki boshqariladigan qurilishda hujjatlashtirilgan istisno bo‘lishi kerak, hech qachon ish stansiyasining tinch holati emas. Bir ichki portalga kerak bo‘lgani uchun ikki yil LEGACY’da qolgan holatni ko‘rganman va hech kim qachon boshlanganini ayta olmadi.
Debian va Ubuntu’da buning uchun bitta kalit yo‘q. Muqobili tizim standart sozlamalari bo‘limida pastroq MinProtocol va CipherString = DEFAULT@SECLEVEL=0 o‘rnatadigan /etc/ssl/openssl.cnf tahriridir. Xuddi shu qamrov, boshqa fayl, reliz yangilanishida ko‘zdan yo‘qotish biroz osonroq.
Variant 2: bitta mijoz uchun bitta sozlamalar fayli
Har bir jarayon uchun OpenSSL sozlamasi o‘zgarishni bitta jarayon daraxti ichida saqlaydi, lekin fayl kutubxona kutgan tarzda ulangan bo‘lsa. ssl_conf bo‘limini nomlashning o‘zi yetarli emas: OpenSSL yuqori darajadagi openssl_conf kalitini o‘qiydi, uni initsializatsiya bo‘limigacha kuzatadi va shundan keyingina SSL standartlariga yetadi.
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=0OPENSSL_CONF ni o‘sha faylga yo‘naltiring va VPN mijozini uni eksport qiladigan o‘ram orqali ishga tushiring. Hostdagi qolgan hamma narsa standart siyosatni saqlaydi va muvofiqlik savoli kelganda ahamiyatli xususiyat shu. Shlyuzni ayblashdan oldin fayl haqiqatan kuchda ekanini tasdiqlang: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 TLS 1.0 shifrlarini sanab chiqishi kerak, bo‘sh natija zanjir uzilganini va mijoz tizim standartlarini indamay saqlab qolganini bildiradi.
Fayl versiyaga sezgir. OpenSSL 1.1.1 va 3.x bir xil bo‘lim nomlarini qabul qiladi, lekin provayderlar atrofidagi direktivalarni qayta ishlash 3.x’da o‘zgardi, shuning uchun fayl o‘qildi deb taxmin qilish o‘rniga mijozning o‘z jurnali va sinov qo‘l berishmasi bilan tekshiring. Bo‘lim nomidagi xatolik ochiq tarzda muvaffaqiyatsiz bo‘ladi va mijoz tizim standartlarini indamay ishlatadi.
Cheklov qamrovdir. GnuTLS yoki NSS bilan bog‘langan har qanday narsa OPENSSL_CONF ni e’tiborsiz qoldiradi, muhitni meros olmasdan mijoz ishga tushiradigan har qanday yordamchi jarayon ham. O‘ramni qurishdan oldin ldd bilan ikkilik fayl haqiqatan qaysi TLS kutubxonasiga bog‘langanini tekshiring, chunki javob bu variant umuman bor-yo‘qligini hal qiladi.
Variant 3: bir martalik VM yoki konteyner
Ikki hafta davomida bitta eski shlyuzga hujum qiladigan pudratchi uchun bo‘shatilgan siyosatli alohida VM ish stansiyasidan tozaroq chegara. Eski yuza va kundalik brauzer profili endi yadro siyosatini bo‘lishmaydi va utilizatsiya audit topilmasi emas, o‘chirishdir.
U hali ham tarmoqdagi mashina, shuning uchun kirishini cheklang va umumiy ko‘rishdan uzoq tuting. Xizmat xarajati yamoq kerak bo‘lgan yana bitta obraz, bu real, ammo cheklangan va ko‘rinadi, noutbukda unutilgan LEGACY bayrog‘idan farqli.
Taqqoslash sizga nima qoldiradi
Uch savol bo‘yicha tanlang: eski protokol kimga kerak, qancha vaqtga va istisno o‘z sababidan uzoq yashasa kim sezadi. Bitta ilova, bitta odam, bir necha kun jarayon uchun sozlamaga ishora qiladi. Bitta qurilma orqasidagi butun park shlyuzning o‘ziga ishora qiladi. Hostda doimiy LEGACY siyosatini talab qiladigan har qanday narsa texnik libosdagi xarid qaroridir.
Barqaror tuzatish qurilmaga tegishli: TLS 1.2 yoki yangiroq, kamida 2048-bitli guruh, AEAD shifri va zamonaviy imzoli sertifikat. Bu o‘zgarishni qurilma egasidan so‘rang, so‘ng mijoz jurnalida kelishilgan versiya va shifrni tasdiqlang. Istisnoni host, shlyuz, kelishilgan protokol, tasdiqlovchi va tugash sanasi bilan yozib qo‘ying, chunki vaqtinchalik yechim standartga aylanishiga aynan shu yozuv to‘sqinlik qiladi.