Maskarád alebo politické smerovanie: prevádzka LAN cez VPN bránu
Linuxová brána môže skryť zdroje LAN za adresou tunela alebo ich smerovať nezmenené. Voľba vyplýva z toho, komu patrí vzdialená strana a akú má spätnú trasu.
Umiestniť celú LAN za VPN tunel je tá ľahká časť; rozhodnúť, ako vzdialená strana vidí týchto klientov, už nie. Maskarád prepisuje každý zdroj LAN na adresu tunela brány, takže vzdialený koniec odpovedá jednému peerovi. Politické smerovanie zachováva pôvodné adresy a vyžaduje, aby vzdialená strana vedela, ako sa k nim dostať. Ani jedno nie je predvolené; voľba vyplýva z toho, komu patrí vzdialená strana a či záleží na identite jednotlivých zariadení.
Oba návrhy sľubujú rôzne veci
Maskarád redukuje LAN na jediného viditeľného hostiteľa: bránu. Vzdialená sieť odpovedá na tú jedinú adresu a brána prekladá odpovede späť klientovi, ktorý tok začal. Na vzdialenej strane nie je potrebná trasa k vašim privátnym prefixom, a preto tento návrh prežije u poskytovateľa, ktorý ich odmieta prenášať. Brána sa tiež stáva zdrojom každého spojenia, takže vzdialená strana nerozozná dvoch klientov.
Politické smerovanie zachováva adresu každého klienta nedotknutú. Vzdialená sieť vidí skutočný zdroj a môže ho zaznamenať, použiť pravidlo pre konkrétneho hostiteľa alebo poslať odpoveď priamo na tú adresu. Táto viditeľnosť je celý zmysel a nesie so sebou povinnosť: vzdialená strana musí mať trasu pre prefix LAN, ktorá vedie späť tunelom. Naplánujte tú trasu skôr, než pravidlo zapnete, pretože tunel sa zdvihne tak či tak a chýbať budú len odpovede.
Spôsoby zlyhania sa líšia rovnako ako sľuby. Chýbajúce pravidlo maskarádu vytvára pakety, ktoré odchádzajú s privátnymi zdrojmi a nikdy sa nevracajú. Chýbajúca spätná trasa dáva rovnaký príznak pri politickom smerovaní, ale oprava patrí vzdialenému routeru, nie bráne.
Maskarád: jeden peer na vzdialenej strane
Cesta maskarádu má poradie, na ktorom záleží. Preposielanie musí byť zapnuté, kým akékoľvek pravidlo NAT niečomu poslúži, tabuľka filtra musí povoliť priechod v oboch smeroch, a až potom sa preklad uplatní na rozhraní tunela.
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Klienti stále potrebujú cestu k bráne. Buď je brána ich predvoleným routerom, alebo nesú konkrétnu trasu k vzdialenému prefixu; ak predvoleným zostáva samostatný router, potrebuje statickú trasu k cieľom tunela, inak paket zamieri na nesprávny hop, skôr než ho brána uvidí.
DNS je samostatné rozhodnutie. Prekladač na vzdialenej strane odpovedá len vtedy, ak sa jeho odpoveď dokáže dostať späť ku klientovi. Pri maskaráde dopyt vyzerá, že prichádza z brány, takže spätná cesta prekladača je už splnená; pri politickom smerovaní prekladač potrebuje rovnakú spätnú trasu ako ktorákoľvek iná vzdialená služba.
Politické smerovanie: zachovajte zdroj, pridajte spätnú cestu
Politické smerovanie začína tabuľkou a pravidlom, ktoré ju vyberá. Prevádzka vstupujúca z rozhrania LAN sa posiela do vyhradenej tabuľky a táto tabuľka nesie predvolenú trasu tunelom. Hlavná tabuľka zostáva nedotknutá, takže prevádzka, ktorú vytvára samotná brána, môže ísť inou cestou.
ip rule add iif eth1 table vpn
ip route add default dev tun0 table vpn
Vzdialená strana potom musí smerovať prefix LAN späť tunelom. To je konfigurácia na vzdialenom routeri, nie na tejto bráne. Brána tiež musí prijímať odpovede, ktoré prichádzajú na inom rozhraní, než by hlavná tabuľka predpokladala; voľné filtrovanie spätnej cesty (rp_filter nastavený na 2) je zvyčajná úprava, keď prísny režim tie pakety zahodí.
Keď sú aktívne dva tunely, označte každý tok pri vstupe a nechajte značku vybrať tabuľku. Pravidlo, ktoré hľadí len na vstupné rozhranie, posiela prevádzku oboch tunelov do tej istej tabuľky, takže druhý tunel kradne toky prvému. Otestujte tú značku spojením, ktoré prežije opätovné pripojenie, pretože vtedy sa zmiešaná politika prejaví.
Rozhodnite podľa vlastníctva a podľa toho, čo vzdialená strana zaznamenáva
Ak tunel končí u poskytovateľa, použite maskarád. Ten operátor nebude smerovať vaše privátne rozsahy LAN a nemá dôvod rozlišovať jednotlivých klientov za vašou bránou. Jeden viditeľný peer je jediný model, ktorý jeho politika podporuje, tak mu ho dajte a preklad držte na svojej hrane. Poskytovateľ vidí jedného peera, čo je presne to, čo jeho politika očakáva, a vaši klienti dedia tú jedinú identitu.
Ak sú oba konce vaše a vzdialené služby konajú podľa zdrojových adries, politické smerovanie si zaslúži svoju trasu navyše. Pravidlá firewallu, prístup podľa používateľa a audítorské záznamy potom môžu rozlíšiť klientov. Ak vzdialená strana potrebuje len dostupnosť, maskarád je jednoduchší a odstraňuje celú triedu chýb spätnej trasy.
Hybridné návrhy sú bežné: politické smerovanie vo vašej sieti, maskarád na hrane poskytovateľa. Dôležité je zapísať, ktorý hop prekladá a ktorý hop smeruje, pretože náhodné pravidlo NAT pridané pre jedného klienta skryje zdroj všetkým klientom v tom istom reťazci.
Overte z jedného klienta, potom z druhého klienta
Test spustite tam, kde prevádzka začína. Skontrolujte trasu, ktorú hostiteľ používa, sledujte, ako sa paket objaví na rozhraní tunela, a prezrite conntrack kvôli prekladu. Táto postupnosť dokazuje, že paket išiel zamýšľanou cestou, nie že len niekam dorazil.
Test zopakujte po opätovnom pripojení. Pravidlo maskarádu, ktoré pomenúva rozhranie, prežije novú adresu tunela; pravidlo, ktoré pomenúva starú adresu, neprežije. Potom otestujte druhého hostiteľa LAN, pretože návrh, ktorý funguje na jednom stroji, často závisí od vlastnej trasy toho stroja, nie od politiky brány.
Zapíšte zvolený model, preložený alebo zachovaný zdroj a vlastníka spätnej trasy do poznámok brány. Inak bude ďalší človek, ktorý pridá klienta alebo tunel, hádať, a hádanie je spôsob, akým sa funkčné zapojenie LAN-do-VPN stane čiastočným.