Zámok VPN PF na Macu: politika lokality, nie dodateľná funkcia
Packet Filter nie je podporované API pre distribuované produkty. Priraďte množine pravidiel vlastníka, pomenujte každú výnimku a otestujte prechody.
Funguje to na vašom Macu, takže to vyzerá ako niečo, čo môžete odovzdať používateľom. Tento predpoklad je prvá vec, ktorú treba opustiť. Apple v dokumente TN3165 jasne uvádza, že Packet Filter nie je podporované API pre všeobecne distribuované produkty, a privilegovanú, kontrolovanú správu lokality považuje za rozumný prípad. Zámok VPN postavený na PF je preto lokálna prevádzková politika s vlastníkom, nie funkcia, ktorú môžete dodať v aplikácii.
PF nie je povrch na balenie
Rozdiel nie je akademický. Distribuovaný produkt, ktorý závisí od PF, dedí každú zmenu, ktorú v ňom Apple urobí, každý konflikt s iným nástrojom, ktorý tiež píše pravidlá, a žiadny záväzok podpory, že toto usporiadanie bude fungovať. Lokalita, ktorá spravuje vlastné stroje, má iný vzťah: môže závislosť zdokumentovať, otestovať ju na každom vydaní OS a prijať údržbu.
Niektoré rady k inštalácii prekračujú hranicu, ktorú stojí za to pomenovať. Prepísanie celého systémového súboru pravidiel, aby sa načítala jedna kotva, úprava systémovej konfigurácie spúšťania Apple alebo vypnutie System Integrity Protection nie sú prijateľné požiadavky na opakovane použiteľný recept. Ak publikovaný návod potrebuje čokoľvek z toho, opisuje laboratórium, nie politiku, ktorú možno nasadiť.
Napíšte zámer odchodu pred syntaxou
Rozhodnite, čo je povolené, skôr než vyberiete jedno kľúčové slovo. Zvyčajne musia existovať tri cesty: vlastný transport klienta VPN k jeho serveru, chránená prevádzka aplikácie v tuneli a všetko, čo nastavenie alebo lokálne služby naozaj potrebujú priamu cestu.
Každej navrhovanej výnimke dajte cieľ, transport a vlastníka. Povolenie všetkých portov k jednému koncovému bodu povoľuje oveľa viac než jediný transport, ktorý tunel používa, a dodatočná expozícia vzniká bez toho, aby sa niekto rozhodol, že to tak má byť. Povolenie verejného resolvera je tá istá pasca v priateľskejšom šate: vytvára priamu cestu DNS aj vtedy, keď je tunel vypnutý, takže vyhľadávanie názvov stále uniká.
| Path | Destination | Owner |
|---|---|---|
| VPN transport | Gateway address, one UDP port | Network team |
| Tunnel traffic | Internal prefixes | Application owner |
| Resolver exception | Named internal resolver | Security team |
Užitočný test výnimky je, či dokážete pomenovať človeka, ktorý o ňu požiadal, a zlyhanie, ktorému zabraňuje. Ak neexistuje ani jedna odpoveď, pravidlo je pravdepodobne obchádzkou nesprávnej konfigurácie, ktorá by inak zostala neviditeľná.
Čísla utun nie sú identita
MacOS vytvára tunelové rozhrania ako zariadenia utun, a číslo pridelené vášmu VPN nie je stabilné medzi reštartmi, opätovnými pripojeniami alebo prítomnosťou iného klienta. Pravidlo, ktoré uvádza niekoľko uhádnutých čísel, nie je politika; je to snímka jedného popoludnia.
Ukotvite pravidlo v niečom, čo identifikuje zamýšľaného poskytovateľa: plán adries, ktorý tunel pridelí, proces, ktorý vlastní rozhranie, alebo konfigurácia, ktorú udržiava samotný klient VPN. Potom zaznamenajte, ako táto identifikácia funguje, pretože človek, ktorý bude pravidlo o rok kontrolovať, nebude mať vašu históriu shellu.
Urobte načítanú politiku pripísateľnou
Názov kotvy organizuje pravidlá; nedokazuje, že účinná politika je tá, ktorú ste zamýšľali. Priorita medzi kotvami, pravidlá načítané iným softvérom a existujúci stav môžu zmeniť výsledok. Prejdite účinný súbor so všetkými ostatnými, ktorí vlastnia PF na tom stroji, a zdokumentujte vlastníctvo na tom istom mieste ako konfiguráciu. Dvaja vlastníci upravujúci rôzne kotvy s rôznymi predpokladmi sú bežný spôsob, akým zámok získa dieru.
Držte súbor pravidiel v podporovanej konfiguračnej ceste lokality, verzujte ho a poznamenajte, ktoré vydania macOS boli testované. Zmena vykonaná ručne a zapamätaná jednou osobou nie je udržiavaná infraštruktúra, nech hovorí hlavička súboru čokoľvek.
Testujte prechody, nie pripojený stav
Screenshot urobený pri aktívnom tuneli takmer nič nedokazuje. Prejdite stavmi: spustenie pred akýmkoľvek pripojením, fungujúci tunel, tunel, ktorý spadne bez varovania, zámerné odpojenie a prechod z Wi-Fi na hotspot. Každý stav má svoju odpoveď a zaujímavé sú zlyhania, nie šťastná cesta.
V každom stave zaznamenajte, čo je zámerne dostupné. Skontrolujte IPv4 a IPv6 oddelene, otestujte rozlišovanie názvov a zahrňte tok, ktorý bol už nadviazaný pred prechodom, pretože existujúce spojenia nie vždy nasledujú novú politiku. Prehliadač, ktorý zlyhá pri vypnutom tuneli, je jeden dátový bod, nie dôkaz, že všetky ostatné cesty sú zablokované.
Na záver si ponechajte metódu obnovy, ktorá nezávisí od sieťovej cesty, ktorú meníte. Známa dobrá konfigurácia v lokálnom úložisku a zdokumentovaný spôsob jej načítania menia zámok na politiku; bez nich jedna zlá revízia zamkne správcu mimo stroja, ktorý mal byť chránený.