förstå IPSec tunnlar (L2L)

i min nuvarande roll hanterar jag L2L (LAN till LAN) tunnlar ganska ofta. De är det ‘billiga’ sättet att ansluta två platser i jämförelse med dedikerade åtkomstkretsar. Det enda kravet är att ha rätt hårdvara och en ‘alltid på’ statisk IP på varje plats. Jag skämtar ofta att det är enkelt att konfigurera en L2L-tunnel på en ASA och tar bara 20 konfigurationslinjer i CLI. Med det sagt som allt annat i nätverksvärlden, om du inte förstår hur tekniken fungerar, kommer du att fastna en dag. Att skriva 20 konfigurationslinjer i en konsol och faktiskt förstå vad som händer är två helt olika saker. I det här inlägget ska jag prata om IPSec-grunderna, hur tunnlar bildas och några felsökningssteg du kan ta när du stöter på problem.

terminologi
IPSec (Internet Protocol Security) – vad vi pratar om

ike (Internet Key Exchange) – Tänk på ike som den verktygsuppsättning som krävs för att upprätta och upprätthålla en säker anslutning mellan två slutpunkter. I princip tillåter Ike anslutningen att bilda och underhålla SAs (Säkerhetsföreningar) som är den viktigaste delen av en IPSec – tunnel

isakmp (Internet Security Association och Key Management Protocol) – isakmp är standarden som definierar hur man arbetar med SAs. Med andra ord hanterar ISAKMP hur SAs skapas, underhålls, modifieras och rivs ner. Har du märkt överlappningen? IKE och ISAKMP låter väldigt lika, eller hur? Det beror på att de är. Faktum är att Cisco även noterar detta i sin dokumentation.

“Internet Security Association och Key Management Protocol, även kallad Ike, är förhandlingsprotokollet som låter två värdar komma överens om hur man bygger en IPsec security association. Varje isakmp förhandling är uppdelad i två sektioner som kallas Phase1 och Fas 2.”

Peer – adress-beroende på sammanhang är det antingen den offentliga adressen i ena änden av tunneln eller i andra änden av tunneln.

DH (Diffie-Hellman) – DH tillåter två parter att dela en hemlig nyckel över en osäker kanal. DH används under IKE fas 1 för att utbyta nycklar en upprätta en säker hemlig nyckel.

Isakmp – Principuppsättningar-en principuppsättning som anger ike-krypteringsalgoritmen, ike-autentiseringsalgoritmen, ike-autentiseringstypen, dh-versionen och Ike-tunnelns livslängd. Isakmp-Policyuppsättningen används under ike-fas 1-förhandlingar. För att göra detta ännu mer förvirrande kallas isakmp – policyuppsättningar också antingen isakmp transform sets, IKE transform sets eller helt enkelt gamla transform sets

IPSec Transform Sets-en transform set består av inställningar som är relevanta för skapandet av IPSec tunnel. Den faktiska transformationsuppsättningen används under IKE-fas 2 och består i allmänhet bara av ike-kryptering och autentiseringstyp. Återigen är den förvirrande delen att ofta kallar vissa människor bara dessa transformationssatser.

SAs (Security Associations) – i grund och botten är det uppsättningen IPSec-parametrar som båda sidor av tunneln är överens om. Jag kommer att göra en kritisk skillnad här för oss i Cisco land. Det kommer att finnas en Isakmp SA och en IPSec SA. Det finns flera tunnlar skapade medan IPSec-tunneln skapas. Kom bara ihåg att Isakmp SA anses vara resultatet av ike-fas 1 och IPSec SA anses vara resultatet av ike-fas 2. Också, en SA är bara en enkelriktad anslutning. Eftersom de flesta trafik mellan slutpunkter kräver tvåvägskommunikation, kommer varje ASA att skapa sin egen SA för att prata med den andra peer.

Nonce – ett nummer som vanligtvis används för en säker nyckel, som bara används en gång. Om det används en andra gång är det vanligtvis ett tecken på ett bedrägligt anslutningsförsök.

terminologi sammanfattning – VPN terminologi är verkligen, verkligen, verkligen förvirrande. Försök bara komma ihåg att isakmp och ike ibland används omväxlande. Dessutom är transform-set en allmän term för en grupp inställningar. Jag försöker bara använda frasen när jag hänvisar till vad jag skriver efter ‘transform-set’ i CLI som används för att ange autentiserings-och krypteringstypen för IKE-fasen 2.

processen
nu när vi vet några av de viktigaste termerna kan vi börja prata om hur IPSec-tunneln bildas. Enligt min mening finns det 4 faser i livet för en IPSec-tunnel. Jag lägger dem nedan och sedan pratar vi om dem

