Plagin hali ham joriy buildlardan eski mavzularda tavsiya qilinadi va kecha kompilyatsiya qilingan serverda yuklashda muvaffaqiyatsiz bo'ladi. Bu yo'l bilan tuzatiladigan konfiguratsiya xatosi emas. Plagin va skript ilgagi bir xil masalani turli qatlamlarda hal qiladi, va biridan ikkinchisiga o'tish nima o'rnatilishini, nima server huquqlari bilan ishlashini va muvaffaqiyatsiz kirish sizga aslida nima aytishini o'zgartiradi.

Afsona: plagin qo'llab-quvvatlanadigan yo'l

Plagin OpenVPN jarayoniga yuklanadigan umumiy obyekt, shuning uchun u bu jarayon taqdim etadigan interfeysga mos kelishi kerak. Buildlar o'zgaradi, qadoqlash o'zgaradi va eski interfeys uchun kompilyatsiya qilingan kutubxona yuklanishdan bosh tortadi. Server konfiguratsiyasida hech narsa bu bo'shliqni to'ldira olmaydi, shuning uchun "shunchaki radiusplugin o'rnating" maslahati ishga tushmaydigan server bilan tugaydi.

Skript ilgagi esa jarayondan tashqarida turadi. OpenVPN dasturni ishga tushiradi, unga hisob ma'lumotlarini beradi va hukmni o'qiydi. Aynan shu ajratish unga yangilanishlardan o'tishga imkon beradi va uni plaginda hech qachon bo'lmagan tarzda sizning mas'uliyatingizga aylantiradi.

Hech bir yondashuv o'z tuzilishi bilan xavfsizroq emas. Biri daemon ichida begona kod ishlatadi; ikkinchisi hisob ma'lumotlarini qo'lda ushlab, sizning kodingizni uning yonida ishlatadi. To'g'ri savol — bu ikki xatardan qaysisini haqiqatan boshqara olasiz.

Plagin nimani bog'lagan edi

Plaginning RADIUS xosti, umumiy sir, qayta urinishlar soni va vaqt chegarasi bo'lgan o'z konfiguratsiya fayli bor edi va server konfiguratsiyasi unga bitta satr bilan murojaat qilardi. Hisob ma'lumotlari bilan ishlash server jarayoni ichida qolardi, ya'ni parol administrator himoya qilishi kerak bo'lgan jarayon chegarasidan hech qachon o'tmagan.

Narx bog'liqlik edi. Har bir OpenVPN yangilanishi mos kelmaydigan interfeys xatarini olib kelardi, paketni qayta quradigan har bir distributiv esa endi mos kelmaydigan kutubxona ishlab chiqarish xatarini olib kelardi. Bu sodir bo'lganda, nosozlik baland va bir zumda bo'ladi, va bu dizaynning yagona marhamati.

Agar bunday plagin hali ham sizning buildingizda yuklansa, u kichikroq operatsion yuza bo'lishi mumkin. U qaysi interfeys uchun qurilganini tasdiqlang, sinab ko'rgan buildingizga bog'lab turing va har qanday yangilanishni oddiy paket yangilanishi emas, to'liq kirish sinovini talab qiladigan o'zgarish deb qarang.

Skript ilgagi aslida nimaga ishonadi

Ilgak auth-user-pass-verify va yetkazib berish mexanizmi bilan sozlanadi: muhit o'zgaruvchilari yoki vaqtinchalik fayl. Muhit shaklida OpenVPN script-security 3 ni talab qiladi, bu parolni skriptlarga ochishga ruxsat beradigan hujjatlashtirilgan daraja. Bu daraja standart holatning ataylab zaiflashtirilishi va unga asos qo'shilgan ruxsat sifatida qarash kerak.

