VPN туннель firewall-ыг давах эсэхийг хоёр тусдаа дүрэм шийднэ: клиент холбогдох порт болон ачааг зөөх протокол. Зөвхөн эхнийхийг нээвэл туннель баталгаажиж, дараа нь өгөгдөл хөдлөхгүй. Хамгийн бага нь PPTP-д нэг TCP порт болон GRE, L2TP/IPsec болон IKEv2-д хоёр UDP порт болон ESP, SSTP, OpenVPN, WireGuard-д тус бүр нэг порт. Чиглэл, төлөв хяналт болон NAT үлдсэнийг шийднэ.

Клиент холбогдох портоос эхэл

Гэр бүл бүр клиент хамгийн түрүүнд хандах нэвтрэх цэгтэй бөгөөд таны зөвшөөрлийн дүрэм яг тэр нэвтрэх цэгийг нэрлэх ёстой. PPTP клиентүүд TCP 1723-т холбогдоно. L2TP/IPsec UDP 500 дээр IKE эхлүүлж, NAT дамжуулалт ашиглах үед UDP 4500 руу шилжинэ, L2TP хүрээ өөрөө туннелийн дотор UDP 1701 дээр байна. SSTP сессийг TCP 443 дээр TLS-д ороож, IKEv2 UDP 500 болон 4500 дээр хэлэлцээр хийж, OpenVPN анхдагчаар UDP 1194 ашигладаг ч ихэвчлэн TCP 443 руу зөөгддөг, WireGuard UDP 51820 дээр сонсдог.

FamilyRule to add on the gatewayTypical mistake
WireGuardUDP port from ListenPort, for the peer addressAssuming 51820 when the config says otherwise
OpenVPNThe configured UDP or TCP port, often 443Opening 1194 after the server moved
SSTPTCP 443 limited to the gateway IPAllowing 443 to any destination
IKEv2UDP 500 and UDP 4500, plus ESPAllowing only 500 and losing NAT-T
L2TP/IPsecUDP 500, 4500, ESP, and 1701 inside the tunnelExposing 1701 to the internet
PPTPTCP 1723 and IP protocol 47Writing a rule for TCP 47

Эдгээр тоог тогтмол шинж биш, анхдагч утга гэж үзээрэй. WireGuard интерфейс өөрийн тохиргоонд зарласан дурын сонсох портыг ашигладаг, OpenVPN сервер администраторын сонгосон дурын порт дээр сууж болно. Дүрэм бичихээс өмнө серверийн тохиргоог уншаарай, учир нь 1194-д нээсэн firewall 443 руу зөөсөн серверт юу ч хийхгүй.

Гурав дахь багана бол өөрчлөлтийн тасалбаруудын ихэнх нь алдаа гардаг газар. Дүрэм байгаа боловч буруу очих газар, буруу чиглэл эсвэл буруу зөөвөрлөлт рүү зааж байна.

GRE болон ESP нь протоколын дугаар, порт биш

GRE болон ESP-д порт огт байхгүй тул зөвхөн портын дугаар хүлээж авдаг firewall маягт тэдгээрийг илэрхийлж чадахгүй. GRE нь IP протокол 47, ESP нь IP протокол 50 бөгөөд хоёулаа IP толгойн протоколын талбараар таарч байна. TCP порт 47 гэж бичсэн дүрэм юутай ч таарахгүй бөгөөд ингэснээр PPTP бодлого зөв харагдаж байгаа ч гар барилдсаны дараах бүх пакетыг хаядаг.

Хэрэглэгчийн маршруулагчид үүнийг дамжуулалтын чагтны цаана нууж, протоколын дүрмийг суулгаж, GRE-ийн хувьд урсгалыг зураглахад хэрэгтэй NAT туслахыг суулгадаг. Жинхэнэ firewall дээр протоколыг өөрөө нэмнэ: PPTP сервер рүү IP протокол 47-г зөвшөөр, IPsec гарц руу IP протокол 50-г зөвшөөр. Платформ протоколын талбар санал болгохгүй газар инкапсуляци нь гарц бөгөөд иймээс IKEv2 UDP 4500 руу буцаж болдог, OpenVPN болон WireGuard энэ асуудалтай хэзээ ч тулгардаггүй.

Клиентийг буруутгахаас өмнө дүрэм юутай үнэхээр таарч байгааг шалгаарай. Гарц дээр тэг дээр үлдэх пакетын тоолуур дүрэм хэзээ ч ажиллаагүй гэж хэлнэ, клиент талд хэдэн ч удаа дахин суулгасан ч энэ нь өөрчлөгдөхгүй.