fas 1 – intressant trafik genererar skapandet av tunneln
fas 2 – Ike fas 1
fas 3 – ike fas 2
Fas 4 – Tunnelterminering

vissa människor kastar en fas mellan min fas 3 och 4 och listar den som ‘IPSec tunnel skapad’ som enligt min synvinkel inte är en fas. Att lista produkten från faserna 1 till 3 verkar inte motivera sin egen fas i mitt sinne. Låt oss i alla fall gå in i detalj på var och en.

fas 1 – intressant trafik genererar skapandet av tunneln
vad många inte vet om IPSec är att det är vad jag kallar en ‘on demand’ – tjänst. Det är, när du skapar en tunnel är det inte igång hela tiden. Vad vi kallar ‘intressant trafik’, utlöser skapandet av en tunnel. Att skapa tunneln tar inte så lång tid men kan i de flesta fall märkas när man använder ping för att testa. I de flesta fall när jag försöker Pinga från en klientmaskin över tunneln kommer den första ICMP-förfrågan att misslyckas eftersom tunneln laddas. Efterföljande ICMPs går igenom korrekt. Intressant trafik definieras på ASA med en ACL. Sedan anges ACL i tunnels crypto map Med kommandot’ match address’. Ett exempel ACL kan se ut så här…

access-list L2LCryptoMap extended permit ip <Local subnet> <Local mask> <Destination subnet> <Destination mask>

du berättar för ASA att matcha trafik som kommer från ditt subnät till subnätet på andra sidan tunneln. Detta tar upp frågan om dubbla privata undernät. Om ditt delnät på insidan av båda ASAs är detsamma kommer du att ha problem. Tänk på det här sättet, när en klient på ena sidan försöker gå till en resurs på det andra undernätet kommer det inte att gå någonstans. Som standard kommer klienten att ARP för ett svar eftersom den tror att fjärrklienten du försöker komma åt finns på sitt lokala delnät. Eftersom det inte försöker gå av subnät kommer klienten aldrig att kontakta standardgatewayen (ASA: s inre gränssnitt) och du kommer aldrig att bilda en tunnel. Även om du gjorde det skulle trafiken fortfarande inte flöda. Det finns några ‘knepiga’ saker vi kan göra för att åtgärda problemet, men de faller inte inom ramen för detta blogginlägg. Bästa situationen är att ha unika privata nätverk på varje plats.

fas 2 – Ike fas 1
när ASA får en begäran om ett fjärrnät, som det matchar en kryptokarta, börjar Ike fas 1. Målet med Ike fas 1 är att ställa in anslutningen för Ike fas 2. I grund och botten lägger ike phase 1 grunden för att den faktiska anslutningen ska ske. Det skapar faktiskt sin egen SA som ibland kallas management SA. Denna hantering SA används av ike fas 2 för att skapa de faktiska data tunnlar. Ur teknisk synvinkel finns det tre steg till ike fas 1. Det första steget kallas politisk förhandling. Policyförhandlingar handlar om att hitta matchande transform-uppsättningar på varje slutpunkt. Innan ISAKMP SA-formulären måste varje slutpunkt komma överens om en matchande ike-policyuppsättning. Följande objekt måste matcha inom policyn på varje sida av tunneln.

-Ike-krypteringsalgoritmen
-ike-Autentiseringsalgoritmen
-Ike-Nyckeldefinitionen
– Diffie Hellman-versionen
– Ike-livstiden

kom ihåg att ike-policyuppsättningar är associerade med Ike-fas 1-slutförande. En slutpunkt kan ha valfritt antal principuppsättningar som utvärderas i en ordning. Du kan till exempel ha policyuppsättning 10, 20 och 30. Slutpunkterna går igenom policyuppsättningarna i ordning, börjar med det lägsta först tills de hittar en matchning. Därför är det vettigt att definiera starkare politiska uppsättningar först. Om de definieras efter svagare policyuppsättningar kan du sluta hitta en svagare match först.

nu, innan vi går för mycket längre in i IKE-fas 1, är det relevant att förklara att det finns två olika typer av ike-fas 1. Den som används oftast kallas ‘huvudläge’ och består av 6 meddelanden som utbyts mellan kamrater. Den andra typen kallas ‘aggressiv’ läge och kondenserar meddelanden som skickas mellan kamrater i 3 meddelanden. Huvudläget är långsammare i installationen men säkrare. Aggressivt läge är snabbare i installationen men mindre säkert. Citera mig inte på det här, men jag tror att huvudläget används som standard. Jag kommer inte att dyka in i detaljerna här, de båda åstadkommer samma sak och detaljerna jag listade ovan borde leda dig in på de stora skillnaderna.

