Bitta eski peer TLS 1.0 ni majburlaydi: istisnoni cheklang, hostni emas
TLS 1.0 da qolib ketgan bitta qurilma yoki eski provayder sertifikati zaifroq pastki chegarani majburlashi mumkin. Istisnoni cheklang, so'ngra aslida nima kelishilganini o'lchang.
Bitta eski qurilma paydo bo'ladi, ulana olmaydi va eng tez ko'ringan tuzatish ulanish muvaffaqiyatli bo'lguncha butun hostni zaiflashtirishdir. Bu almashinuv o'sha lahzada ko'rinmaydi va amalda doimiy bo'lib qoladi, chunki oxir-oqibat ishlaydigan pastki chegarani hech kim olib tashlamaydi. Bosimni ikki butunlay boshqa nosozlik keltiradi va ulardan faqat bittasi shifrlarga tegishli. Avval nosozlikni tasniflang, keyin istisnoni u tarqala olmaydigan joyga qo'ying.
Direktivni o'zgartirishdan oldin nosozlikni ikkiga bo'ling
Umumiy shifr yo'qligi yoki qo'llab-quvvatlanmaydigan protokol versiyasi haqidagi server jurnali satri boshqaruv kanalidan keladi: ikki tomon muzokaraning o'zini qanday himoya qilish bo'yicha kelisha olmadi. Server sertifikatini tekshirishning hech bir usuli yoqilmaganligi haqidagi mijoz satri butunlay boshqa joydan keladi, chunki u mijoz kim javob berganini ham tekshirmaydi. Ma'lumot shifrini o'zgartirish ikkinchi holatga hech narsa qilmaydi, rol tekshiruvini qo'shish birinchisiga hech narsa qilmaydi.
Har tomondan eng erta muvaffaqiyatsiz satrni oling, uzilishdan oldingi oxirgi satrni emas, chunki oxirgisi odatda faqat oqibat. So'ngra mijoz aslida qaysi faylni ochganini aniqlang: import qilingan profil ko'pincha turli ko'rinadigan nomlar ostida ikki marta bo'ladi va hech kim o'qimaydigan nusxani tahrirlash ishonchli o'zgarishsizlikni yaratadi. Ishlab turgan jarayon boshlangan sozlamalarini saqlaydi, shuning uchun saqlangan fayl yuklangan fayl emas. Quyidagi buyruqlar o'sha urinishning mijoz muzokarasini serverning ko'rinishi bilan yonma-yon ko'rsatadi.
openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'
Zaifroq pastki chegara uchun ikkinchi tinglovchi halol joydir
Qurilma 2.5 dan oldingi ma'lumot kanali bilan TLS 1.0 da to'xtasa, server boshqaruv kanalining pastroq chegarasini va eski mijoz taniydigan ma'lumot shifrini taklif qilishi kerak. Zaxira direktivasi aynan o'sha peer uchun mavjud, shifrlar ro'yxati esa zamonaviy mijozlarni zamonaviy to'plamlarda ushlab turadi. Ikkala direktiva ham foydalanuvchiga yoki ulanishga emas, tinglovchiga tegishli va keyinchalik hech bir mijoz bo'yicha parametr ularni toraytirmaydi. Shuning uchun asosiy portdagi bitta eski qurilma o'sha portni bo'lishadigan har bir peer haqidagi qarordir.
Platforma ruxsat bergan joyda eski tinglovchini alohida portda o'z nusxasi sifatida ishga tushiring, o'sha portga faqat qurilma manzilidan ruxsat bering va asosiy xizmatni o'z holicha qoldiring. Ikkinchi tinglovchi nima uchun borligini uning konfiguratsiyasi joylashgan faylga yozib qo'ying, aks holda kelajakdagi tozalash uni qoldiq sifatida o'qiydi. Bo'linish faqat zaifroq chegara qurilma tugaydigan joyda tugasa arziydi.
tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC
Eski provayder sertifikati aslida nimani buzadi
Tekshiruv xatosi yo'qolgan rol bog'lanishidir: usiz mijoz ishonchli CA ga zanjirlanadigan har qanday sertifikatni qabul qiladi, u server uchun berilganmi-yo'qmi, baribir. Avval sertifikatni server roliga bog'lang va bog'lanishni sozlash dastagi emas, talab deb biling. Faqat shu qadamdan keyin ham muvaffaqiyatsiz bo'lgan profilgina haqiqiy sertifikat muammosiga ega.
Kalit o'lchami yoki imzo algoritmi endi OpenSSL standart siyosatiga javob bermaydigan eski provayder sertifikati boshqaruv kanalida cheklangan xavfsizlik darajasini o'zgartirish holatidir. U yerda darajani pasaytirish tekshiruvni o'chirmaydi va uni hech qachon bo'sh CA, o'chirilgan tekshiruv yoki tekshirilmagan host nomi bilan birlashtirmaslik kerak. Satrni faqat unga muhtoj bo'lgan bitta profil ichida saqlang; yumshatilgan OpenSSL konfiguratsiyasini global eksport qilish mashinadagi har bir dasturga o'sha yumshatishni beradi.
remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"
Bannerni emas, kelishilgan qiymatlarni o'qing
verbosity 4 da ikki tomon kelishgan boshqaruv kanali TLS versiyasini va shifrini hamda sessiya ma'lumot shifrini chop etadi. Boshlang'ich bannerni emas, o'sha satrlarni o'qing, chunki banner muvaffaqiyat haqida xabar beradi, uning shartlari haqida emas. So'ngra zamonaviy mijozni asosiy tinglovchiga qayta ulang va u hali ham zamonaviy to'plamga tushishini tasdiqlang, chunki umumiy konfiguratsiyaga oqib tushgan istisno birinchi navbatda shu yerda ko'rinadi. Siz ko'chirgan qiymatlar keyingi ko'rikning asosiga aylanadi.
Eski qurilmani yakka holda sinab ko'ring: u ulanishi kerak va jurnallarda zaif parametrlarni ko'rsatadigan yagona sessiya bo'lishi kerak. Ikkinchi peer ham eski to'plamni kelishsa, istisno mo'ljallanganidan kengroq va tinglovchilarni bo'lish aslida sodir bo'lmagan. Faqat xulosa emas, ikkala kuzatuvni ham yozib qo'ying.
Har bir istisnoga egasi va sana kerak
Olib tashlash shartisiz istisno jimgina standartga aylanadi, shuning uchun qurilma, egasi, sababi va yo'qoladigan sanani u oqlaydigan konfiguratsiya yoniga qo'ying. O'sha satrsiz zaifroq chegara unga muhtoj bo'lgan apparatdan uzoqroq yashaydi.
Mijozni almashtirish yoki provayderdan joriy profil so'rash maqsad qilinadigan natijadir; istisno dizayn emas, kechikish. Qurilma iste'foga chiqqanda tinglovchi va profilni bir xil o'zgarishda olib tashlang, shunda hech bir yarmi ishlab qolmaydi. Bularning hech biri eski parametrlarni xavfsiz qilmaydi, u faqat bitta qurilma chegarasi hammaning asosiga aylanishini oldini oladi.