Три решенија го решаваат истиот лабораториски проблем: мала LAN мора да излезе преку WireGuard партнер, додека самата порта ја задржува вообичаената горна врска. Примамливиот кратен пат е да се премести стандардната рута на рутерот во тунелот, но тоа ја крши сопствената управувачка патека на кутијата и сѐ друго што таа го препраќа. Интересната опција е рутирање по политика ограничено на еден интерфејс и еден префикс. Изберете меѓу нив со одговор на три прашања за машината што навистина ја имате.

Одлучете каде живее излезот

Прво прашање: дали овој домаќин препраќа и за нешто друго? Посветена лабораториска порта може да живее со политика на препраќање што стандардно отфрла сѐ. Рутер со производствени обврски не може, а ставањето конкурентен сет правила врз управуван огнено ѕид е токму начинот на кој се закажуваат прекините. Второ: можете ли да поседувате два објекти на политика и нивниот редослед низ рестартирања? Трето: дали вашиот партнер ја овластува изворната адреса на тунелот и нуди излез на интернет? Партнер што открива само приватна мрежа е друг производ, и никаква локална промена на рутирањето тоа не го поправа. Ако некој одговор е не, ставете го излезот во именски простор или во виртуелна машина за една употреба.

Именскиот простор или VM чинат меморија и ви даваат чист радиус на експлозија. Рутирањето по политика чини две правила и ви остава една кутија за отстранување грешки.

Изберете го излезот што го овластува вашиот извор

Повеќето неуспеси во оваа лабораторија се случуваат пред да постои и едно правило на огнениот ѕид. Операторот на излезот мора да ја прифати изворната адреса што ја носат вашите пакети по преводот, а во ова решение тоа е адресата на тунелот, а не префиксот на LAN. Затоа маскирањето припаѓа на решението од самиот почеток, а не како доцен додаток.

Потврдете три работи кај операторот: партнерот ја овластува адресата на вашиот тунел, тој препраќа IPv4 наместо да заврши на себе, и применува излезен NAT. Без првото, вашите пакети пристигнуваат и исчезнуваат. Без третото, тие излегуваат со приватно извориште и умираат на следниот скок. Потоа проверете дека wg-quick не инсталира своја стандардна рута, што го спречува Table = off; таа поставка го потиснува создавањето рути, а не проверките на AllowedIPs кај партнерот или неговото ракување со DNS.

Два објекта на политика го вршат насочувањето

Насочувањето бара табела и правило. Табелата држи две рути: префиксот на LAN надвор од LAN интерфејсот и стандардна рута надвор од тунелот. Правилото го праќа во табелата сообраќајот што пристигнува на LAN интерфејсот и го носи тој префикс. Користете го селекторот iif заедно со совпаѓањето на изворот, бидејќи сопствените WireGuard пакети на портата настануваат локално и никогаш не се совпаѓаат со влезен интерфејс.

Чуварот доаѓа пред пребарувањето, не по него. Токму тој редослед е целата безбедносна особина на решението.

Чуварот е второ правило на истиот селектор чија пресуда е unreachable. Дајте му повисок нумерички приоритет за пребарувањето да победува додека тунелот е кренат, а сѐ уште е активен. Кога рутата на тунелот ќе исчезне, пребарувањето не враќа ништо и чуварот го запира барањето наместо да го остави да падне на стандардната WAN рута во главната табела.

ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0

Затворете ја празнината за отстапување пред да ја отворите

Инсталирајте го прво чуварот, а потоа пребарувањето. Обратниот ред остава прозорец од секунди во кој сообраќајот на тест-клиентот може да ја достигне горната врска.

Филтерот ја комплетира сликата. Во куката forward прифатете го правецот од LAN кон тунелот за тест-префиксот и воспоставениот повратен правец, потоа отфрлете сѐ друго; NAT-от за тој префикс на тунелскиот интерфејс оди во postrouting. Токму оставањето на policy drop на синџирот за препраќање е она што ја претвора рутата што недостасува во тишина наместо во истекување. Филтрирањето на обратната патека бара лабав режим на тунелскиот интерфејс, бидејќи јавниот извор што пристигнува декапсулиран ја има својата најдобра обратна рута на страната на WAN. Linux ја зема повисоката од вредностите all и по интерфејс, па поставувањето на тунелскиот интерфејс не е исто што и слабеење на проверката насекаде.

Докажете го со случајот на отказ

Прашајте го јадрото прецизно прашање со именување на изворната адреса на клиентот и интерфејсот на кој пристигнува. Пребарување без двете одговара на друго прашање и ќе изгледа точно во двата случаи. Потоа погледнете ги бројачите на огнениот ѕид, состојбата на преносот кај партнерот и самата услуга на клиентот.

Тестирајте го отстранувањето како што треба. Запрете го тунелот оставајќи го правилото и филтерот на место: клиентот треба да застане, а сопствениот сообраќај на портата треба да продолжи да работи. Потоа запрете го партнерот без да го допрете локалниот интерфејс, и тоа е случајот што ги фаќа решенијата што се потпираат само на постоењето на рутата. Најпосле рестартирајте и проверете го повторно редоследот на правилата, бидејќи куката за расклопување што го отстранува чуварот го враќа целото решение на главната табела. Запишете го бројот на табелата, приоритетите и имињата на интерфејсите на билетот за промена, бидејќи следниот човек што ќе додаде правило е тој што ќе го скрши ова.

Поврзани статии