vårt första steg till ike – fas 1 var policyförhandlingar-kamraterna måste komma överens om en matchningspolicyuppsättning. De gör detta genom att skicka policyuppsättningar till varandra för jämförelse och hitta den lägsta matchningspolicyuppsättningen. När det är klart kan vi gå vidare till nästa steg som är DH-nyckelutbytet. Under denna process utbyter kamrater offentliga nycklar som används för att upprätta den delade hemligheten. När denna process är klar bildas fas 1 SA (ISAKMP SA) och vi går vidare till det sista steget som är peer-autentisering.

under peer-autentisering används den definierade autentiseringsmetoden för att säkerställa att oseriösa enheter inte bildar säkra anslutningar till ditt nätverk. För det mesta görs detta med fördelade nycklar. Detta steg är ganska enkelt, kamraterna kontrollerar att nycklarna matchar. Om de inte gör det misslyckas autentiseringen. Om de matchar går vi vidare till ike phase 2.

fas 3 – Ike fas 2
jag tycker om att tänka på ike fas 2 som den faktiska byggnaden av datatunneln. Arbetet fram till denna punkt har främst varit att säkerställa att vi har en säker kommunikationskanal på plats så att vi kan bygga den faktiska IPsec SAs. Jämfört med Ike fas 1 har ike fas 2 bara en typ av läge som kallas ‘snabbläge’. Snabbläge använder den befintliga ISAKMP SA som skapats i IKE phase 1 och skapar IPSec SAs och hanterar nyckelutbytena. Det första steget i snabbläget är att förhandla om IPSec-transformationsuppsättningarna (inte samma som isakmp-policyuppsättningarna!!). Följande objekt måste matcha i båda ändar för att IPSec SAs ska bildas.

-IPsec-protokollet
-IPsec-krypteringstypen
-IPSec-Autentiseringstypen
– IPSec-läget
– IPSec sa lifetime

kan nu ta ett kort ögonblick för att jämföra transformationsuppsättningarna från IKE-fas 1 och fas 2. Följande är en typisk konfiguration av en ASA.

Isakmp Policy Set
crypto isakmp policy 10
autentisering pre-share
kryptering 3DES
hash sha
Grupp 2
livstid 86400

IPSec transform
crypto ipsec transform-set ESP-3DES-SHA esp-3DES esp-sha-hmac

se något konstigt? I isakmp-policyuppsättningen kan du tydligt se de 5 nödvändiga delarna av transformationsuppsättningen som måste överenskommas. I IPSec-transformationen är det inte så klart. Detta beror på att transformationen verkligen bara definierar 3 av de 5 nödvändiga bitarna. Exemplet ovan definierar IPSec-protokollet (ESP), IPSec-autentiseringstypen (SHA) och IPSec-krypteringstypen (3DES). IPSec-läge och IPSec sa-livstid behöver inte definieras. När de inte är det antar ASA helt enkelt följande värden på 28 800 för sa lifetime och ‘tunnel’ – läget för alla transformationsuppsättningar. Jag brukar inte ändra dessa värden om inte den andra sidan ändrade dem.

så när transformationsuppsättningarna har förhandlats fram och matchats kan vi skapa IPSec SAs. Som nämnts ovan är en SA en enkelriktad anslutning. Så för att trafiken ska flöda varje sätt måste två IPSec SAs bildas. ASA gör detta arbete för dig naturligtvis så det finns inte mycket detaljer att dela här. Snabbläge använder nonces för att generera nytt nyckelmaterial som förhindrar återspelningsattacker. Det tredje steget är processen att regelbundet omförhandla anslutningen. SAs måste regenereras innan tunneln löper ut. Quick mode övervakar detta och genererar nya SAs innan de gamla löper ut.

Fas 4 – Tunnelterminering
vid denna tidpunkt har vi en fullt fungerande VPN-tunnel! Trafiken ska passera i båda riktningarna. Det enda som återstår att göra är att riva ner tunneln om det inte finns någon intressant trafik. SAs regenereras bara om intressant trafik fortsätter att flöda. Om intressant trafik slutar komma i SA får löpa ut efter att dess livstid har uppnåtts. Om SA får upphöra att gälla spolas alla uppgifter om SAS ut ur SA. Nästa gång intressant trafik genereras hela processen börjar från början.

