ZeroTier ка локалној мрежи: UFW правила руте, а не дозвола порта
Дозволити порт на пролазу није исто што и прослеђивање ка хосту иза њега. Поставите управљану руту, омогућите транзит и изаберите пут повратка.
Доћи до штампача на канцеларијској локалној мрежи преко члана ZeroTier звучи као једно правило, али у ствари су то три одлуке на три различита места. Оверлеј мора да зна где је локална мрежа, домаћин Linux мора да буде вољан да прослеђује пакете, а локална мрежа мора да зна како да пошаље одговор назад. Улазно правило које отвара порт на пролазу не дотиче ниједно од тога. То је погрешан алат на исправном домаћину.
Три посла, три власника
Управљана рута припада конфигурацији ZeroTier мреже. Она говори члановима да је префикс доступан преко одређене адресе члана.
Прослеђивање припада Linux језгру и ономе ко поседује политику његовог заштитног зида. Оно одлучује да ли ће пакет који стигне на оверлеј поново изаћи на физички интерфејс. Домаћин који не прослеђује тихо ће одбацити пакет након што га прихвати. Пошиљалац види истек времена и у дневнику услуге се ништа не појављује.
Пут повратка припада локалној мрежи. Њени домаћини и њен рутер морају да знају да је префикс оверлеја доступан преко LAN адресе вашег пролаза, или нешто мора да преведе саобраћај тако да се то питање уопште не постави.
Свако од тога може бити тачно док остала не успевају, и зато тест који само пингује пролаз не доказује ништа о услузи иза њега.
Усмерите управљану руту ка члану
Додајте руту за жељени префикс локалне мреже преко адресе оверлеја пролаза, а не преко његове LAN адресе. Адреса оверлеја је она до које други чланови могу да дођу; LAN адреса има смисла само на каблу.
Чланови морају да прихвате управљане руте да би пројекат радио, а њихове сопствене локалне мреже не смеју већ да користе префикс који оглашавате. Удаљени преносни рачунар који је код куће на 192.168.60.0/24 не може такође да усмерава 192.168.60.0/24 преко оверлеја.
Држите оглашени префикс што ужим колико задатак дозвољава. Оглашавање већег агрегата ради утицаја на преференцију може такође да затражи адресни простор који није ваш, а настали сукоб се појављује на уређајима повезаним на обе мреже. То може и да натера члана да преферира пут који никуда не води. Држите руту честитом и пустите политику да одради остало.
Упишите префикс и адресу члана у исту белешку као правила заштитног зида, јер је најчешћа грешка рута која показује на погрешног члана.
Омогућите транзит у језгру
Прочитајте тренутну вредност прослеђивања пре него што било шта промените, па поставку учините трајном механизмом који ваш систем већ користи, а не једнократном наредбом која нестаје при рестартовању.
Ако политику поседује UFW, његова правила руте изражавају прослеђивање за пар извора, одредишта и интерфејса. Она су одвојена од улазних правила која отварају услугу на самом пролазу:
sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose
Назив интерфејса је стварни уређај оверлеја на том домаћину, који можете прочитати из ip link; то није фиксни низ у свим инсталацијама. Ако домаћин прослеђује подразумевано и UFW није на путу, правило руте ће бити игнорисано и подешавања језгра су оно што је важно.
Изаберите како се одговори враћају
Уз очување извора, услуга у локалној мрежи види праву адресу оверлеја и одговара на њу. То захтева руту на домаћину локалне мреже или на његовом рутеру која усмерава префикс оверлеја на ваш пролаз, а то је промена изван Linux кутије.
Када се та рута не може додати, ограничено превођење извора чини да захтев изгледа као да долази са пролаза у локалној мрежи. Одговори се тада враћају локално и није потребна промена усмеравања локалне мреже, по цени губитка изворног извора у дневницима услуге.
Ограничите превођење на извор оверлеја и конкретно одредиште у локалној мрежи. Превођење свега што напушта интерфејс локалне мреже је шира верзија која касније изненади свакога ко чита правила, а и скрива саобраћај који је требало да буде блокиран.
Ниједан избор не даје непожељан приступ из локалне мреже назад ка произвољним члановима оверлеја. Ако се то жели, то је засебно правило са сопственим прегледом.
Тестирајте са правог члана
Повежите се са другог члана, а не са пролаза, и затражите једну дозвољену услугу. Затим покушајте услугу која треба да остане затворена, и поновите оба теста након поновног повезивања и након рестартовања пролаза.
Члан који пријави ONLINE, или успешан пинг на адресу оверлеја пролаза, не потврђује руту, правило прослеђивања ни пут повратка:
zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered
Друга наредба показује који би интерфејс пакет користио за домаћина локалне мреже, а трећа да ли правило руте постоји у облику који сте намеравали. Ако обоје изгледа исправно, а услуга и даље истиче, пут повратка је преостали осумњичени.