Чиглэл, төлөв болон NAT хариултыг өөрчилнө

Гадагш холбогддог клиент болон дотогш сонсдог гарц нь өөр шаардлага бөгөөд ижил портын жагсаалт нэг чиглэлд зөв, нөгөөд буруу байж болно. Төлөв мэддэг firewall 500 болон 4500 дээрх UDP урсгалыг хянаж, хоёр дахь дүрэмгүйгээр хариултыг буцаана. ESP болон GRE порт зөөдөггүй тул NAT төхөөрөмжид барих зүйл байхгүй бөгөөд сессийг дагахын тулд туслах эсвэл инкапсуляци хэрэгтэй.

NAT дамжуулалт бол алдагдах хэсэг. IKEv2 UDP 500 дээр эхэлж, NAT төхөөрөмжийг илрүүлээд UDP 4500 дээр үргэлжилдэг тул зөвхөн 500-г зөвшөөрсөн бодлого тогтсоны дараа чимээгүй болох туннель өгдөг. L2TP/IPsec мөн адил хөдөлгөөн хийдэг. Хэрэв таны бичлэг эхний солилцоог үзүүлж, тогтмол урсгалыг үзүүлэхгүй бол 500 дээр зогсдог дүрмийг хай.

Дүрэм бүртэй чиглэлийг тэмдэглэ. «UDP 4500-г зөвшөөр» гэдэг нь хаанаас хаашаа гэдгийг хэлэх хүртэл юу ч гэсэн үг биш бөгөөд аялж буй клиентэд зөв дүрэм нь ихэвчлэн сайт хоорондын түншэд буруу байдаг.

Зам бүрийг бичлэгээр шалга

Бичлэгийг клиент дээр биш, гарц дээр ажиллуул: клиент зөвхөн ирснийг бүртгэнэ. Эдгээр шүүлтүүр дээрх гэр бүлүүдийг хамарч, аль шат дутуу байгааг харуулна:

sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50

Гаралтыг дараалал гэж унш. Хэлэлцээр харагдаж, ачааны протокол харагдахгүй бол, хаялт клиент болон гарцын хооронд хаа нэгтээ болдог. Хоёулаа харагдаж, хуудас ажиллахгүй бол firewall цаашид сэжигтэн биш; маршрутлалт, DNS эсвэл клиентэд өгсөн хаягийн санг хар.

tcpdump байхгүй төхөөрөмж дээр ижил нотолгоо интерфейс болон дүрмийн тоолуураас гардаг. Туннелийн интерфейс дээр байт орж ирээд гарч чадахгүй бол энэ нь эхний зөвшөөрлийн дүрэм рүү биш, буцах зам руу зааж байна.

Хамгаалж чадах дүрмийн багцыг үлдээ

TCP 443 дээрх SSTP нь портод суурилсан аливаа шүүлтүүрт ердийн HTTPS-ээс ялгагдахгүй бөгөөд сүлжээ зөвхөн вэб хөдөлгөөнийг зөвшөөрөх үед энэ нь зорилго юм. Тиймээс 443-ийн дүрэм очих газрыг бүх интернетаар биш, гарцаар нэрлэх ёстой. Туннель ажиллаж эхлэнгүүт түр зуурын хаанаас-хаашаа ч гэсэн дүрмийг устга. Аль дүрэм таарсан, хаана байвал протоколын дугаар, чиглэлийг бичээрэй, дараагийн хүн нотолгооноос эхлэх болно.

Үүлэн цэгээс-сайт руу гарцууд сонголтыг харагдуулна: татсан профайл нь 443 дээр SSTP эсвэл 500 болон 4500 дээр IKEv2 ашигладаг тул профайл үнэхээр сонгосныг л нээх ёстой. PPTP орчин үеийн сүлжээнд GRE-ийн үл хамаарах зүйлийг хүртэхгүй, учир нь гар утасны операторууд таны firewall-аас үл хамааран 47 протоколыг ихэвчлэн хаядаг. Тасалбар хаахаас өмнө дүрэм серверийн тохиргооны порттой тохирч байгаа, протоколын талбар гэр бүлд хэрэгтэй газарт тавигдсан, очих газар нь дурын хаяг биш гарц гэдгийг батал.

Холбоотой нийтлэлүүд