Twee kliënte op een bediener ruil lêers uit, die oordrag slaag, en elke deurstuur-reël wat jy op die tonnel rig, rapporteer nul pakkette. Die reëls is nie stukkend nie en die ketting is nie verkeerd geplaas nie. Met eweknie-tot-eweknie-deursturing geaktiveer, word die pakket binne die bedienerproses afgelewer en die gasheerstapel word nooit die roeteerder nie, so daar is niks vir die kernvuurmuur om te tel nie. Om daardie skeiding te verstaan, bepaal of jy die kortpad hou of die pad deur die kern herbou.

Volg een pakket deur die bediener

In 'n geroteerde tonnel gee die daemon elke kliënt se ontsleutelde pakket aan die tonneltoestel. Van daar af roteer die gasheer dit, die deurstuur-haak loop, en 'n reël wat by die tonneltoestel pas, kan die verkeer tel of laat val. Dit is die pad wat die meeste vuurmuur-voorbeelde aanneem.

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

Die kortpad verwyder die gasheer uit die middel. Een sessie se ontsleutelde pakket word aan 'n ander sessie binne die daemon gegee, en die binnepakket word nooit op die tonneltoestel uitgestuur of deur die gasheer geroteer nie. Geënkapsuleerde verkeer steek steeds die fisiese koppelvlak oor, so 'n buitenste opname lyk besig terwyl die binne-reëls stil bly. 'n Opname wat op die tonneltoestel geneem is, wys glad niks, wat enigiemand verras wat verwag om die oordrag daar te sien. Daardie asimmetrie is die vinnigste manier om die kortpad van buite die daemon te herken.

Die tellertoets wat bepaal watter pad geloop het

Heg 'n teller aan die reël wat behoort te geld, hardloop 'n oordrag tussen twee kliënte wat daardie reël behoort te blokkeer, en lees die teller daarna.

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

As die oordrag slaag en die teller op nul bly, het die kern daardie pakkette nooit hanteer nie, en geen hoeveelheid reël-redigering sal dit verander nie. Herhaal dieselfde toets teen 'n diens op die bediener self, want daardie vloei beweeg wel deur die gasheerstapel en sy teller beweeg. Om die twee resultate te vergelyk, is wat die antwoord lewer.

Twee besonderhede verhoed 'n valse lesing. 'n Koppelvlaknaam wat in 'n kettingetiket geskryf is, filtreer niks op sigself nie, want passing gebeur op koppelvlakvelde binne reëls. En 'n oorbrugde laag-2-ontwerp gedra hom weer anders: daar deel die kliënte 'n uitsaaidomein, so eweknie-ontdekking is verwag eerder as 'n roeteerfout.

'n Skakelaar is nie 'n toegangslys nie

Dit is die deel wat 'n middag kos. Eweknie-deursturing is 'n enkele aan-of-af-instelling, en terwyl dit aan is, is die daemon die enigste deurstuurpunt. Die gasheer-vuurmuur kan nie uitdruk wie wie mag bereik nie, en per-kliënt-lêers verander nie die skakelaar in 'n beleidsmatriks nie.

As jy per-eweknie-reëls nodig het, is die keuse tussen om die kortpad prys te gee en om die gasheer-vuurmuur as die beheer prys te gee. Om dit af te skakel, herstel kern-deursturing, wat IP-deursturing op die bediener en eksplisiete reëls vir die vloei wat jy wil hê, vereis. Om dit aan te hou, beteken die beleid leef in die daemon se konfigurasie, wat in die praktyk alle eweknieë of geen eweknieë is.

Aparte bedienerprosesse met hul eie adrespoele en poorte is die werkbare middeweg. Elke proses dra presies een toegangsbesluit, so twee groepe kan verskillende reëls hê sonder 'n beleidsmatriks. Die gasheer kan tussen die poele roteer wanneer dit bedoel is, en die vuurmuur sien dan daardie vloei omdat hulle die gasheer oorsteek. Die koste is ekstra poorte, ekstra sertifikate en 'n profiel per groep.

Kies die deurstuurpunt

Kies kern-deursturing wanneer die vuurmuur die beleidsenjin is, wanneer jy logs per vloei nodig het, of wanneer verantwoording saak maak. Die koste is deurvloei deur die gasheerstapel en meer reëls om te onderhou. Die voordeel is dat elke bestaande gereedskap, van tellers tot vloei-uitvoerders, die verkeer weer beskryf. Op 'n klein bediener is daardie koste onsigbaar; op 'n besige aflos is dit nie.

Kies in-proses-deursturing wanneer eweknie-verkeer óf alles toegelaat óf alles geweier is en die bediener daarvoor geskaal is. Die koste is dat tellers, toureekse en verbindingnasporing die binnestrome nie meer beskryf nie; dit is net aanvaarbaar as niemand later daarop staatmaak nie.

Watter een jy ook kies, skryf dit neer langs die vuurmuur-reëls. 'n Reëlstel wat lyk of dit eweknie-verkeer toelaat terwyl die daemon dit in elk geval besluit, mislei die volgende persoon wat 'n mislukte oordrag ontfout. Enigiemand wat net die reëls lees, sal aanneem die kern is die hek.

Wat om na te gaan voordat jy reëls verander

Lees die konfigurasie wat die bediener werklik gelaai het, nie die lêer wat jy onthou jy geredigeer het nie, en bevestig of die eweknie-opsie teenwoordig is. As jy dit verander het, maak seker die diens het herlaai eerder as om net 'n lêer op skyf te herskryf.

Herhaal dan die toets met 'n kliënt-tot-bediener-vloei om te bewys die reël pas hoegenaamd, en gaan die gestuurde roetes na, want 'n ontbrekende roete lyk presies soos 'n vuurmuur-blokkade van die kliënt se kant. Verander reëlvolgorde eers nadat jy weet watter deurstuurpunt die besluit besit.

Verwante artikels