OpenVPN ulanadi, lekin hech narsa oqmaydi: paket tushadigan qatlamni toping
Trafiksiz ulangan tunnelning kamida besh sababi bor. Tinglovchini isbotlang, tashqi paketni ushlang, so'ng hisoblagichlar yoki iz qoidani nomlasin.
OpenVPN ulangan deb aytadi va hech qanday trafik qimirlamaydi, bu jumla kamida besh bog'liq bo'lmagan nosozlikni qamrab oladi. Qaysi qatlam ishlamayotganini bilmasdan turib xavfsizlik devori qoidalarini tahrirlash noma'lumlarni ko'paytiradi va keyingi muhandisga tartibsizlik qoldiradi. Buning o'rniga jarayondan tashqariga qarab ishlang, chunki quyidagi har bir qadam yo bir bosqichni tozalaydi yoki paket o'ladigan joyni toraytiradi. Bu yerda tartib muhim: qaysi manzil bog'langanini bilmasdan olingan yozib olish nimanidir isbotlaydi, faqat sizga kerak bo'lgan narsani emas.
Soket yo bog'langan, yo yo'q
Faol deb xabar beradigan xizmat hali ham siz hech qachon mo'ljallamagan manzil yoki transportga bog'langan bo'lishi mumkin. Soketning o'zidan so'rang: ss -lunp UDP tinglovchilarini, ss -ltnp esa TCP ro'yxatini beradi, va o'qishga arziydigan ustun holat emas, mahalliy manzildir.
Bo'sh javob odatda uch narsadan birini bildiradi: jarayon ishga tushgandan keyin chiqdi, boshqa konfiguratsiya faylini yukladi yoki qo'ng'iroq qilinayotgan manzildan boshqa manzilda tinglaydi.
ss -lunp | grep 1194
ss -ltnp | grep 1194
local ko'rsatmasi tinglovchini bitta manzilga bog'laydi, shuning uchun o'sha xostdagi boshqa joyga yo'naltirilgan mijoz rad etiladi, xizmat esa tashqaridan hali ham sog'lom ko'rinadi. Nusxa nomi ham siz hech qachon tahrirlamagan faylga ishora qilishi mumkin, bu ikki profilni yonma-yon ishlatadigan xostlarda uchraydi.
Tashqi paketni ushlang, tunnelni emas
Jismoniy interfeys va haqiqiy portda filtrlang, o'z interfeysingizni qo'yib: tcpdump -ni eth0 udp port 1194. Orqaga hech narsa qaytmaydigan chiquvchi paketlar yuqorida turgan narsaga ishora qiladi: provayder filtri, NAT qurilmasi yoki siz o'ylagandan boshqa uzoq manzil. Ikki tomonda ham sukunat mijoz marshrutlashiga yoki mahalliy xavfsizlik devoriga ishora qiladi. Tunnel taraqqiyotisiz kelgan javoblar boshqaruv kanaliga, ya'ni kalit yoki shifr mos kelmasligiga ishora qiladi, filtrga emas.
Ikkala yo'nalishni ham ushlang va faylni qisqa tuting. Uzoq yozib olish qiziqarli uch soniyani ko'madi, va javob deyarli har doim birinchi almashinuvda bo'ladi.
Avval hisoblagichlar, iz faqat ular yolg'on gapirganda
Hisoblagichlardan boshlang, chunki ular hech narsa turmaydi. Yoki nft list ruleset, yoki iptables -L -n -v bu yerda muhim bo'lgan yagona savolga javob beradi: qoida mos keldimi? Tartib natijani hal qiladi, chunki birinchi moslik yutadi, shuning uchun keyingi ACCEPT oldidan keng DROP o'sha ACCEPTni o'lik qoldiradi va shuning uchun qoida qo'shish juda kamdan-kam narsani tuzatadi.
Egalik ham odamlarni qoqintiradi. Yadro mahalliy yaratilgan paketlarni soketni ochgan jarayonga bog'laydi, OpenVPN odatda root sifatida ishlaydi, shuning uchun oddiy foydalanuvchi ID ga bog'langan qoida tunnelning o'z trafigini hech qachon ko'rmaydi. Qoida noto'g'ri deb qaror qilishdan oldin egasi UID ni tekshiring.
Faqat hisoblagichlar noaniq qolsa, log shovqinga arziydi, va u holda ham faqat tor bo'lak uchun: tezlikni cheklaydigan va log satrlariga prefiks qo'shadigan iptables qoidasi, yoki nft monitor trace ishlayotganda meta nftrace set 1 olib yuruvchi nftables qoidasi. Iz paketni qabul qilgan yoki tashlagan zanjir va qoidani nomlaydi. Keyin ikkalasini ham olib tashlang va foydali yuk logini tashqarida tuting.
Transportni ham tekshiring. TCP bilan cheklangan xavfsizlik devori xizmati o'sha raqamdagi UDP tinglovchisi haqida hech narsa aytmaydi, shuning uchun to'g'ri o'qilgan qoida ham har bir paketni tashlashi mumkin.
Marshrutlash va qaytish yo'li
Qabul qilingan, ammo baribir yo'qoladigan paketning manzil yo'lini tekshirish kerak. ip route get bitta manzil uchun tanlangan marshrutni xabar qiladi, va teskari yo'l filtri asosiy jadval hech qachon tanlamaydigan interfeys orqali keladigan javobni tashlashi mumkin. Alomat xuddi xavfsizlik devori tashlagandek ko'rinadi, shuning uchun bu tekshiruv navbatdagi NAT qoidasidan oldin keladi.
Shlyuzda input zanjiri o'rniga yo'naltirish va forward zanjirini tekshiring. So'ngra uzoq tomon manba manziliga qanday yetishini bilishiga ishonch hosil qiling, chunki ishlaydigan chiquvchi yo'ldan hech narsa qaytmasa, ikkala holatda ham sukunat.
Yozuv nima deyishi kerak
Har bir o'zgarish uchun tekshirilgan bosqich, o'qilgan dalil va uning ikki tomonidagi hisoblagich qiymatini yozib qo'ying. Aynan o'sha yozuv "endi ishlaydi" ni keyingi ko'rikda omon qoladigan qiladi.
Ikki qisqa yo'l yozuvni halol saqlaydi. Xostdan hech qachon chiqmagan paketni boshqa joydagi qoida tashlay olmasdi, uzoq tomon konfiguratsiyasi qanchalik ishonchli ko'rinmasin. Chiqib qaytgan paket savolni tarmoq qatlamidan yuqoriga ko'chiradi, u yerda xavfsizlik devori hisoblagichlarining sizga aytadigan hech narsasi qolmaydi.