VPN-kontrollkanal och datakanal: kontrollera rätt lager
En tunnel kan förhandla och ändå inte bära något. Kontrollera vilken kanal som misslyckades: kontrolluppsättningen, dataskyddet eller rutten och DNS:en bortom båda.
Klienten säger ansluten, servern ser en peer, och applikationen når fortfarande ingenting. I det läget är den användbara frågan inte vilken chiffer som ska bytas, utan vilken kanal som misslyckades. OpenVPN namnger två funktioner uttryckligen: en kontrollkanal som förhandlar om och hanterar sessionen, och en datakanal som bär den skyddade trafiken. IKEv2 uttrycker en besläktad delning genom IKE-associationen och CHILD-associationen. Arbeta igenom kontrollerna nedan i ordning, eftersom en rättelse av datavägen som tillämpas på ett fel i kontrollvägen slösar bort ett ändringsfönster.
Namnge kanalen innan du felsöker den
Kontrollsidan förhandlar om säkerhetsmaterial, autentiserar parter och hanterar anslutningen. Datasidan bär den valda trafiken när det nödvändiga tillståndet finns.
De misslyckas olika. Ett kontrollfel lämnar dig vanligtvis helt utan en användbar session, eller med en session som förhandlar om i en loop. Ett datafel lämnar en session som ser frisk ut medan paket släpps, dirigeras fel eller skyddas med parametrar som den andra sidan inte accepterar. Loggraden du läser talar om vilket av de två fallen du är i, så läs etiketten före feltexten.
Kontrollera kontrollutbytet
Bekräfta att handskakningen slutförs och att båda sidor är överens om transporten, TLS-versionen och autentiseringsmetoden. OpenVPN-loggar skriver ut separata rader för kontrollkanalen och datakanalen, och det är i kontrollraden en avvikelse i certifikat, TLS-version eller tls-crypt dyker upp.
Om kontrollutbytet misslyckas, titta på den nåbara porten, certifikatkedjan och dess giltighetsdatum, systemklockan, överlappningen mellan chiffer på klient och server samt varje tls-auth- eller tls-crypt-nyckel. En stor certifikatkedja kan också misslyckas på banans MTU innan någon autentisering slutförs, vilket ser ut som en timeout och inte som ett kryptografiskt fel.
Rätta kontrollfel med kontrollinställningar. Att höja datachiffern eller lätta på datapolicyn för autentisering slutför inte en handskakning som aldrig kom förbi certifikatutbytet.
Kontrollera datakanalen separat
När sessionen är uppe, bekräfta den förhandlade datachiffern och -moden, nyckelhärledningen och beteendet vid nyckelförnyelse. I OpenVPN anger datakanalraden den chiffer och nyckelstorlek som faktiskt initierades, och de kan skilja sig från den första chiffern i profilen.
Kontrollera sedan vad sessionen installerade. Ett PUSH_REPLY kan lägga till rutter, en DNS-server och ett redirect-gateway-direktiv, och var och en av dem kan skicka trafik dit applikationen inte kan använda den. För IKEv2 är den motsvarande frågan om CHILD-associationens selektorer matchar adresserna i det faktiska flödet.
tls-auth och tls-crypt hör till kontrollkanalen. De autentiserar eller krypterar handskakningen och väljer inte applikationens datachiffer. Om du lägger till en av dem i väntan på en ändring av datavägen är det enda du har ändrat handskakningen.
Koppla namnen till IKEv2 och OpenVPN
IKEv2 har en IKE-säkerhetsassociation och en eller flera CHILD-associationer. IKE-associationen bär kontrollutbytena; CHILD-associationen bär den skyddade trafiken och dess selektorer. De förhandlas och får förnyade nycklar enligt separata scheman, så den ena kan vara frisk medan den andra inte är det.
ESP har ingen kontrollkanal i TLS-stil inuti sig. Kontrollprotokollet är IKE, och ESP är nyttolasten som skyddas. Att kalla ESP datakanalen är en lös förkortning som blir förvirrande när du läser en paketfångst, eftersom fångsten visar IKE-meddelanden och ESP-paket som olika protokoll på ledningen.
Håll kopplingen explicit i dina anteckningar: OpenVPN-kontrollkanal och IKE SA är styrsidan, OpenVPN-datakanal och CHILD SA är trafiksidan, och implementationerna är inte utbytbara ens när delningen ser likadan ut.
Sluta ändra den fel inställningen
Gå vägen i en riktning: kontrollutbyte, dataskydd, vidarebefordran och sedan namnutslagning. Stanna vid det första steget som misslyckas och rätta bara det steget. En ansluten session med fungerande ping till gatewayen men utan applikationstrafik är ett vidarebefordrings- eller selektorproblem, inte ett handskakningsproblem.
Skriv bevisen för varje steg separat i ärendet: kontrolloggens rad, de förhandlade dataparametrarna, de installerade rutterna och en riktig begäran. Den strukturen hindrar att en fungerande identitetskontroll försvagas för att laga ett senare routingproblem som den aldrig orsakade, och den hindrar att en ändring av datachiffern säljs som en rättelse av ett certifikatfel.
OpenVPN-protokolldokumentationen är referensen för delningen mellan kontroll och data; använd den när ett leverantörsgränssnitt använder andra ord för samma två funktioner.