Cíl je rozumný: ke službám na tomto stroji mají přistupovat jen uživatelé tunelu. Řešení, po kterém lidé sáhnou, je příchozí řetěz IPv6, který zahodí vše kromě WireGuardu, a tím zahodí i provoz, který drží host připojený k jeho vlastnímu spoji. Objevování sousedů a zprávy o údržbě cesty nejsou přístup ke službám a jejich odstranění vytvoří stroj nedostupný z důvodů nesouvisejících s vaší politikou. Tunel naskočí, služby jsou správně ohraničené a nic jiného na spoji nefunguje.

Tři odpovědnosti, jedna sada pravidel

První odpovědnost je provoz vnější sítě: host musí zůstat připojený ke svému spoji, překládat sousedy a učit se limity cesty toho spoje. Druhá je šifrovaný posluchač, který přijímá UDP na adrese a portu, které jste zvolili. Třetí je sada dešifrovaných služeb, ke kterým mají uživatelé tunelu dosáhnout.

To jsou tři různé politiky a jen druhá a třetí se týkají VPN. Sada pravidel, která je bere jako jednu, dědí režim selhání, v němž utažení hranice aplikace tiše rozbije připojení hostu.

Držte je v oddělených řetězech nebo alespoň v oddělených komentářích, aby další člověk viděl, který řádek existuje z jakého důvodu.

Co ICMPv6 dělá pro host

IPv6 se na ICMPv6 spoléhá u mnohem více věcí než u echa. Žádost a oznámení souseda nahrazují ARP a jsou nutné pro místní doručení. Packet Too Big nese informaci o MTU cesty a jeho ignorování vede k přenosům, které se u velkých paketů zaseknou. Oznámení routeru nesou výchozí trasu a informaci o prefixu, když spoj používá automatickou konfiguraci.

RFC 4890 odděluje zprávy, které musí filtr hostu povolit, od těch, které jsou administrativní volbou, a činí tak v části pro host, odlišné od pravidel pro router, který přeposílá mezi sítěmi. Čtení jen části o přeposílání vede k příchozí politice, která je pro chráněný host příliš přísná.

Praktické pravidlo je povolit zásadní chybové a konfigurační zprávy na rozhraní, které je potřebuje, omezit je podle typu a zdroje, kde to platforma umožňuje, a o ostatních rozhodnout výslovně.

Nahradit to všechno plošným povolením ICMPv6 vyřeší dostupnost a vzdá se filtrování. Nahradit ho plošným zahozením vyřeší filtrování a vzdá se hostu.

Pusťte tunel, pak službu

Přijměte transport WireGuardu na zamýšlené vnější adrese a UDP portu a zpětný provoz přijměte přes sledování spojení. Pak povolte aplikačním službám projít rozhraním tunelu, ze zdrojů, které skutečně autorizujete.

Povolení vnějšího UDP portu neautorizuje dešifrované požadavky uvnitř něj. Právě tento rozdíl je celý důvod, proč se rozhraní tunelu objevuje v pravidlech služeb.

Čtěte sadu pravidel takovou, jaká je, ne jak ji popisuje soubor:

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

Posluchač na fyzické adrese je samostatné vystavení od stejné služby na adrese tunelu. Pokud stroj také přeposílá provoz na jiný stroj, je to rozhodnutí řetězu přeposílání, ne tato příchozí politika, a potřebuje vlastní odůvodnění.

Testujte spoj, ne jen tunel

Fungující tunel po změně dokazuje méně, než se zdá, protože existující záznam souseda a navázané spojení mohou skrýt řídicí zprávu, kterou politika nyní zahazuje.

Zkontrolujte připojení přímo a pak zkontrolujte, že vyloučená cesta stále selhává:

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

Tabulka sousedů, která po restartu zůstane úplná, je signál, že objevování stále funguje. Tabulka, která se vyprázdní a už nikdy nenaplní, je signál, že jste ji vyfiltrovali. Třetí příkaz ověří syntaxi sady pravidel bez jejího použití, což stojí za to udělat, dokud máte relaci.

Obnovte host, ze kterého jste se vyzamkli

Než změníte pravidla firewallu, která nesou vaši vlastní administrativní relaci, mějte druhý kanál: konzoli, sériové připojení nebo naplánovaný návrat, který nová pravidla odstraní, pokud ho nezrušíte.

Pokud vás změna opravdu vyzamkne, obnova vede přes tento kanál, ne přes síť, kterou jste právě odstranili. Obnovte předchozí sadu pravidel z uložené kopie, ověřte, že host je znovu dostupný, a teprve pak znovu zaveďte zamýšlenou politiku po menších částech.

Konečná politika není univerzální. Adresování, směrování a implementace firewallu jsou vstupy pro nasazení, ale hranice je všude stejná: odmítněte nežádoucí přístup aplikací a přitom zachovejte řídicí provoz, který nese autorizovaný tunel.

Související články