Split tunelis neatbrīvo publisku hostu no ASA NAT noteikumiem
Split-include maršruts ievelk publisku hostu tunelī, kur ASA ir jāveic hairpin un jāpārtulko avots. Izlaid kaut vienu no diviem soļiem, un plūsma pārtrūkst.
Split tunelis parasti tiek aprakstīts kā veids, kā noturēt uzņēmuma trafiku tunelī un pārējo internetu ārpus ugunsmūra. Abas šī apraksta puses ir nepareizas vienādi. Split tunelis ir klienta pieņemts maršruta lēmums, un maršruta lēmums neko nepasaka par to, kas notiek ar paketi pēc tam, kad tā sasniedz headend.
Viens partnera pakalpojums publiskā adresē, kas uzstāj redzēt jūsu galvenās mītnes adresi, ir pietiekams, lai šo stāstu sagrautu.
Mīts: split tunelis izņem ugunsmūri no ceļa
Tiek uzskatīts, ka jebkurš galamērķis ārpus privātajiem diapazoniem paliek uz vietējā interneta savienojuma, tāpēc ugunsmūris to nekad neredz un tam nekad nevajag noteikumu. Tas ir spēkā tikai tik ilgi, kamēr galamērķis nav tuneļa sarakstā. Tajā brīdī, kad operators pievieno publisku hostu split-include ACL, klients sūta šo trafiku tunelī, un ASA ir tas jāmaršrutē, jāfiltrē un jāpārtulko kā jebkura cita atšifrēta plūsma. Klientā nekas nav mainījies, izņemot galamērķu sarakstu.
Klients nekļuva par maršrutētāju. Tas ievēroja politiku, ko tam devāt.
Ko split-include maršruts patiesībā dara
Cisco ASA attālinātās piekļuves konfigurācijā grupas politika satur split-tunnel-policy tunnelspecified un split-tunnel-network-list, kas nosauc standarta ACL. Katra permit rinda šajā ACL ir galamērķis, kas klientam jāsūta tunelī, un viss pārējais turpina izmantot vietējo noklusējuma maršrutu.
Viena hosta pievienošana ir viena rinda, un tā ir vienīgā izmaiņu daļa, ko klients var redzēt: access-list RA-SPLIT standard permit host 203.0.113.20.
Pēc tam no jauna pievienojiet klientu. Politika tiek apmainīta savienošanās laikā, tāpēc jau izveidota sesija saglabā veco sarakstu un izmaiņas izskatās tā, it kā tās neko nebūtu izdarījušas.
Pakete ienāk un iziet pa to pašu saskarni
Tagad izsekojiet plūsmu pēc atšifrēšanas. Pakete ienāca pa ārējo saskarni caur VPN tuneli, tās galamērķis ir publiska adrese, un maršrutēšanas tabula sūta to atpakaļ pa to pašu ārējo saskarni uz internetu. Trafiks, kas ieiet un iziet pa vienu saskarni, tiek izmests, ja vien ASA nav atļauts to laist, un tieši to dara same-security-traffic permit intra-interface. Bez tā savienojums neizdodas tā, kas izskatās pēc maršrutēšanas problēmas, bet tā nav.
Šis iestatījums ir globāls. Tas atļauj hairpinning katrai plūsmai, kurai tas nepieciešams, ne tikai šim partnera hostam, tāpēc tas pieder pārskatītām izmaiņām, nevis ātram testam.
Kāpēc uz galamērķi ierobežots PAT nav izvēles
Atšifrētās paketes avota adrese joprojām ir klienta VPN adrese, parasti no baseina, piemēram, 10.77.0.0/24. Šai adresei nav maršruta publiskajā internetā, tāpēc partneris vai nu nekad neatbild, vai atbild nekur.
Tulkošana izlabo avotu un atstāj galamērķi neskartu. Tā kā objekti jau ir definēti citur, manuāls noteikums, kas ierobežots ar šo galamērķi, ir šādā formā:
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_HOSTDaļa destination static ir svarīga. Ja to izlaižat, noteikums kļūst par plašu tulkojumu, kas var atbilst daudz lielākam trafikam nekā paredzēts, un plašs identity noteikums, kas atrodas agrāk secībā, var to pilnībā pārspēt. Pārbaudiet show nat detail un sadaļu secību, pirms pieņemat, ka jūsu noteikums ir atbilstošais.
Saskarnes PAT nozīmē arī to, ka partneris redz ASA saskarnes adresi, kas var tikt pārtulkota vēlreiz augšup. Ja līgums nosauc adresi, apstipriniet to no gala līdz galam, nevis vienā lēcienā.
Pierādiet to ar pareizo testa galamērķi
Izmantojiet pašu partnera hostu, nevis vispārīgu what-is-my-ip lapu. Šī lapa gandrīz noteikti ir ārpus split saraksta, tāpēc tā ziņo jūsu vietējo interneta adresi un neko nepasaka par šo ceļu. Atveriet jaunu savienojumu ar partnera pakalpojumu un pajautājiet, kādu avotu viņi novēroja, vai palaidiet packet-tracer input outside tcp 10.77.0.10 12345 203.0.113.20 443 detailed un lasiet NAT un maršrutēšanas posmus rindu pa rindai. Traceroute no klienta ir vājāka pārbaude, jo tā parāda ceļu, kas jau noticis, nevis politiku, kas to izvēlējās.
Pēc tam pārbaudiet, kam nevajadzētu mainīties. Parastai vietnei joprojām jāiziet pa vietējo savienojumu, un privātam resursam tuneļa sarakstā joprojām jābūt sasniedzamam. Izmaiņas, kas salabo partneri un salauž kādu no šiem diviem, ir cita kļūda.
Šī dizaina strādājošā versija ir īsa: viens hosts split ACL, hairpin atļauja, viens uz galamērķi ierobežots PAT noteikums. Viss pārējais stāstā ir mīts.