To'rt protokol oilasi javonda hali turgan deyarli har bir qurilmani qamrab oladi va ularning har biri Linux'da boshqacha muvaffaqiyatsizlikka uchraydi. Sizga qaysi paket kerakligini uzoq tomon e'lon qilgan portlar va sozlangan takliflar belgilaydi, tasodifan ishlatayotgan distributivingiz emas. Forum postida aytilganini o'rnatib, keyin biror narsa ulanmaguncha tahrirlash — tushdan keyin vaqti shu tarzda yo'qoladi. Qurilmani o'qing, ikkinchi bo'lib o'rnating, uchinchi bo'lib tekshiring.

Uzoq tomon nima e'lon qilishini yozib oling

Paket menejerini ochishdan oldin qurilma kutayotgan protokol, portlar va autentifikatsiyani yozing. To'rt oila eski uskunalarning ko'p qismini qamrab oladi, pastdagi jadval esa bir ekranda butun qaror.

FamilyPortsLinux side
PPTPTCP 1723 plus GRE, IP protocol 47pppd with a peer file
L2TP/IPsecUDP 500, 4500, 1701NetworkManager plugin over strongSwan
IKEv1 aggressive with XAuthUDP 500native strongSwan connection
AnyConnect-style portalTCP 443openconnect with a TUN device

Qo'llanma va qurilmaning o'z xavfsizlik devori qoidalari uning kirish sahifasidagi protokol nomidan ishonchliroq. IPsec reklama qilayotgan qurilma faqat IKEv1 gapirishi mumkin, va hech kim qo'llamagan firmware chiqarilishi oxir-oqibat IKEv2 qo'shadigan narsa bo'lishi mumkin. Ham ma'lumot yo'lini, ham sozlash portini tasdiqlang, chunki eski uskuna bilan zamonaviy tarmoqlar aynan shu yerda ajraladi. Bu qadamda xato qilish — mijozingizni narigi tomon hech qachon ega bo'lmagan xususiyatga qarshi nosozliklarni tuzatish demakdir.

PPTP: pppd'ni tahrirlashdan oldin GRE'ni isbotlang

Linux'da PPTP siz ishga tushiradigan demon emas, pppd chaqiruvi, va ulanish parametrlari pppd chaqirilganda o'qiydigan nomlangan peer faylida yashaydi. Distributivlar uni hali ham paketlaydi, garchi protokolning ma'lum zaifliklari uni har qanday nozik narsa uchun yaroqsiz qilsa, shuning uchun uni faqat boshqa hech narsa taklif qilmaydigan qurilma uchun qat'iy saqlang. Mijoz muzokara olib borayotganda GRE'ni kuzating, taxmin o'rniga qisqa yozib olish bilan. Eng ko'p vaqt yo'qotadigan nosozlik autentifikatsiya emas, balki yo'qolgan ma'lumot yo'li.

pppd call branch-office
tcpdump -ni any proto gre -c 5

Agar sozlash tugasa va aloqa hech qachon trafik tashimasa, hisob ma'lumotlariga tegishdan oldin GRE yo'lidan shubhalaning. Bulut xavfsizlik guruhlariga 47 protokoli uchun aniq qoida kerak, ba'zi tarmoqlar esa uni ko'rinadigan xatosiz butunlay bloklaydi. Haqiqatan ishlatadigan tarmog'ingizdan sinab ko'ring, hamma narsaga ruxsat beradigan laboratoriyadan emas.

L2TP/IPsec: bitta mos taklif o'nta urinishni yengadi

Desktop muloqot o'rniga demon jurnalini o'qing, chunki muloqot bir necha turli nosozlikni bitta xabarga birlashtiradi. NO_PROPOSAL_CHOSEN xatosi birinchi fazaga tegishli: mijoz server qabul qilmaydigan shifrlash, xesh yoki Diffie-Hellman guruhini taklif qildi. Qurilma nimani qo'llab-quvvatlashini sanab o'ting va unga mos bitta taklif yozing, chunki tasodifiy kombinatsiyalar ko'pincha o'sha xatoni sekinroq beradi. Desktop'da amaliy mijoz — ostida strongSwan yoki Libreswan bo'lgan NetworkManager L2TP plaginidir.

Desktop plagini uchun bitta ma'no beradigan taklif satri ish topshiriladigan demon uchun boshqa ma'no berishi mumkin, shuning uchun tahrirlayotgan qatlamingizga mos sintaksisni saqlang. Agar qurilma tunnel sirrini ham talab qilsa, bu IPsec kalitidan alohida bosqich. Biror narsa yozishdan oldin interfeys qaysi birini so'rayotganini tasdiqlang.

XAuth bilan agressiv IKEv1 va portal holati

FortiGate uslubidagi endpoint odatda talab qiladi: XAuth bilan agressiv rejim va sozlangan rejim manzili, buni grafik plagin umuman ko'rsatmasligi mumkin. Mahalliy demon bu bilan shug'ullanadi, pastdagi blok esa to'liq fayl emas, o'sha konfiguratsiyaning shakli. Taklif qiymatlari uchun ishlab chiqaruvchining joriy hujjatlarini ko'ring.

conn branch
    keyexchange=ikev1
    aggressive=yes
    leftauth=psk
    leftauth2=xauth
    leftsourceip=%config
    right=203.0.113.10

strongSwan'ning eski chiqarilishlari 5-versiya leftauth2=xauth ishlatadigan joyda xauth=client ishlatgan, shuning uchun ko'chirilgan parcha faqat sintaksis tufayli muvaffaqiyatsiz bo'lishi mumkin. TLS portali uchun AnyConnect protokolida gapiradigan openconnect Cisco va ko'pchilik qayta brendlangan mahsulotlarni boshqaradi va unga TUN qurilmasi hamda uni sozlash huquqlari kerak. Portal manzilini brauzer ko'rsatganidek, qurilma kutayotgan har qanday yo'lni qo'shib bering, so'ng uning orqasida biror narsani sinashdan oldin ajratilgan manzilni tekshiring. Interfeysni oldindan yaratish sozlash paytida bir toifadagi kutilmagan holatlarni olib tashlaydi.

sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com

Ulaning, so'ng qat'iy tartibda tekshiring

Bir vaqtda aynan bitta VPN menejerini ishga tushiring, chunki NetworkManager profili va qo'lda ishga tushirilgan demon marshrutlar va DNS uchun kurashadi. Qo'lda ulanishni sinashdan oldin profilni tushiring va eski tunnel interfeysi qolmaganini tasdiqlang. So'ng shu tartibda tekshiring: tunnel manzili, kerak bo'lgan yagona ichki hostga marshrut, nomlarni hal qilish va nihoyat haqiqiy so'rov. Yashil belgi autentifikatsiyani isbotlaydi, boshqa hech narsani emas.

ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal

Agar biror qadam muvaffaqiyatsiz bo'lsa, keyingisini sinash o'rniga o'sha yerda to'xtang, chunki buzilgan marshrut ostidagi DNS nosozligi sizga hech narsa o'rgatmaydi. Sinashdan oldin ishlaydigan profil nusxasini saqlang, chunki o'chirilgan ulanish faylini yo'qotish oson va uni qayta qurish mashaqqatli. Taklif qiymatlarini qurilma modeli va firmware versiyasi bilan bir xil eslatmada saqlang, chunki quti almashtirilganda o'sha eslatma ko'chirish va arxeologiya loyihasi orasidagi farqdir.

O'xshash maqolalar