Tunnelga faqat 25-portni yuboring, xostni emas
Portga ko'ra tanlangan qoida tunnel orqali faqat chiquvchi SMTP ni yuboradi. Jadval, manba manzil va qaytish yo'li mos kelishi kerak, aks holda hech narsa ishlamaydi.
Linux xost faqat o'z SMTP'sini tunnel orqali yuborishi uchun to'rt narsa mos kelishi kerak: alohida jadvaldagi marshrut, trafikni tanlovchi siyosat qoidasi, peer qabul qiladigan manba manzili va assimetriyaga chidaydigan qaytish yo'li. Har biri o'z nosozlik rejimiga ega alohida konfiguratsiya. Quyidagi tartib nosozlikni haqiqatan noto'g'ri bo'lgan qismga ko'rsatadi. Bu portga xos marshrutlash ishi, VPN standart marshrutiga so'rov emas.
Port qoidasi standart marshrut emas
Mahalliy yaratilgan TCP'ni manzil porti 25 bilan moslashtiruvchi qoida bu trafikni siz nomlagan jadvalga yuboradi. Qoida o'zi hech narsa yaratmaydi: u tanlaydi, jadvalda paketni ko'tara oladigan marshrut bo'lishi kerak. Ikkalasining birikmasi faqat bitta protokolning chiquvchi yo'nalishini qamrab oladi, shuning uchun boshqa xostlar uchun forwardlash, kiruvchi pochta ulanishlari va IPv6 bu tartibdan tashqarida qoladi. Buni VPN standarti emas, portga xos siyosat deb atash bu chegarani halol saqlaydi.
wg-quick'ning ikkita sozlamasi siyosatning qismi emas, oldingi shartlardir. AllowedIPs = 0.0.0.0/0 peerga ixtiyoriy IPv4 manzillarini olib yurishga ruxsat beradi, Table = off esa wg-quick'ning bu prefiks uchun o'z standart marshrutini o'rnatishiga to'sqinlik qiladi. Bu ko'rsatmalarni o'z marshrut siyosatini qo'llaydigan menejer bilan aralashtirmang, chunki ikkisi asosiy jadval kimga tegishli ekanida kelisha olmaydi.
Marshrut, selektor va qo'riqchini yozing
Boshqa hech narsa ishlatmaydigan jadval raqami va juft ustuvorlikni tanlang, so'ng marshrut, selektor va qo'riqchini shu tartibda qo'llang. Quyidagi raqamlar misol, band qilingan qiymatlar emas:
ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachableiif lo qoidani mahalliy kelib chiqqan trafik bilan cheklaydi, ipproto tcp dport 25 esa ulanish yo'nalishini aniqlaydi; ip-rule ma'lumotnomasi ikkala selektorni hujjatlashtiradi. Ular joriy yadrolar va iproute2 nashrlarida mavjud, eski tizimda esa qoida butunlay rad etiladi, bu hech narsaga mos kelmaydigan yuklangan qoidadan ko'ra aniqroq nosozlik.
Keyingi ustuvorlikdagi unreachable qoidasi qo'riqchidir. Usiz 51825 jadvalidagi yo'q marshrut odatdagi standartga tushadi va tunnel uzilishi paytida pochta fizik kanaldan chiqib ketadi, bu aynan siyosat oldini olish uchun qurilgan holat.
Manba manzil mos kelishi kerak
Marshrutning src afzalligi faqat o'z manbasini bog'lamagan ulanishlar uchun manba to'ldiradi. Bu tarjima emas va aniq bog'lashni bekor qilmaydi, shuning uchun fizik manzilga bog'langan demon o'sha manzildan yuborishda davom etadi. Agar aynan shuni ko'rsangiz, demonning o'z sozlamasini o'zgartiring yoki qasddan tarjima siyosatini loyihalang, chunki kech qilingan umumiy masquerade boshqa oqibatlarga ega boshqa yechimdir.
Shlyuzda mijozning peer'i haqiqatda oladigan manbani ruxsatlashi kerak, ya'ni keng manzil prefiksi emas, 10.77.0.2/32. Mijozning 0.0.0.0/0 qiymatini har bir shlyuz peerga ko'chirish qaysi peer qaysi trafikka egaligini chalkashtiradi. Shlyuzga forwardlash, oqimga ruxsat beruvchi firewall siyosati va qaytish yo'li ham kerak, jumladan yuqori tomon xususiy tunnel manzilini marshrutlay olmasa, chiqish tarjimasi.
Qaytish yo'lini, so'ng barqarorlikni tekshiring
Biror narsaga ishonishdan oldin qidiruvlarni o'qing, chunki ular har bir yo'nalish qaysi jadval va qaysi manbani olishini ko'rsatadi. 25-portdagi bitta manzil va 443-portdagi o'sha manzil yetarli:
ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443Birinchi qidiruv wg0 va mo'ljallangan manbani nomlashi, ikkinchisi odatdagi yuqori kanalni saqlashi kerak. Ilova o'z manzilini bog'laganda, qidiruvga shu manzil bilan from qo'shing. wg0 ga yetib, keyin mahalliy tashlab yuboriladigan javob yo'nalishi IPv4 teskari yo'l filtratsiyasiga ishora qiladi, chunki faqat chiquvchi port qoidasi teskari qidiruvni tunnelni tanlashga majburlamaydi.
Assimetrik marshrutlashga ruxsat berilgan joyda net.ipv4.conf.wg0.rp_filter=2 orqali interfeys bilan cheklangan bo'sh rejim mos bo'lishi mumkin va avval all hamda interfeys qiymatlarining samarali maksimumini tekshirishga arziydi. Tekshiruvni qisqa yo'l sifatida global o'chirmang. So'ng jadval, ustuvorliklar va qo'riqchini konfiguratsiya egasiga topshiring va qayta ulangandan keyin yangi ulanishlar ochib, tanlov hali ham saqlanayotganini tasdiqlang. Mahalliy SMTP tinglovchisining javoblari manzil porti 25 emas, manba porti 25 ni olib yurishini yodda tuting, bu alohida siyosat masalasi.