Како дати једној тест LAN мрежи сопствени WireGuard излаз
Ограничите једну LAN мрежу на WireGuard излаз са наменском табелом рутирања и недоступним чуваром, док пролаз задржава своју уобичајену подразумевану WAN руту.
Три решења решавају исти лабораторијски проблем: мала 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 и оне по сучељу, па подешавање тунелског сучеља није исто што и слабљење провере свуда.
Докажите то случајем отказа
Питајте језгро прецизно питање именујући изворну адресу клијента и сучеље на које стиже. Претрага без оба одговара на друго питање и изгледаће исправно у оба случаја. Затим погледајте бројаче заштитног зида, стање преноса код партнера и сопствену услугу клијента.
Исправно испробајте уклањање. Зауставите тунел остављајући правило и филтер на месту: клијент би требало да застане, а сопствени саобраћај капије да настави да ради. Затим зауставите партнера без дирања локалног сучеља, и то је случај који хвата решења која се ослањају само на постојање руте. Најзад поново покрените и проверите редослед правила, јер кука за растављање која уклања чувара враћа цело решење главној табели. Запишите број табеле, приоритете и имена сучеља на тикету промене, јер следећа особа која дода правило је она која ће ово покварити.