Skript tegmagan hamma narsa bu ishonchni meros oladi. U root egaligida bo'lishi, guruh yoki boshqalar yoza olmaydigan bo'lishi, mutlaq yo'l bilan ko'rsatilishi va ishonchsiz qiymat shellga yetadigan joyi bo'lmasligi kerak. Har bir o'zgaruvchini qo'shtirnoqqa oling, kutilmagan belgilarni rad eting va hech qachon berilgan foydalanuvchi nomidan buyruq qurmang. Har bir kirish urinishida root sifatida ishlaydigan skript aynan shu to'rt xususiyat uchun bir marta ko'rib chiqishga loyiq.

ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh

Fayl orqali yetkazib berish shakli muhit merosligi muammosidan qochadi va hisob ma'lumotlarini cheklangan huquqlarga ega vaqtinchalik fayl orqali skriptga beradi. Agar mijozingiz buni qo'llab-quvvatlasa, odatda bu yaxshiroq standart, ammo nosozlikda tozalash uchun yana bitta obyekt qo'shadi.

Chiqish kodlari ochiq nosozlikka uchrashingizni hal qiladi

Skriptning chiqish holati — hukm: nol qabul qiladi, nolga teng bo'lmagan rad etadi. Muammo keltiradigan naqsh — RADIUS javobida ma'lum qabul belgisi bo'lgandagina qabul qiladigan va qolgan hamma narsaga nosozlik qaytaradigan shell skript, chunki bu uch xil hodisani bitta javobga birlashtiradi. Noto'g'ri parol, yetib bo'lmaydigan server va buzilgan javob — barchasi bir xil rad etishga aylanadi.

Ilgak faqat qabul yoki rad etishni qaytara olsa ham, bu holatlarni skriptda ajrating. Backend natijasini alohida qayd eting, vaqt chegaralari va transport xatolari haqida ogohlantiring va monitoringda autentifikatsiya xizmat to'xtagani uchun emas, foydalanuvchilar xato tergani uchun muvaffaqiyatsiz bo'layotganini aniq ko'rsating.

Ikki odat qolganini oqilona saqlaydi. Agar RADIUS hokimiyat bo'lsa, parol tekshiriladigan yagona joy u bo'lishi kerak, chunki soya jadvali bir savolga ikki javob yaratadi va ikkinchisi hech kim kuzatmaydigan hujum yuzasi. Va ilgak har bir qayta urinishda yana chaqirilishini unutmang, shuning uchun sekin skript va sabrsiz mijoz RADIUS tomonida kechikish yoki siyosat qo'shmasangiz, parol taxmin qilish uchun kuchaytirgichga aylanadi.

Sertifikat yo'qolganda nimadan voz kechasiz

Bu shakldagi ko'plab joylashtirishlar mijoz sertifikatini tekshirishni butunlay o'chiradi va foydalanuvchi nomi bilan parolni mijozning butun da'vosi qilib qoldiradi. Bu sozlama bilan yo'qoladigan narsa — sertifikatga asoslangan shaxs. Kanal shifrlangan holda qoladi, lekin mijozni nomlaydigan yagona narsa RADIUS hukmi. Ilgari sertifikat sub'ektiga tayangan har qanday quyi oqim endi foydalanuvchi nomiga tayanishi kerak.

Nazorat kanali himoyasini joyida saqlang, shunda autentifikatsiyadan o'tmagan sherik qo'l berishni tekshira yoki suv bosa olmaydi, va har bir foydalanuvchi konfiguratsiyasi umumiy nomga bog'liq bo'lsa username-as-common-name dan foydalaning. Boshqariladigan shlyuzlar buni ko'pincha boshqacha hal qiladi, sertifikat autentifikatsiyasini RADIUS bilan EAP-TLS gapiradigan shlyuzda tugatadi va bu holda bu server direktivalarining hech biri qo'llanilmaydi. Qo'shni mahsulot modelini emas, o'z platformangiz hujjatlashtirgan modelni ko'chiring. Muhim direktivalar shunchalik farq qiladiki, ularni aralashtirish tahlil qilinadigan, keyin hech kimni autentifikatsiya qilmaydigan konfiguratsiya beradi.

O'xshash maqolalar