Niekto chce službu, ku ktorej sa dostanú len používatelia VPN, a zjavnou implementáciou je povoliť zoznam výstupných adries. Zoznam robí niečo skutočné: obmedzuje, kto sa môže pripojiť. Nedokazuje, že bol použitý tunel, pretože adresa patrí tomu, kto prevádzkuje výstup, a ten operátor môže preposlať prevádzku kohokoľvek. Rozdiel medzi týmito tvrdeniami je celý problém návrhu.

Server vidí jednu adresu na pripojenie

Pripojenie prichádza so zdrojovou adresou a cieľovým portom, a to je všetko, čo sieťová vrstva hlási. Keď klient použije tunel, pakety, ktoré dorazia k vášmu poslucháčovi, prichádzajú z výstupu alebo z prekladu pred ním. Vlastná adresa klienta, zvyčajne privátna, sa nikdy neobjaví. Pravidlo firewallu napísané pre rozsah klientskej LAN preto nerobí vôbec nič.

Všetko za touto zdrojovou adresou sú údaje aplikácie a aplikácia im môže dôverovať len do takej miery, do akej ich overuje.

Otestujte, ako vyzerá váš výstup

Pozrite sa na cestu z oboch koncov, kým napíšete pravidlo. Pohľad klienta na jeho výstup a pohľad servera na pripojenie sú dva fakty, na ktorých záleží.

curl -sS https://api.ipify.org; echo
ss -tn state established '( sport = :443 )' | head

Prvý príkaz hlási verejnú adresu, pod ktorou sa klient javí, a to je hodnota, ktorú musí obsahovať každý zoznam povolených. Druhý zobrazuje nadviazané pripojenia na serveri s adresami ich partnerov, a práve s tým sa pravidlo skutočne zhoduje. Ak sa obe nezhodujú s vaším mentálnym modelom, opravte model skôr, než upravíte politiku. Firewall cloudovej databázy, zoznam povolených aplikácie a vyvažovač zaťaženia môžu každý vidieť inú vrstvu prekladu.

Uviesť možno len jednu z dvoch množín výstupov

Jeden prípad sa dá skontrolovať v okamihu požiadavky a druhý nie, čo dáva veľmi odlišné záruky.

curl -sS https://check.torproject.org/torbulkexitlist | wc -l

Zverejnený zoznam výstupov Toru sa dá získať a porovnať, podľa veku zoznamu a vlastnej politiky každého výstupu, takže pravidlo odmietnutia známych výstupov je vymáhateľné a preskúmateľné. Ekvivalentný register pre komerčné VPN neexistuje. Adresy sa menia, mnohí poskytovatelia nič nezverejňujú a tunel môže bežať na prenajatej cloudovej adrese, ktorá nikdy nepatrila VPN. Zoznam, ktorý zostavíte, je snímka pozorovaných adries a jeho rozšírenie na hostingové rozsahy pridáva nesúvisiacu záťaž bez pridania dôkazov.

Používajte adresy ako vstup politiky, nie ako dôkaz

Rozhodnite, na čo pravidlo je. Sieťové obmedzenie by malo zostať úzke, zaznamenať pozorovanú adresu s dátumom a dôvodom a dať legitímnym používateľom cestu obnovy, keď sa ich výstup zmení. Riadenie prístupu potrebuje overený účet alebo podpísaný token, pretože len tie spájajú požiadavku s identitou. Hodnotenie rizika môže adresu použiť ako jediný nespoľahlivý signál a prijať jeho falošné poplachy a slepé miesta. Napísať pravidlo ako produktové rozhodnutie je čestné; napísať ho ako overenie, že tunel existuje, nie.

Zrkadlová požiadavka, teda získanie skutočnej adresy používateľa za VPN, zlyháva z rovnakého dôvodu: jedno pripojenie nesie jednu adresu a zmena medzi reláciami je zlučiteľná s viacerými vysvetleniami. Berte predchádzajúcu hodnotu ako históriu, nie ako pravdu.

Súvisiace články