Tri zmeny sa miešajú vždy, keď sa VPN stretne s OpenWrt: otvorenie portu, povolenie presmerovania a zapnutie maskovania. Odpovedajú na rôzne otázky a zvyčajne len jedna z nich je skutočná požiadavka. Čítanie každého ovládacieho prvku podľa roly prevádzky, ktorú riadi, mení odhad na rozhodnutie a tiež hovorí, aký príznak očakávať, keď je zmena nesprávna. Začnite pomenovaním roly, ktorá zlyhala, nie zaškrtávacieho políčka, ktoré si pamätáte.

Pomenujte rolu prevádzky, skôr než sa dotknete ovládacieho prvku

Vstup zóny rozhoduje, čo sa môže dostať k samotnému routeru. Výstup zóny pokrýva prevádzku, ktorú router sám vytvára, presmerovanie zóny je predvolená hodnota pre prevádzku prechádzajúcu zónou a maskovanie rozhoduje, či sa zdrojová adresa pri odchode prepíše. To sú štyri rôzne otázky a politika zóny na všetky odpovedá naraz tou istou hodnotou, preto je zmena v celej zóne hrubý nástroj. Pomenované pravidlo môže odpovedať na jednu z nich bez toho, aby sa dotklo ostatných.

Užitočná mapa je podľa roly prevádzky, pretože práve to môžete pozorovať, keď niečo zlyhá. Každá rola nižšie má jeden ovládací prvok, ktorý ju určuje, a jeden príznak, ktorý na ňu 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

Služba načúvajúca na routeri potrebuje jedno úzke vstupné pravidlo

Server OpenVPN na routeri prijíma prevádzku adresovanú routeru, takže jeho vonkajšie spojenie závisí od vstupnej politiky zóny, ktorá ho nesie. Povoľte nastavený transport a port a všetko ostatné v tejto zóne nechajte odmietnuté. Jediné pravidlo pre port je oveľa menšia zmena než povolenie v celej zóne a práve to dokážete vysvetliť aj o rok.

Dve veci robia to pravidlo bezpečným na zachovanie: pomenúva port, ktorý služba skutočne používa, a stojí vedľa definície zóny, aby ďalší človek videl, prečo existuje. Riadky nižšie sú len tvar a port zastupuje to, čo je nastavené na serveri. Zmeňte ten port na oboch miestach, keď sa služba presunie, pretože pravidlo ponechané na starom je neviditeľné 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'

Overte to pred opätovným načítaním, pretože syntaktická chyba v súbore firewallu môže routeru nechať nefunkčnú sadu pravidiel. Vo vydaní, ktoré používa fw4, je kontrola samostatný príkaz a zlyháva nahlas, namiesto toho, aby ticho prijala rozbitý blok. Načítajte znova až po úspešnej kontrole a predchádzajúci súbor si nechajte tam, odkiaľ ho môžete vrátiť.

fw4 check
service firewall reload

Požiadavka klienta prechádza presmerovaním, nie vstupom

Po overení totožnosti vytvorí požiadavka klienta tunela na službu v LAN presmerovaný tok, takže ovládacím prvkom, ktorý to určuje, je vzťah presmerovania medzi zónou tunela a zónou LAN. Priraďte rozhranie tunela zamýšľanej zóne a potom deklarujte smer, zdroje a službu. Priradenie zóny je to, čo dáva pravidlu presmerovania zmysel, a oboje má zmysel len čítané spolu. Vzťah presmerovania, ktorý ako zdroj uvádza zónu tunela a ako cieľ zónu LAN, sa číta ako jedno zámerné rozhodnutie, zatiaľ čo dve povolenia v celej zóne sa čítajú ako nehoda.

Dosiahnutie samotného routeru stále používa vstupnú cestu, preto ping na bránu nehovorí nič o zdieľaní súborov za ňou. Tie dve zlyhania žijú v rôznych blokoch a opravujú sa rôznymi úpravami. Zapíšte obe cesty oddelene, skôr než zmeníte ktorúkoľvek z nich.

Maskovanie je rozhodnutie o smerovaní, nie povolenie

Maskovanie prepisuje zdrojovú adresu vybranej odchádzajúcej prevádzky. Môže zachrániť návrh odchodu, kde vzdialená strana nemá spätnú trasu, a tiež skrýva adresy jednotlivých klientov pred každou službou, ktorá adresy zaznamenáva alebo podľa nich autorizuje. Jeho vypnutie je voľba smerovania spätnej cesty, nie bezpečnostný prepínač, ktorý zatvára vstupnú dieru. Tunel, ktorý funguje so zapnutým prekladom a zlyhá v okamihu jeho vypnutia, má zvyčajne chýbajúcu spätnú trasu, nie chýbajúce pravidlo firewallu.

Smerovaná alternatíva potrebuje namiesto prekladu spätnú trasu na vzdialenej strane. Ani jedna možnosť neposkytuje povolenie firewallu ani účet aplikácie, preto vypnutie maskovania takmer nikdy neopraví klienta tunela, ktorý sa nikam nedostane. Politiku IPv4 a IPv6 posudzujte tiež oddelene, pretože jedno nastavenie prekladu neopisuje obe rodiny.

Dokážte rozhodnutie povolenou a odmietnutou požiadavkou

Pošlite jednu požiadavku, ktorá by mala byť povolená, a jednu, ktorá by mala byť odmietnutá, a potom určte ovládací prvok, ktorý urobil každé rozhodnutie. Stránka, ktorá sa náhodou načíta, nie je dôkaz; dôkazom je pravidlo, ktoré zodpovedalo, v reťazi, kde zodpovedalo. Odmietnutie je rovnako dôležité ako úspech, pretože ukazuje, že politika niečo robí a nie že je všetko povolené.

Dva príkazy vám ten dôkaz dajú v aktuálnom vydaní. Počítadlo na zodpovedajúcom pravidle sa pohne, keď je požiadavka prijatá, a záznam ukáže zahodenie, ak ste pre pravidlo zapli protokolovanie:

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

Pred zmenou akejkoľvek politiky firewallu si ponechajte administratívnu cestu, ktorú ešte môžete použiť, a postupujte podľa procesu overenia a vrátenia vlastníka konfigurácie. Zmena, ktorá vás uzamkne mimo routera, nie je výsledok testu, je to druhý incident. Zapisujte zónu a rolu prevádzky vedľa každého pozorovania, aby dvojica výsledkov vysvetlila politiku, namiesto toho, aby opisovala šťastné načítanie stránky.

Súvisiace články