WireGuard qo'l siqishi ishlaydi, lekin ofis quyi tarmog'i javob bermaydi
WireGuard ishlayapti va serverga ping ketadi, ammo uning LAN tarmog'ida hech narsa javob bermaydi. Mijoz prefiksini, serverdagi uzatishni va javob yo'lini tekshiring.
Qo'l siqish tugaydi, wg show yaqinda bo'lgan uzatish haqida xabar beradi va serverning tunnel manzili pingga javob beradi. Serverning LAN tarmog'idagi xost esa javob bermaydi. Uch shart bir vaqtda bajarilishi kerak: mijoz LAN prefiksini tunnelga yo'naltirishi, server paketlarni uzatishi va javobga qaytish yo'li kerak. Uchtadan biri yetishmasa, alomat bir xil bo'ladi.
AllowedIPs ham kirish ro'yxati, ham marshrutlash jadvalidir
Mijozda AllowedIPs ro'yxati o'sha tengdoshga nima yuborish mumkinligini va WireGuard qaysi marshrutlarni o'rnatishini ham belgilaydi. Faqat serverning tunnel manzilini sanab o'tgan tengdosh yozuvi bitta xost marshrutini o'rnatadi, shuning uchun LAN manzillari hech qachon tunnelga kirmaydi. LAN prefiksini qo'shish birinchi tekshiriladigan narsa va nusxalangan konfiguratsiyadan keyin eng ko'p yetishmaydigan o'zgarish ham shudir. Standart marshrutgacha kengaytirilgan tengdosh boshqa dizayn va u mijozning internet trafigini ham ko'chiradi.
Xost marshrutini va LAN prefiksini alohida yozuvlar sifatida saqlang. Agar ofisda ikkita quyi tarmoq bo'lsa, ikkalasi ham ro'yxatga kiradi va yetishmayotgan ikkinchi prefiks to'liq emas, tanlab olingandek ko'rinadigan nosozlik tug'diradi.
[Peer] PublicKey = <server public key> Endpoint = vpn.example.net:51820 AllowedIPs = 10.66.0.1/32, 192.168.50.0/24
Uzatish va tarjima serverda bo'lishi kerak
Serverga yoqilgan IP uzatish, tunneldan kelayotgan trafikni qabul qiladigan uzatish qoidasi va o'z LAN interfeysi tomon tarjima qoidasi kerak. Aynan tarjima dizaynni ofis tarmog'idagi har bir xostga tegmasdan ishlatadi. Shunda javoblar LAN hech qachon eshitmagan manzilga emas, serverga qaytadi. Busiz har bir xostga tunnel quyi tarmog'iga marshrut va unga ruxsat beradigan xavfsizlik devori qoidasi kerak bo'ladi, bu esa boshqa birov boshqaradigan tarmoqda kamdan-kam maqbuldir.
sysctl -w net.ipv4.ip_forward=1 iptables -A FORWARD -i wg0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Qo'lda qo'shilgan qoidalar qayta yuklashda yo'qoladi, shuning uchun ularni server konfiguratsiyasidagi hook buyruqlari bilan interfeysga bog'lang. O'z interfeysidan uzoqroq yashaydigan qoidalar to'plami mashina endi mavjud bo'lmagan tunnel uchun trafikni tarjima qilib qolishining yo'li.
LAN ko'chganda, qoida ko'chmaganida
Ofis quyi tarmog'ini qayta raqamlaydigan router almashtirilishi bu nosozlikning klassik ko'rinishi. Tunnel yoniq qoladi, qo'l siqish yangi qoladi va server orqasida hech narsa javob bermaydi, chunki tarjima qoidasi hali ham eski manzilni nomlaydi. O'rnatish skriptlari serverning LAN manzilini ko'pincha POSTROUTING qoidasiga singdiradi va qayta raqamlashdan keyin bu manzil hech bir interfeysda mavjud emas. Shunda paketlar javob bera olmaydigan manzilga qayta yoziladi.
iptables -t nat -n -L POSTROUTING ip -br addr show
Ikkala chiqishni solishtiring. Interfeyslar ro'yxatida ko'rinmaydigan tarjima nishoni aynan xato va uni tuzatish bir marta ko'rgandan keyin bir qatorli o'zgarish. Qoida WireGuard konfiguratsiyasida emas, generatsiya qilingan unitda bo'lishi mumkin, shuning uchun tahrirdan keyin o'sha unitni qayta yuklang va keyingi yuklash o'zgartirishingizni qayta yozmasligiga ishonch hosil qiling.
NAT orqasidagi ikki saytga uchrashadigan joy kerak
Ikki tomon ham kiruvchi ulanishlarni qabul qilmasa, amaliy javob ommaviy manzil va ikkita WireGuard interfeysi bo'lgan kichik xost. Har bir sayt tashqariga ulanadi, o'rta xost har bir tengdoshning LAN tarmog'ini o'zining AllowedIPs, ya'ni o'z ro'yxatida, sanaydi va uzatish paketlarni ikki tunnel orasida tashiydi. Ikkala saytning xavfsizlik devorida hech narsa o'zgartirilishi shart emas, shuning uchun bu dizayn oson tarqaladi.
Saytlar orasidagi marshrutlash asl manba manzillarini saqlaydi va shu bilan har bir xost bo'yicha jurnal yozishni mazmunli qiladi. Ikki LAN ustma-ust tushganda o'rta xostda tarjima qilish soddaroq, lekin jurnallarda manba shaxsini yo'qotish evaziga. Tanlashdan oldin qaysi xususiyat muhimligini hal qiling.
Qatlamlarni to'rt tekshiruv bilan ajrating
Uch narsani o'zgartirib umid qilish o'rniga har bir qatlam uchun bitta tekshiruv o'tkazing. Birinchisi har bir tengdosh uchun qo'l siqish yoshini va hisoblagichlarni ko'rsatadi. Ikkinchisi mijoz o'sha manzilni haqiqatan tunnelga yo'naltirishini ko'rsatadi. Uchinchisi va to'rtinchisi so'rov yetib kelganini va kelgandan keyin qandaydir siyosat uni tashlab yuborganini aytadi.
wg show ip route get 192.168.50.20 tcpdump -ni wg0 icmp iptables -vnL FORWARD --line-numbers
Yetib kelib, javob tug'dirmagan so'rov javob yo'liga yoki LAN xostiga ishora qiladi. Hech qachon yetib kelmagan so'rov AllowedIPs yoki mijoz marshrutiga ishora qiladi. Bu ikki natija har xil tuzatishni talab qiladi va ularni aynan tutib olish ajratadi.