felsökning
det vanligaste problemet i IPSec-anslutning är inte att hitta transform-set-matchningar för Ike-fas 1 och 2. Om du stöter på problem är det första du alltid bör göra att dubbelkontrollera inställningarna på båda sidor för att säkerställa att de matchar 100%. Nästa sak du kan göra är att ta en titt på SAs på ASA och avgöra om de skapas och om de är, vilken status de har.

för att se Ike fas 1 SA utfärda detta kommando
ASA# visa crypto isakmp sa

för att se Ike fas 2 SA utfärda detta kommando
ASA# visa crypto ipsec sa

om du inte har en fas 1 SA kommer du inte att komma väldigt långt. Tillståndet i SA berättar ett par saker. Den talar om huruvida SA skapades med huvud eller aggressiv läge, vilken sida tog tunneln upp, och även talar om status för förhandlingarna. En titt på en typisk fas 1 SA visas nedan.

ASA # visa krypto isakmp sa
aktiv SA: 1
Rekey SA: 0 (en tunnel kommer att rapportera 1 aktiv och 1 Rekey SA under rekey)
Total ike SA: 1

1 Ike Peer: <Peer IP-adress>
Typ : L2L Roll : responder
Rekey : inget tillstånd : MM_ACTIVE

som du kan se från ovanstående utgång har vi en ike-fas 1 SA. Typen är ‘ L2L ‘(vilket indikerar att det är en plats till plats IPSec tunnel), rollen är’ responder ‘ (vilket betyder att peer tog upp tunneln) och staten är MM_Active (vilket betyder att den använder huvudläge (MM) och Ike-fas 1 fungerar (aktiv)). MM_ACTIVE är vad vi vill se på en fas 1 ike SA. Det betyder att allt är klart för Ike fas 2 att inträffa. Så vad ska du göra om du inte har det aktiva tillståndet? Eller ingen SA alls?

det finns flera andra stater som kan leda dig till vad som händer med isakmp SA.

OBS: Dessa statuskoder är endast för den nyare ASA-versionen, den äldre IPSec-koden använde olika statusmeddelanden.
de två första bokstäverna berättar om anslutningen gjordes med huvudläge (MM) eller aggressivt läge (AM). Eftersom det kan vara antingen huvud eller aggressiv läge Jag kommer att lista är helt enkelt som ‘XX’ nedan. Beviljas att du bara ser några av dem med antingen huvud-eller aggressivt läge. Definitionerna jag listar till varje stat är vad jag har funnit vara problemet i de flesta fall.

XX_Active – Connected
XX_KEY_EXCH – autentiseringsfel, kontrollera din autentiseringsmetod
XX_INIT_EXCH – autentiseringsfel, kontrollera din autentiseringsmetod
XX_NO_STATE – Det går inte att matcha Ike – fas 1-policyer, verifiera på varje sida
XX_WAIT_MSG2-väntar på svar från peer

dessutom om du inte har en sa alls, börja med att kontrollera det uppenbara. Börja på layer 1 och arbeta dig upp och se till att båda enheterna har anslutning och att peer-adresserna är korrekta.

99% av tiden ett problem är med Ike fas 1 SA. Om du får ett tillstånd av aktiv på fas 1 är du förmodligen i god form. Om du fortfarande har problem, ta en titt på din ike phase 2 SA. Jag kommer inte att visa ett exempel på en eftersom det oftast bara är statistik. Samma koncept gäller dock, om du inte har en IPSec SA har du inte en VPN-tunnel.

felsökning
om du fortfarande har problem, som något annat på ASA, försök felsöka. De två kommandon du letar efter skulle vara…

ASA# debug crypto isakmp
ASA# debug crypto ipsec
ASA# terminal monitor

se till att du aktiverar terminal monitor om du inte är på konsolporten

den stora fixen
jag kan inte berätta hur många gånger jag har spenderat timmar på att försöka få en tunnel att ladda med absolut ingen framgång. I slutändan fixade två kommandon alltid mina problem. När allt annat misslyckas, rensa alla dina Isakmp och IPSEC SAs. Detta kommer naturligtvis att blåsa bort alla IPSec-anslutningar till lådan. Något om att bara blåsa bort alla andra anslutningar och börja från början verkar fixa det. För att göra detta….

ASA# clear crypto ipsec sa
ASA# clear crypto isakmp sa

slutsats
jag hoppas att du har sett, genom denna artikel, att ha en basförståelse för hur IPSec fungerar gör en värld av skillnad. Att veta var man ska leta efter fel och hur man tolkar dem är nyckeln till felsökning av IPSec L2L-tunnlar.

Leave a Reply