Dva odjemalca na enem strežniku si izmenjujeta datoteke, prenos uspe, vsako pravilo posredovanja, usmerjeno na tunel, pa poroča nič paketov. Pravila niso pokvarjena in veriga ni na napačnem mestu. Ko je posredovanje med enakovrednimi vozlišči vklopljeno, se paket dostavi znotraj procesa strežnika in sklad gostitelja nikoli ne postane usmerjevalnik, zato jedrna požarna pregrada nima česa šteti. Razumevanje te ločitve odloči, ali obdržite bližnjico ali pot znova zgradite skozi jedro.

Sledite enemu paketu skozi strežnik

V usmerjenem tunelu daemon izroči odšifriran paket vsakega odjemalca tunelski napravi. Od tam ga gostitelj usmeri, sproži se kavelj posredovanja in pravilo, ki se ujema s tunelsko napravo, lahko promet šteje ali zavrže. To je pot, ki jo predpostavlja večina primerov požarne pregrade.

Forwarding pathWho decidesWhat the host firewall sees
Kernel routing between clientsHost routing table and forward rulesEvery inner packet, with interface names
Peer forwarding inside the server processThe VPN daemon's own peer tableOnly the outer encrypted transport

Bližnjica odstrani gostitelja iz sredine. Odšifriran paket ene seje se izroči drugi seji znotraj daemona in notranji paket se nikoli ne odda na tunelsko napravo niti ga gostitelj ne usmeri. Inkapsuliran promet še vedno prečka fizični vmesnik, zato je zunanji zajem videti zaseden, medtem ko notranja pravila molčijo. Zajem na tunelski napravi ne pokaže prav ničesar, kar preseneti vsakogar, ki tam pričakuje opazovanje prenosa. Ta asimetrija je najhitrejši način za prepoznavo bližnjice zunaj daemona.

Preizkus s števcem, ki razsodi, katera pot je bila uporabljena

Pripnite števec na pravilo, ki bi moralo veljati, zaženite prenos med dvema odjemalcema, ki bi ju to pravilo moralo blokirati, in nato preberite števec.

sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward

Če prenos uspe in števec ostane na ničli, jedro teh paketov ni nikoli obdelalo in nobeno urejanje pravil tega ne bo spremenilo. Ponovite isti preizkus proti storitvi na samem strežniku, ker ta tok res prečka sklad gostitelja in se njegov števec premakne. Prav primerjava obeh rezultatov da odgovor.

Dve podrobnosti preprečita napačno branje. Ime vmesnika, zapisano v oznaki verige, samo po sebi ne filtrira ničesar, ker se ujemanje zgodi na poljih vmesnika znotraj pravil. In mostovna zasnova 2. plasti se obnaša še drugače: tam si odjemalci delijo eno oddajno domeno, zato je odkrivanje enakovrednih vozlišč pričakovano in ne napaka pri usmerjanju.

Stikalo ni seznam za dostop

To je del, ki stane popoldne. Posredovanje med enakovrednimi vozlišči je ena nastavitev vklopljeno ali izklopljeno in dokler je vklopljena, je daemon edina točka posredovanja. Požarna pregrada gostitelja ne more izraziti, kdo lahko doseže koga, datoteke po odjemalcih pa stikala ne spremenijo v matriko pravil.

Če potrebujete pravila po vozliščih, je izbira med odpovedjo bližnjici in odpovedjo požarni pregradi gostitelja kot nadzoru. Izklop obnovi posredovanje skozi jedro, kar zahteva vklopljeno posredovanje IP na strežniku in izrecna pravila za želene tokove. Če ostane vklopljena, pravilo živi v konfiguraciji daemona, kar v praksi pomeni vsa vozlišča ali nobeno.

Ločeni strežniški procesi z lastnimi bazeni naslovov in vrati so izvedljiva srednja pot. Vsak proces nosi natanko eno odločitev o dostopu, zato imata lahko dve skupini različna pravila brez matrike pravil. Gostitelj lahko usmerja med bazeni, kadar je to mišljeno, in takrat požarna pregrada vidi te tokove, ker prečkajo gostitelja. Cena so dodatna vrata, dodatna potrdila in profil na skupino.

Izbira točke posredovanja

Izberite posredovanje skozi jedro, ko je požarna pregrada gonilo pravil, ko potrebujete beleženje po tokovih ali ko je pomembno obračunavanje. Cena je prepustnost skozi sklad gostitelja in več pravil za vzdrževanje. Prednost je, da vsako obstoječe orodje, od števcev do izvoznikov tokov, znova opisuje promet. Na majhnem strežniku je ta cena nevidna; na zasedenem posredovalniku ni.

Izberite posredovanje znotraj procesa, ko je promet med enakovrednimi vozlišči bodisi ves dovoljen bodisi ves prepovedan in je strežnik temu primerno dimenzioniran. Cena je, da števci, discipline čakalne vrste in sledenje povezavam ne opisujejo več notranjih tokov; to je sprejemljivo le, če se pozneje nihče ne zanaša nanje.

Karkoli izberete, zapišite to ob pravilih požarne pregrade. Nabor pravil, ki je videti, kot da dovoljuje promet med enakovrednimi vozlišči, medtem ko daemon vseeno odloča, zavaja naslednjega človeka, ki bo razhroščeval neuspešen prenos. Kdor bere samo pravila, bo domneval, da so vrata jedro.

Kaj preveriti pred spremembo pravil

Preberite konfiguracijo, ki jo je strežnik dejansko naložil, ne datoteke, ki se je spomnite kot urejene, in potrdite, ali je možnost za vozlišča prisotna. Če ste jo spremenili, poskrbite, da se je storitev znova naložila in ni samo prepisala datoteke na disku.

Nato ponovite preizkus s tokom od odjemalca do strežnika, da dokažete, da se pravilo sploh ujema, in preverite potisnjene poti, ker manjkajoča pot je s strani odjemalca videti natanko kot blokada požarne pregrade. Vrstni red pravil spremenite šele, ko veste, katera točka posredovanja ima odločitev.

Sorodni članki