Tři změny se míchají pokaždé, když se VPN potká s OpenWrt: otevření portu, povolení přesměrování a zapnutí maskování. Odpovídají na různé otázky a obvykle jen jedna z nich je skutečný požadavek. Čtení každého ovládacího prvku podle role provozu, který řídí, mění odhad na rozhodnutí a také říká, jaký příznak očekávat, když je změna špatná. Začněte pojmenováním role, která selhala, ne zaškrtávacího pole, které si pamatujete.

Pojmenujte roli provozu, než se dotknete ovládacího prvku

Vstup zóny rozhoduje, co se může dostat k samotnému routeru. Výstup zóny pokrývá provoz, který router sám vytváří, přesměrování zóny je výchozí pro provoz procházející zónou a maskování rozhoduje, zda se zdrojová adresa při odchodu přepíše. To jsou čtyři různé otázky a politika zóny na všechny odpovídá najednou stejnou hodnotou, proto je změna v celé zóně hrubý nástroj. Pojmenované pravidlo může odpovědět na jednu z nich, aniž by se dotklo ostatních.

Užitečná mapa je podle role provozu, protože právě to můžete pozorovat, když něco selže. Každá role níže má jeden ovládací prvek, který ji určuje, a jeden příznak, který na ni ukazuje:

Traffic roleControl that decides itWhere it lives in the configSymptom when it is wrong
A client reaching a listener on the routerInput policy of the zone that carries the connection, or a rule for the portoption input in the zone stanza, or a named ruleThe handshake never completes and the tunnel log says nothing
A tunnel client reaching the router itselfInput policy of the tunnel zoneoption input in the VPN zoneA ping to the gateway fails
A tunnel client reaching another LAN hostForwarding from the tunnel zone to the LAN zoneconfig forwarding plus the zone assignmentThe gateway answers and the file share times out
The router's own traffic leaving the WANOutput policy, and translation if the far side needs itoption output and option masqThe tunnel never establishes, or replies vanish

Naslouchající služba na routeru potřebuje jedno úzké vstupní pravidlo

Server OpenVPN na routeru přijímá provoz adresovaný routeru, takže jeho vnější spojení závisí na vstupní politice zóny, která ho nese. Povolte nastavený transport a port a všechno ostatní v této zóně nechte odmítnuté. Jediné pravidlo pro port je mnohem menší změna než povolení v celé zóně a právě to dokážete vysvětlit i za rok.

Dvě věci dělají to pravidlo bezpečným pro zachování: pojmenovává port, který služba skutečně používá, a stojí vedle definice zóny, aby další člověk viděl, proč existuje. Řádky níže jsou jen tvar a port zastupuje to, co je nastaveno na serveru. Změňte tento port na obou místech, když se služba přesune, protože pravidlo ponechané na starém je neviditelné až do auditu.

config zone
    option name 'wan'
    option input 'REJECT'
    option forward 'REJECT'
    option output 'ACCEPT'
    option masq '1'

config rule
    option name 'allow-openvpn'
    option src 'wan'
    option proto 'udp'
    option dest_port '1194'
    option target 'ACCEPT'

Ověřte to před opětovným načtením, protože syntaktická chyba v souboru firewallu může routeru nechat nefunkční sadu pravidel. Ve vydání, které používá fw4, je kontrola samostatný příkaz a selhává nahlas, místo aby tiše přijala rozbitý blok. Načtěte znovu až po úspěšné kontrole a předchozí soubor si nechte tam, odkud ho můžete vrátit.

fw4 check
service firewall reload

Požadavek klienta prochází přesměrováním, ne vstupem

Po ověření totožnosti vytvoří požadavek klienta tunelu na službu v LAN přesměrovaný tok, takže ovládacím prvkem, který to určuje, je vztah přesměrování mezi zónou tunelu a zónou LAN. Přiřaďte rozhraní tunelu zamýšlené zóně a potom deklarujte směr, zdroje a službu. Přiřazení zóny je to, co dává pravidlu přesměrování smysl, a obojí má smysl jen čtené společně. Vztah přesměrování, který jako zdroj uvádí zónu tunelu a jako cíl zónu LAN, se čte jako jedno záměrné rozhodnutí, zatímco dvě povolení v celé zóně se čtou jako nehoda.

Dosažení samotného routeru stále používá vstupní cestu, proto ping na bránu neříká nic o sdílení souborů za ní. Ta dvě selhání žijí v různých blocích a opravují se různými úpravami. Zapište obě cesty odděleně, než změníte kteroukoli z nich.

Maskování je rozhodnutí o směrování, ne povolení

Maskování přepisuje zdrojovou adresu vybraného odchozího provozu. Může zachránit návrh odchodu, kde vzdálená strana nemá zpáteční cestu, a také skrývá adresy jednotlivých klientů před každou službou, která adresy zaznamenává nebo podle nich autorizuje. Jeho vypnutí je volba směrování zpáteční cesty, ne bezpečnostní přepínač, který zavírá vstupní díru. Tunel, který funguje se zapnutým překladem a selže v okamžiku jeho vypnutí, má obvykle chybějící zpáteční trasu, ne chybějící pravidlo firewallu.

Směrovaná alternativa potřebuje místo překladu zpáteční trasu na vzdálené straně. Ani jedna možnost nedodává povolení firewallu ani účet aplikace, proto vypnutí maskování téměř nikdy neopraví klienta tunelu, který se nikam nedostane. Politiku IPv4 a IPv6 posuzujte také odděleně, protože jedno nastavení překladu nepopisuje obě rodiny.

Dokažte rozhodnutí povoleným a odmítnutým požadavkem

Pošlete jeden požadavek, který má být povolen, a jeden, který má být odmítnut, a potom určete ovládací prvek, který každé rozhodnutí učinil. Stránka, která se náhodou načte, není důkaz; důkazem je pravidlo, které odpovídalo, v řetězu, kde odpovídalo. Odmítnutí je stejně důležité jako úspěch, protože ukazuje, že politika něco dělá, místo aby bylo vše povoleno.

Dva příkazy vám ten důkaz dají v aktuálním vydání. Počítadlo na odpovídajícím pravidle se pohne, když je požadavek přijat, a záznam ukáže zahození, pokud jste pro to pravidlo zapnuli protokolování:

nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'

Před změnou jakékoli politiky firewallu si ponechte administrační cestu, kterou ještě můžete použít, a postupujte podle procesu ověření a vrácení vlastníka konfigurace. Změna, která vás uzamkne ven z routeru, není výsledek testu, je to druhý incident. Zapisujte zónu a roli provozu vedle každého pozorování, aby dvojice výsledků vysvětlila politiku, místo aby popisovala šťastné načtení stránky.

Související články