Nega nftables OpenVPN mijozlari orasidagi trafikni ko'ra olmaydi
Teng huquqli tugunlar orasidagi trafik VPN jarayoni ichida yetkaziladi, shuning uchun yo'naltirish hisoblagichlari hech qachon qimirlamaydi. Uni sanash uchun yadro yo'li va jarayon yo'li orasida tanlash kerak.
Bitta serverdagi ikki mijoz fayl almashadi, uzatish muvaffaqiyatli tugaydi va tunnelga qaratilgan har bir yo'naltirish qoidasi nol paket deb xabar beradi. Qoidalar buzilmagan va zanjir noto'g'ri joyda emas. Teng huquqli tugunlar orasidagi yo'naltirish yoqilganda paket server jarayoni ichida yetkaziladi va xost stegi hech qachon marshrutizator bo'lmaydi, shuning uchun yadro devoriga sanash uchun hech narsa qolmaydi. Bu bo'linishni tushunish qisqa yo'lni saqlab qolasizmi yoki yo'lni yadro orqali qayta qurasizmi — shuni hal qiladi.
Serverdan bitta paketni kuzatib boring
Marshrutlangan tunneldagi demon har bir mijozning shifri ochilgan paketini tunnel qurilmasiga beradi. U yerdan xost uni marshrutlaydi, yo'naltirish ilgagi ishlaydi va tunnel qurilmasiga mos keladigan qoida trafikni sanashi yoki tashlab yuborishi mumkin. Aksariyat devor misollari shu yo'lni nazarda tutadi.
| Forwarding path | Who decides | What the host firewall sees |
|---|---|---|
| Kernel routing between clients | Host routing table and forward rules | Every inner packet, with interface names |
| Peer forwarding inside the server process | The VPN daemon's own peer table | Only the outer encrypted transport |
Qisqa yo'l xostni o'rtadan olib tashlaydi. Bir sessiyaning shifri ochilgan paketi demon ichida boshqa sessiyaga beriladi va ichki paket hech qachon tunnel qurilmasiga chiqarilmaydi va xost uni marshrutlamaydi. Inkapsulyatsiyalangan trafik baribir jismoniy interfeysdan o'tadi, shuning uchun tashqi yozib olish band ko'rinadi, ichki qoidalar esa jim qoladi. Tunnel qurilmasida olingan yozuv hech narsani ko'rsatmaydi, bu esa uzatishni o'sha yerda kuzatishni kutganlarni hayratda qoldiradi. Bu assimetriya demon tashqarisidan qisqa yo'lni tanib olishning eng tez usulidir.
Qaysi yo'l bosib o'tilganini hal qiluvchi hisoblagich sinovi
Qo'llanishi kerak bo'lgan qoidaga hisoblagich ulang, shu qoida to'sishi kerak bo'lgan ikki mijoz o'rtasida uzatishni ishga tushiring va keyin hisoblagichni o'qing.
sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward
Agar uzatish muvaffaqiyatli bo'lib, hisoblagich nolda qolsa, yadro bu paketlarni hech qachon ko'rib chiqmagan va qoidalarni qanchalik tahrir qilsangiz ham bu o'zgarmaydi. Xuddi shu sinovni serverning o'zidagi xizmatga qarshi takrorlang, chunki bu oqim xost stegidan haqiqatan o'tadi va uning hisoblagichi qimirlaydi. Ikki natijani taqqoslashgina javob beradi.
Ikki tafsilot noto'g'ri o'qishning oldini oladi. Zanjir yorlig'iga yozilgan interfeys nomi o'z-o'zidan hech narsani filtrlamaydi, chunki moslik qoidalar ichidagi interfeys maydonlarida bo'ladi. Va ko'prikli 2-qatlam loyihasi yana boshqacha tutadi: u yerda mijozlar bitta eshittirish domenini bo'lishadi, shuning uchun teng tugunlarni topish kutilgan holat, marshrutlash nosozligi emas.
Kommutator kirish ro'yxati emas
Bu yarim kun oladigan qism. Teng huquqli tugunlar orasidagi yo'naltirish bitta yoqish yoki o'chirish sozlamasi va u yoqilgan ekan, demon yagona yo'naltirish nuqtasi. Xost devori kim kimga yeta olishini ifodalay olmaydi va har bir mijoz uchun fayllar kommutatorni siyosat matritsasiga aylantirmaydi.
Agar sizga har bir teng tugun uchun qoidalar kerak bo'lsa, tanlov qisqa yo'ldan voz kechish va boshqaruv vositasi sifatida xost devoridan voz kechish o'rtasida. Uni o'chirish yadro yo'naltirishini tiklaydi, bu esa serverda IP yo'naltirishni yoqishni va kerakli oqimlar uchun aniq qoidalarni talab qiladi. Uni yoqilgan holda qoldirish siyosat demon konfiguratsiyasida yashaydi degani, bu amalda barcha teng tugunlar yoki hech biri.
O'z manzil hovuzlari va portlariga ega alohida server jarayonlari ishlaydigan o'rta yo'ldir. Har bir jarayon aynan bitta kirish qarorini olib yuradi, shuning uchun ikki guruh siyosat matritsasisiz turli qoidalarga ega bo'lishi mumkin. Xost kerak bo'lganda hovuzlar orasida marshrutlay oladi va o'shanda devor bu oqimlarni ko'radi, chunki ular xostdan o'tadi. Narx qo'shimcha portlar, qo'shimcha sertifikatlar va har bir guruh uchun profil.
Yo'naltirish nuqtasini tanlash
Yadro yo'naltirishini tanlang, qachonki devor siyosat dvigateli bo'lsa, har bir oqim bo'yicha jurnal kerak bo'lsa yoki hisob muhim bo'lsa. Narx xost stegi orqali o'tkazuvchanlik va saqlash uchun ko'proq qoidalar. Foyda shundaki, hisoblagichlardan oqim eksportchilarigacha har bir mavjud asbob trafikni yana tasvirlaydi. Kichik serverda bu narx ko'rinmas; band releyda esa unday emas.
Jarayon ichidagi yo'naltirishni tanlang, qachonki teng tugunlar orasidagi trafik yo to'liq ruxsat etilgan, yo to'liq taqiqlangan bo'lsa va server shunga o'lchangan bo'lsa. Narx shundaki, hisoblagichlar, navbat tartiblari va ulanish kuzatuvi endi ichki oqimlarni tasvirlamaydi; bu keyinchalik hech kim ularga tayanmasa, maqbuldir.
Nimani tanlamang, uni devor qoidalarining yoniga yozib qo'ying. Teng tugunlar orasidagi trafikka ruxsat bergandek ko'rinadigan, lekin demon baribir o'zi hal qiladigan qoidalar to'plami muvaffaqiyatsiz uzatishni tuzatadigan keyingi odamni chalg'itadi. Faqat qoidalarni o'qigan har kim yadro darvoza deb o'ylaydi.
Qoidalarni o'zgartirishdan oldin nimalarni tekshirish kerak
Server haqiqatan yuklagan konfiguratsiyani o'qing, tahrir qilganingiz esda qolgan faylni emas, va teng tugunlar opsiyasi bor-yo'qligini tasdiqlang. Agar uni o'zgartirgan bo'lsangiz, xizmat diskdagi faylni faqat qayta yozmay, qayta yuklanganiga ishonch hosil qiling.
Keyin qoida umuman mos kelishini isbotlash uchun sinovni mijozdan serverga qarab oqim bilan takrorlang va yuborilgan marshrutlarni tekshiring, chunki yo'q marshrut mijoz tomonidan xuddi devor to'sig'i kabi ko'rinadi. Qoidalar tartibini qaysi yo'naltirish nuqtasi qarorga ega ekanini bilgandan keyingina o'zgartiring.