Cieľ je rozumný: k službám na tomto stroji majú pristupovať len používatelia tunela. Riešenie, po ktorom ľudia siahnu, je prichádzajúci reťaz IPv6, ktorý zahodí všetko okrem WireGuardu, a tým zahodí aj prevádzku, ktorá drží host pripojený k jeho vlastnému spoju. Objavovanie susedov a správy o údržbe cesty nie sú prístupom k službám a ich odstránenie vytvorí stroj nedostupný z dôvodov nesúvisiacich s vašou politikou. Tunel naskočí, služby sú správne ohraničené a nič iné na spoji nefunguje.

Tri zodpovednosti, jedna sada pravidiel

Prvá zodpovednosť je prevádzka vonkajšej siete: host musí zostať pripojený k svojmu spoju, prekladať susedov a poznať limity cesty toho spoja. Druhá je šifrovaný poslucháč, ktorý prijíma UDP na adrese a porte, ktoré ste zvolili. Tretia je sada dešifrovaných služieb, ku ktorým majú používatelia tunela dosiahnuť.

To sú tri rôzne politiky a len druhá a tretia sa týkajú VPN. Sada pravidiel, ktorá ich berie ako jednu, dedí režim zlyhania, v ktorom utiahnutie hranice aplikácie potichu rozbije pripojenie hostu.

Držte ich v oddelených reťazcoch alebo aspoň v oddelených komentároch, aby ďalší človek videl, ktorý riadok existuje z akého dôvodu.

Čo ICMPv6 robí pre host

IPv6 sa na ICMPv6 spolieha pri oveľa viac veciach než pri echu. Žiadosť a oznámenie suseda nahrádzajú ARP a sú potrebné na miestne doručenie. Packet Too Big nesie informáciu o MTU cesty a jeho ignorovanie vedie k prenosom, ktoré sa pri veľkých paketoch zaseknú. Oznámenia smerovača nesú predvolenú trasu a informáciu o prefixe, keď spoj používa automatickú konfiguráciu.

RFC 4890 oddeľuje správy, ktoré musí filter hostu povoliť, od tých, ktoré sú administratívnou voľbou, a robí tak v časti pre host odlišnej od pravidiel pre smerovač, ktorý preposiela medzi sieťami. Čítanie iba časti o preposielaní vedie k prichádzajúcej politike, ktorá je pre chránený host príliš prísna.

Praktické pravidlo je povoliť podstatné chybové a konfiguračné správy na rozhraní, ktoré ich potrebuje, obmedziť ich podľa typu a zdroja tam, kde to platforma umožňuje, a o ostatných rozhodnúť výslovne.

Nahradiť to všetko plošným povolením ICMPv6 vyrieši dostupnosť a vzdá sa filtrovania. Nahradiť ho plošným zahodením vyrieši filtrovanie a vzdá sa hostu.

Pusťte tunel, potom službu

Prijmite transport WireGuardu na zamýšľanej vonkajšej adrese a UDP porte a spätnú prevádzku prijmite cez sledovanie spojení. Potom povoľte aplikačným službám prejsť rozhraním tunela, zo zdrojov, ktoré skutočne autorizujete.

Povolenie vonkajšieho UDP portu neautorizuje dešifrované požiadavky v jeho vnútri. Práve tento rozdiel je celý dôvod, prečo sa rozhranie tunela objavuje v pravidlách služieb.

Čítajte sadu pravidiel takú, aká je, nie ako ju opisuje súbor:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

Poslucháč na fyzickej adrese je samostatné vystavenie tej istej služby na adrese tunela. Ak stroj preposiela prevádzku aj na iný stroj, je to rozhodnutie reťazca preposielania, nie táto prichádzajúca politika, a potrebuje vlastné odôvodnenie.

Testujte spoj, nielen tunel

Fungujúci tunel po zmene dokazuje menej, než sa zdá, pretože existujúci záznam suseda a nadviazané spojenie môžu skryť riadiacu správu, ktorú politika teraz zahadzuje.

Skontrolujte pripojenie priamo a potom skontrolujte, že vylúčená cesta stále zlyháva:

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

Tabuľka susedov, ktorá po reštarte zostane úplná, je signál, že objavovanie stále funguje. Tabuľka, ktorá sa vyprázdni a už sa nikdy nenaplní, je signál, že ste ju vyfiltrovali. Tretí príkaz overí syntax sady pravidiel bez jej použitia, čo sa oplatí urobiť, kým máte ešte reláciu.

Obnovte host, z ktorého ste sa vyzamkli

Pred zmenou pravidiel firewallu, ktoré nesú vašu vlastnú administratívnu reláciu, majte druhý kanál: konzolu, sériové pripojenie alebo naplánovaný návrat, ktorý odstráni nové pravidlá, ak ho nezrušíte.

Ak vás zmena naozaj vyzamkne, obnova vedie cez ten kanál a nie cez sieť, ktorú ste práve odstránili. Obnovte predchádzajúcu sadu pravidiel z uloženej kópie, overte, že host je znova dostupný, a až potom znova zaveďte zamýšľanú politiku po menších častiach.

Konečná politika nie je univerzálna. Adresovanie, smerovanie a implementácia firewallu sú vstupy pre nasadenie, ale hranica je všade rovnaká: odmietnite nežiaduci prístup aplikácií a pritom zachovajte riadiacu prevádzku, ktorá nesie autorizovaný tunel.

Súvisiace články