Filtre majáka Nebula verzus firewall: čo ktorý blokuje
Zoznamy povolení v majáku vyberajú, ktoré koncové body podkladovej siete partner ohlasuje alebo skúša. Pravidlá firewallu riadia prevádzku v prekryvnej sieti po handshake.
Pozrite sa na handshake Nebula z opačnej strany a oba mechanizmy vyzerajú zameniteľne. Jeden rozhoduje, ktoré adresy uzol hlási majáku a ktoré vzdialené adresy vyskúša; druhý rozhoduje, čo môže prejsť, keď tunel existuje. Filter môže zastaviť spojenie skôr, než sa vyhodnotí akékoľvek pravidlo firewallu, a pravidlo firewallu nemôže oživiť koncový bod, ktorý objavovanie odstránilo. Obe vrstvy odpovedajú na rôzne otázky a kľúčom je poradie, v akom pôsobia.
Sledujte jedno spojenie štyrmi fázami: ohlásená lokálna adresa, zvažovaný vzdialený koncový bod, handshake a prevádzka v prekryvnej sieti. Každá fáza má vlastnú konfiguráciu a vlastný podpis zlyhania.
Začnite pri lokálnej adrese, ktorú uzol ohlasuje
local_allow_list filtruje lokálne adresy tohto hostiteľa skôr, než sa nahlásia majákom. Záznamy môžu byť rozsahy adries a konfigurácia podporuje aj vzory názvov rozhraní. To sa hodí, keď má hostiteľ kontajnerové mosty alebo ďalšie tunelové rozhrania, ktoré sa nemajú stať koncovými bodmi partnerov.
Prejdite rozhrania hostiteľa a spýtajte sa, do ktorých vzdialený partner skutočne dosiahne. Adresa mosta Docker je pre toho hostiteľa lokálna a pre partnera v inej sieti zbytočná. Jej ohlasovanie plytvá objavovaním a môže poslať partnera k adrese, ktorá nikdy neodpovie. Všetko, čo partner nedokáže smerovať, je šum v odpovedi majáka.
Úzky zoznam povolení je tu bezpečnejší než široký zoznam zakázaní. Ak sú prítomné len záznamy povolenia, nešpecifikovaný zvyšok sa vylúči; neskoršie pridanie záznamu zakázania mení predvolenú logiku a vyžaduje vlastnú revíziu. Tá zmena si zaslúži druhý pohľad na predvolenú hodnotu.
Potom sledujte výber vzdialeného koncového bodu
remote_allow_list filtruje adresy, ktoré tento hostiteľ zváži pre vzdialeného partnera počas handshake. Platí pre adresu podkladovej siete, nie pre adresu v prekryvnej sieti, ktorú partner použije po zdvihnutí tunela.
Súkromný rozsah môže byť úplne použiteľný v zdieľanej kancelárskej sieti a nezmyselný, keď obaja hostitelia sedia v nesúvisiacich sieťach, ktoré obidve používajú 10.0.0.0/8. Filter vám umožní uprednostniť smerovateľnú cestu a zhodu ignorovať.
Keď sa partner nedokáže pripojiť, porovnajte skúšanú adresu s pravidlom, ktoré na ňu pasuje. Zapnite protokoly handshake a prečítajte zvolenú vzdialenú adresu; riadok protokolu pomenuje koncový bod, ktorý prešiel filtrovaním, čo je užitočnejšie než zoznam adries, ktoré partner vlastní.
Filter názvov rozhraní na strane ohlasovania môže koncový bod odstrániť skôr, než ho prijímajúca strana vôbec uvidí. Skontrolujte oba uzly, keď zlyháva len jeden smer.
Po handshake platia pravidlá prístupu v prekryvnej sieti
Pravidlá firewallu Nebula pôsobia vnútri prekryvnej siete, po nadviazaní tunela. Párujú hostiteľov, skupiny, porty a protokoly a rozhodujú, či paket smie do lokálneho hostiteľa vstúpiť alebo ho opustiť. Nevyberajú koncový bod v podkladovej sieti.
Toto oddelenie vysvetľuje častú chybnú diagnózu. Operátor pridá pravidlo firewallu pre port a stále sa nemôže pripojiť, pretože filter majáka odstránil jediný dostupný koncový bod. Iný operátor otvorí filter adries a stále sa k službe nedostane, pretože firewall prekryvnej siete port odmieta.
Čítajte zlyhanie v správnej vrstve. Handshake, ktorý sa nikdy nedokončí, ukazuje na objavovanie, filtrovanie koncových bodov alebo sieťovú cestu. Dokončený handshake nasledovaný odmietnutým alebo zahodeným spojením so službou ukazuje na firewall prekryvnej siete alebo na aplikáciu.
Čítajte predvolenú hodnotu pri miešaní povolenia a zakázania
Konfigurácia majáka podporuje zoznamy iba povoľujúce, iba zakazujúce a zmiešané a predvolená hodnota pre nešpecifikovaný zvyšok sa medzi týmito podobami líši. Zmiešaný zoznam potrebuje explicitnú predvolenú hodnotu pre rodinu adries; predpoklad, že sa zvyšok správa ako predchádzajúca konfigurácia, je cesta, ktorou funkčný koncový bod ticho zmizne.
lighthouse:
local_allow_list:
interfaces:
docker0: false
remote_allow_list:
192.168.0.0/16: true
default: false
Berte predvolenú hodnotu ako súčasť pravidla, nie ako šablónový text. Ak je predvolená hodnota rodiny zakázanie, každá neuvedená adresa sa vylúči, vrátane nového kancelárskeho rozsahu pridaného po napísaní konfigurácie.
Zaznamenajte, ktoré adresy mali byť dostupné, a testujte z oboch strán. Filter, ktorý funguje pre jednu dvojicu partnerov, môže zlyhať pri inej dvojici, ktorej jediná spoločná cesta používa adresu, ktorú zoznam vylučuje.
Použite relay, keď nie je dostupný žiadny priamy koncový bod
Ak je každý kandidátsky koncový bod odfiltrovaný alebo nedostupný, odpoveďou nie je širší zoznam povolení, ktorý znovu prijíma adresy, ktorým neveríte. Konfigurácia relay v Nebula poskytuje alternatívnu cestu pre partnerov, keď priame spojenie nie je uskutočniteľné.
Relay rieši transport a objavovanie, nie autorizáciu, a nerozširuje firewall. Firewall prekryvnej siete stále rozhoduje, ktoré služby sa smú používať, a relay nemení filtrovanie majáka na mechanizmus riadenia prístupu.
Otestujte cestu cez relay s vypnutými priamymi koncovými bodmi a potvrďte, že zamýšľaná služba stále funguje a nezamýšľaná nie. Ten jediný test oddeľuje transportnú opravu od zmeny politiky a udržiava obe vrstvy čestné.