OpenVPN tls-ciphersuites va tls-version-min: har biri nimani majburiy qiladi
TLS 1.3 to'plamlar ro'yxati protokol versiyasini cheklamaydi, show-tls esa faqat mahalliy qo'llab-quvvatlashni ko'rsatadi. Siyosat, to'plamlar va kelishilgan natijalarni alohida tekshiring.
Ko'pchilik OpenVPN TLS muhokamalarida uch xil fakt bitta satrga jamlanadi: mijoz qurilmangiz nima qila oladi, profil nimaga ruxsat beradi va sessiya aslida nima ustida kelishdi. Qisqa TLS 1.3 to'plamlar ro'yxati o'rta savolga faqat yarim javob beradi va protokol versiyasining pastki chegarasi haqida hech narsa aytmaydi. Quyidagi tekshiruvlarni tartib bilan bajaring va birinchi bardosh bermagan joyda to'xtang, chunki har bir keyingi tekshiruv avvalgilari hal qilingan deb hisoblaydi.
Har qanday ro'yxatni o'qishdan oldin qurilmani tekshiring
Konfiguratsiya direktivasi protokol qo'llab-quvvatlanmaydigan binar faylga uni qo'sha olmaydi. Kompilyatsiya qilingan kripto kutubxonasini ko'rsatuvchi versiya banneridan boshlang:
openvpn --version
OpenSSL bilan bog'langan 2.6 qurilmasi tls-cipher va tls-ciphersuites ikkalasini ham qabul qiladi. mbed TLS bilan qurilmada TLS 1.3 to'plamlarini tanlash umuman yo'q, va 2.6 qo'llanmasi tls-ciphersuites ni OpenSSL opsiyasi sifatida belgilaydi. Agar server boshqa backend bilan qayta qurilsa, o'sha profil konfiguratsiyaning bir satri ham o'zgarmasdan xatti-harakatini o'zgartirishi mumkin.
Shu yerda bo'lganingizda openvpn --show-tls ni ishga tushiring va chiqishni saqlang. Bu keyinchalik solishtiradigan ro'yxat, va kimdir profil tahrirlashni boshlashidan oldin uni yozib olish arzon.
Banner va ro'yxatni chat oynasiga emas, o'zgarish chiptasiga yozing. Ikki kishi olti haftadan keyin mijoz to'plam taklif qila oladimi deb bahslashganda, yozib olingan chiqish buni bir satrda hal qiladi.
Versiya chegaralarini shifr ro'yxatlaridan alohida saqlang
2.6 qo'llanmasida bular bitta emas, uchta boshqaruv:
tls-cipherTLS 1.2 va undan eski versiyalar uchun shifr siyosatini belgilaydi va OpenSSL shifr ro'yxatiga uzatiladi;tls-ciphersuitesTLS 1.3 to'plamlarini tanlaydi;tls-version-minvatls-version-maxulanish ishlatishi mumkin bo'lgan protokol versiyalarini cheklaydi.
Shunday qilib, ehtiyotkorlik bilan qirqilgan TLS 1.3 to'plamlar ro'yxati eski versiya hali ham ruxsat etilgani haqida hech narsani isbotlamaydi. Agar talab «faqat TLS 1.3» bo'lsa, uni versiyaning pastki chegarasi ko'taradi, to'plamlar ro'yxati esa faqat shu chegara ichida tanlovni toraytiradi:
tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
Bu juftlik ikki ishni bajaradi. Bir satrni o'chirsangiz, ikkinchisi siz o'ylagandan kamroq majburiyat yuklaydi, va butun bu tekshiruv aynan shu nosozlikni ushlash uchun mavjud.
Ma'lumotlar kanali to'rtinchi boshqaruv. data-ciphers tunnel ichidagi simmetrik shifrni kelishadi va uning natijasi boshqaruv kanalining TLS versiyasi haqida hech narsa aytmaydi. Sessiya xulosasida AES-256-GCM ko'rish hech bir yo'nalishda TLS 1.3 dalili emas.
show-tls ni mahalliy ro'yxat sifatida o'qing
--show-tls ushbu binar bog'langan kripto kutubxonasi qo'llab-quvvatlaydigan to'plamlarni afzallik tartibida sanaydi. Bu shlyuzdan kelgan hisobot emas. Qo'llanma ro'yxat mahalliy kutubxonadan kelishini aniq aytadi, ya'ni OpenSSL 3.x o'rnatilgan noutbuk va eskiroq qurilmali router bir xil server bilan gaplashganda turli ro'yxatlar chiqaradi.
| Evidence | What it actually describes |
|---|---|
--show-tls output | Capabilities of this client build and its library |
| Profile directives | What this attempt is allowed to offer |
| Session log line | What this one negotiation selected |
Mijoz A, B va C to'plamlarini qo'llab-quvvatlaydi, bitta sessiya B ni tanlaydi deylik. Bu server A yoki C ga ruxsat beradimi yoki B uning yagona ruxsat etilgan tanlovimi, hech narsani aniqlamaydi. Uch satrni alohida saqlang, va chalkash TLS mavzularining ko'pchiligi o'z-o'zidan hal bo'ladi.
Ro'yxatni saqlash baribir arziydi. Sessiya muvaffaqiyatsiz bo'lganda, kutubxona ro'yxatini profil ro'yxati bilan solishtirish mijozning server xohlagan narsani taklif qilish imkoni bor-yo'qligini ko'rsatadi. Shuningdek, backend o'zgarishi eski mijozlar tayanadigan fondan TLS_CHACHA20_POLY1305_SHA256 ni jimgina olib tashlaganini ham ko'rsatadi — boshqalar hech narsa sezmayotganda bir necha foydalanuvchining ulana olmasligi ko'rinishida yuzaga keladigan regressiya turi.
Shlyuzdan u javob bera oladigan narsani so'rang
Agar xizmatni o'zingiz boshqarsangiz, diskdagi faylni emas, ishlab turgan nusxaning samarali konfiguratsiyasini tekshiring. OpenVPN boshqa --config yo'li bilan ishga tushirilgan, qo'shimchalarni tortayotgan yoki tahrirdan beri qayta ishga tushirilmagan bo'lishi mumkin. Mijozlar ishlab turgan demon siyosatiga duch keladi.
Agar uni boshqarmasangiz, operatordan qo'llab-quvvatlanadigan mijoz talablari yoki cheklangan qabul testini so'rang. Rad etilgan urinish avtomatik ravishda rad etilgan to'plam emas: versiya pastki chegarasi, remote-cert-tls kabi sertifikat identifikatsiyasi tekshiruvlari yoki tls-auth va tls-crypt orasidagi nomuvofiqlik to'plam tanlovi muhim bo'lishidan oldin almashinuvni tugatishi mumkin. Mijoz ro'yxatini o'zgartirishdan oldin server xatosini o'qing, chunki «handshake failed» to'rt xil sababni qamrab oladi va ulardan faqat bittasi shifr nomuvofiqligi.
openssl s_client ni VPN portiga yo'naltirish ham savolni qayta hosil qilmaydi. Boshqaruv kanali OpenVPN ning o'z ramkasi ichida ishlaydi, shuning uchun xom TLS tekshiruvi boshqa narsani kutayotgan portda boshqa protokolni sinaydi. Undan chiqarilgan har qanday xulosa tekshiruv haqida, tunnel haqida emas.
Ikki natijani yozib oling va ularni alohida saqlang
Yangi ruxsat etilgan sessiya protokol versiyasi va tanlangan shifrni ko'rsatuvchi boshqaruv kanali satrini va tunnel shifrini ko'rsatuvchi alohida ma'lumotlar kanali satrini hosil qiladi. Ikkalasini mijoz versiyasi va profil nomi bilan yozib oling va qaysi server nusxasi javob berganini qayd eting:
openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt
So'ngra bu ikki satrni xotiradan emas, o'sha fayldan o'qing. Juftlik dalildir; faqat to'plam nomi afzallik, versiya chegarasi esa server nimani rad etishi haqidagi alohida bayonot.
Tekshiruvlarni shu tartibda bajaring. Qurilma va backendni --version bilan tasdiqlang. Biror narsani o'zgartirishdan oldin --show-tls ni yozib oling. Kerakli versiya pastki chegarasini to'plamlar ro'yxatidan alohida ayting. Ishlab turgan nusxaning samarali siyosatini uning egasi bilan tasdiqlang. Bitta ruxsat etilgan sessiyani va reja ruxsat bersa, eski versiya bilan bitta rad etilgan urinishni kuzating. Boshqaruv kanali va ma'lumotlar kanali natijalarini alohida topilmalar sifatida qayd eting.
Agar kerakli mijoz yangi minimal chegarani bajara olmasa, joriy etish tugagandek ko'rinishi uchun aloqasiz qabul qoidasini jimgina tushirish o'rniga bu ko'chirish yoki istisno qarorini ochiq qabul qiling.