Split tunel ne oslobađa javni host od NAT pravila na ASA
Split-include ruta uvlači javni host u tunel, gdje ga ASA mora hairpinovati i prevesti izvor. Preskočite bilo koji korak i tok pada.
Split tuneliranje se obično opisuje kao način da se korporativni saobraćaj zadrži unutar tunela, a ostatak interneta izvan firewall-a. Obje polovine tog opisa pogrešne su na isti način. Split tuneliranje je odluka o ruti koju donosi klijent, a odluka o ruti ne govori ništa o tome šta se s paketom dešava nakon što stigne do headenda.
Jedna partnerska usluga na javnoj adresi, koja insistira da vidi adresu vašeg sjedišta, dovoljna je da razbije priču.
Mit: split tunel uklanja firewall iz putanje
Uvjerenje je da svako odredište izvan privatnih opsega ostaje na lokalnoj internet vezi, pa ga firewall nikada ne vidi i nikada mu ne treba pravilo. To vrijedi samo dok odredište nije na listi tunela. U trenutku kada operater doda javni host u split-include ACL, klijent šalje taj saobraćaj u tunel, a ASA ga mora rutirati, filtrirati i prevesti kao i svaki drugi dešifrovani tok. Na klijentu se nije promijenilo ništa osim liste odredišta.
Klijent nije postao ruter. Slijedio je politiku koju ste mu dali.
Šta split-include ruta zapravo radi
U Cisco ASA postavci za daljinski pristup, grupna politika nosi split-tunnel-policy tunnelspecified i split-tunnel-network-list koji imenuje standardni ACL. Svaki permit red u tom ACL-u je odredište koje klijent treba poslati u tunel, a sve ostalo nastavlja koristiti lokalnu zadanu rutu.
Dodavanje jednog hosta je jedan red, i to je jedini dio promjene koji klijent može vidjeti: access-list RA-SPLIT standard permit host 203.0.113.20.
Nakon toga ponovo povežite klijenta. Politika se razmjenjuje pri povezivanju, pa uspostavljena sesija zadržava staru listu i čini da promjena izgleda kao da ništa nije učinila.
Paket dolazi i odlazi na istom interfejsu
Sada pratite tok nakon dešifrovanja. Paket je ušao kroz VPN tunel na vanjskom interfejsu, odredište mu je javna adresa, a tabela rutiranja ga šalje natrag kroz isti vanjski interfejs prema internetu. Saobraćaj koji ulazi i izlazi na jednom interfejsu se odbacuje osim ako ASA ne dobije dozvolu da ga propusti, a to radi same-security-traffic permit intra-interface. Bez toga veza pada na način koji izgleda kao problem rutiranja, a nije.
Ta postavka je globalna. Dozvoljava hairpinning za svaki tok kojem je potreban, ne samo za ovaj partnerski host, pa pripada pregledanoj promjeni, a ne brzom testu.
Zašto PAT ograničen na odredište nije opcionalan
Izvorna adresa na dešifrovanom paketu i dalje je VPN adresa klijenta, obično iz bazena kao što je 10.77.0.0/24. Ta adresa nema rutu na javnom internetu, pa partner ili nikada ne odgovori ili odgovori u prazno.
Prevođenje ispravlja izvor i ostavlja odredište netaknutim. Pošto su objekti već definisani drugdje, ručno pravilo ograničeno na ovo odredište ima ovaj oblik:
same-security-traffic permit intra-interface
object network RA_POOL
subnet 10.77.0.0 255.255.255.0
object network PARTNER_HOST
host 203.0.113.20
nat (outside,outside) source dynamic RA_POOL interface destination static PARTNER_HOST PARTNER_HOSTDio destination static je važan. Ako ga izostavite, pravilo postaje široko prevođenje koje može obuhvatiti mnogo više saobraćaja nego što je predviđeno, a široko identity pravilo ranije u redoslijedu može u potpunosti pobijediti ovo. Provjerite show nat detail i redoslijed sekcija prije nego što pretpostavite da je vaše pravilo ono koje se podudara.
Interfejs PAT također znači da partner vidi adresu interfejsa ASA, koja može biti ponovo prevedena uzvodno. Ako ugovor navodi adresu, potvrdite je od početka do kraja, a ne na jednom skoku.
Dokažite to pravim testnim odredištem
Koristite sam partnerski host, a ne generičku what-is-my-ip stranicu. Ta stranica je gotovo sigurno izvan split liste, pa prijavljuje vašu lokalnu internet adresu i ne govori ništa o ovoj putanji. Otvorite novu vezu prema partnerskoj usluzi i pitajte ih koji su izvor vidjeli, ili pokrenite packet-tracer input outside tcp 10.77.0.10 12345 203.0.113.20 443 detailed i čitajte NAT i faze rutiranja red po red. Traceroute s klijenta je slabija provjera, jer pokazuje putanju koja se već dogodila, a ne politiku koja ju je odabrala.
Zatim provjerite šta se ne smije promijeniti. Obična web stranica i dalje mora izlaziti s lokalne veze, a privatni resurs na listi tunela i dalje mora biti dostupan. Promjena koja popravi partnera i pokvari jedno od toga je druga greška.
Radna verzija ovog dizajna je kratka: jedan host u split ACL-u, dozvola za hairpin, jedno PAT pravilo ograničeno na odredište. Sve ostalo u priči je mit.