Blokiranje IPv6 radi zaštite WireGuarda ruši host
Pravilo koje odbacuje sav dolazni IPv6 uklanja i otkrivanje susjeda i Packet Too Big. Razdvojite tri odgovornosti pa provjerite da host još radi.
Cilj je razuman: samo korisnici tunela trebaju dosegnuti usluge na ovom računalu. Rješenje kojem se pribjegava je dolazni lanac IPv6 koji odbacuje sve osim WireGuarda, a time odbacuje i promet koji drži host priključen na njegovu vlastitu vezu. Otkrivanje susjeda i poruke za održavanje putanje nisu pristup usluzi, a njihovo uklanjanje daje stroj nedostupan iz razloga koji nemaju veze s vašom politikom. Tunel se podiže, usluge su ispravno ograničene i ništa drugo na vezi ne radi.
Tri odgovornosti, jedan skup pravila
Prva je odgovornost rad vanjske mreže: host mora ostati priključen na svoju vezu, razrješavati susjede i učiti granice putanje te veze. Druga je šifrirani slušatelj, koji prihvaća UDP na adresi i portu koje ste odabrali. Treća je skup dešifriranih usluga do kojih želite da korisnici tunela dođu.
To su tri različite politike i samo se druga i treća odnose na VPN. Skup pravila koji ih tretira kao jedno nasljeđuje način otkaza u kojem zatezanje granice aplikacije tiho lomi priključenost hosta.
Držite ih u odvojenim lancima ili barem odvojenim komentarima, da sljedeća osoba vidi koja linija postoji zbog čega.
Što ICMPv6 čini za host
IPv6 se oslanja na ICMPv6 za mnogo više od odjeka. Zahtjev i objava susjeda zamjenjuju ARP i potrebni su za lokalnu dostavu. Packet Too Big nosi informaciju o MTU putanje, a ignoriranje toga daje prijenose koji zapinju na velikim paketima. Objave usmjerivača nose zadanu rutu i informaciju o prefiksu kad veza rabi automatsku konfiguraciju.
RFC 4890 razdvaja poruke koje filtar hosta mora propustiti od onih koje su administrativni izbor, i to u odjeljku za host koji se razlikuje od pravila za usmjerivač koji prosljeđuje između mreža. Čitanje samo odjeljka o prosljeđivanju daje dolaznu politiku koja je prestroga za host koji štiti.
Praktično pravilo je dopustiti osnovne poruke o pogreškama i konfiguraciji na sučelju kojem trebaju, ograničene po vrsti i izvoru gdje platforma to dopušta, i donijeti izričitu odluku o ostalima.
Zamijeniti sve to sveobuhvatnim dopuštanjem ICMPv6 rješava problem dostupnosti i odriče se filtriranja. Zamijeniti ga sveobuhvatnim odbacivanjem rješava problem filtriranja i odriče se hosta.
Pustite tunel, pa uslugu
Prihvatite WireGuard promet na predviđenoj vanjskoj adresi i UDP portu, a povratni promet prihvatite kroz praćenje veza. Zatim dopustite aplikacijskim uslugama da prođu kroz sučelje tunela, s izvora koje doista ovlašćujete.
Dopuštenje za vanjski UDP port ne ovlašćuje dešifrirane zahtjeve unutar njega. Ta razlika cijeli je razlog zašto se sučelje tunela pojavljuje u pravilima usluga.
Čitajte skup pravila onakav kakav jest, a ne kako ga datoteka opisuje:
sudo nft list ruleset
ip -6 addr show
ip -6 route show default
Slušatelj na fizičkoj adresi odvojeno je izlaganje od iste usluge na adresi tunela. Ako stroj također prosljeđuje promet na drugi stroj, to je odluka lanca prosljeđivanja, a ne ova dolazna politika, i traži vlastito obrazloženje.
Testirajte vezu, ne samo tunel
Tunel koji radi nakon promjene dokazuje manje nego što izgleda, jer postojeći unos susjeda i uspostavljena veza mogu sakriti kontrolnu poruku koju politika sada odbacuje.
Provjerite priključenost izravno, pa provjerite da izuzeta putanja još pada:
ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf
Tablica susjeda koja ostane potpuna nakon ponovnog pokretanja znak je da otkrivanje još radi. Tablica koja se isprazni i nikad ne napuni znak je da ste je filtrirali. Treći nalog provjerava sintaksu skupa pravila bez primjene, što vrijedi učiniti dok još imate sesiju.
Oporavite host iz kojeg ste se zaključali
Prije promjene pravila vatrozida koja nose vašu vlastitu administrativnu sesiju, držite drugi kanal: konzolu, serijsku vezu ili zakazano vraćanje koje uklanja nova pravila ako ga ne otkažete.
Ako vas promjena ipak zaključa, oporavak ide kroz taj kanal, a ne kroz mrežu koju ste upravo uklonili. Vratite prethodni skup pravila iz spremljene kopije, potvrdite da je host opet dostupan i tek onda primijenite predviđenu politiku u manjim dijelovima.
Konačna politika nije univerzalna. Adresiranje, usmjeravanje i implementacija vatrozida ulazi su za uvođenje, ali granica je svugdje ista: odbijte neželjeni pristup aplikacijama uz zadržavanje kontrolnog prometa koji nosi ovlašteni tunel.