VPN problemen
referentie A003G
Dit document geeft een definitie en omschrijving van VPN, behandelt een groot aantal problemen en mogelijkheden en is een startpunt voor het oplossen van problemen met het realiseren van een VPN verbinding. Het document bestaat uit de volgende onderdelen:
Hoe zet ik een VPN verbinding op?
Wat is VPN ?
Welke vormen van VPN bestaan er?
Hoe veilig is VPN?
Het lukt niet ....
De juiste instructies voor het opzetten van een VPN verbinding verschillen van geval tot geval, afhankelijk van de gebruikte apparaten en programmatuur.
Concrete stapsgewijze instructies kunt u voor een aantal modellen vinden onder de volgende links:
In theorie komt het neer op het afwerken van de volgende "checklist":
- Leg vast wat de netwerkstructuur aan beide kanten van de verbinding is. Deze gegevens zijn nodig om de VPN tunnel goed in te stellen. Denk hierbij aan:
- Welke publieke IP adressen worden aan beide kanten gebruikt?
- Welke IP-adressen hebben de computers/ routers waar de VPN tunnel naar toe loopt?
- Als er aan een of beide kanten NAT wordt gebruikt, wat zijn de eigenschappen van dit netwerk?
- Wat is het gebruikte subnet?
- Wat is het ip-adres van de DHCP-router (indien van toepassing)?
- Wijken de gebruikte subnetten aan weerskanten voldoende van elkaar af? (Er mogen geen twee identieke IP-adressen mogelijk zijn, dus geen overlappende bereiken
- Wordt VPN voldoende ondersteund? Denk hierbij aan vragen als:
- Als er routers bij zijn betrokken, laten deze het VPN verkeer door?
- Gebruiken beide kanten van de verbinding dezelfde vorm van VPN?
- Zijn de gebruikte VPN cliënt en server compatibel met elkaar?
- Controleer de instellingen van de firewalls. Zijn deze ingesteld op het doorlaten van VPN?
- Configureer de VPN verbinding volgens de voorgeschreven handleiding.
- Kijk of de verbinding tot stand komt.
In het algemeen:
De afkorting VPN staat voor Virtual Private Network. Het is een veilige manier om via het internet twee (netwerken van) computers met elkaar te verbinden over een internetverbinding. Mits goed geconfigureerd is het even veilig als een zogenaamde "vaste" verbinding en vele malen goedkoper.
Ook de "vaste" verbinding wordt vaak een VPN genoemd. Zo levert KPN Telecom Epacity aansluitingen waarbij wordt gegarandeerd dat de data alleen bij de eigen aansluitingen aan kan komen. Maar op deze pagina wordt met VPN een beveiligde verbinding over het verder open internet bedoeld.
Tunneling
Alle gegevens op het internet worden verzonden via zogenaamde "pakketjes" (Packets). Ieder pakketje is voorzien van een afzender, een adres waar het naar toe moet en een inhoud. De afzender en ontvanger kunnen niet worden aangepast, aangezien anders het pakketje niet op de juiste plaats aan kan komen. De weg van zo'n pakketje over het internet gaat systematisch als volgt:
- De gegevens worden opgesteld. Deze gegevens worden aangeduid met de naam "payload" (vracht).
- De gegevens worden in een soort "envelop" gestopt.
- De envelop wordt voorzien van een afzender en bestemming
- De envelop reist over het internet.
- De envelop komt (als het goed is) aan bij de geadresseerde.
- De geadresseerde opent de envelop (met bijvoorbeeld een mailprogramma)
- De geadresseerde leest de gegevens.
Het bovenstaande "model" geldt voor alle vormen van gegevensoverdracht over het internet, dus ook voor surfen, on-line spelletjes en telewerken. De "envelop" waarover wordt gesproken zijn de zogenaamde "IP-pakketjes". Het internet is in wezen niet meer dan een serie met elkaar verbonden computers welke een eindeloze reeks van deze "enveloppen" naar elkaar verzenden.
Bij stap 4 zijn veiligheidsrisico's aanwezig.
- Een kwaadwillend persoon kan de afzender vervalsen. Hierdoor denkt de ontvanger dat hij een bericht van iemand krijgt, maar in werkelijkheid komt het van een ander.
- De envelop kan worden onderschept. Omdat een bericht op het internet nogal wat heen en weer reist is de kans aanwezig dat het in handen komt van iemand die de inhoud niet aangaat. Aangezien iedereen die de envelop in handen krijgt hem kan openen is het bericht onbeschermd.
Deze gevaren worden belangrijk als men te maken heeft met vertrouwelijke gegevens. Denk hierbij aan een thuiswerker welke in het weekend via een internetverbinding de administratie van de zaak bijwerkt, of een arts welke de medische gegevens van een patient on-line opvraagt bij de specialist.
VPN is een verzameling van technieken waarmee deze problemen kunnen worden verholpen. Het werkt door het versleutelen van de gegevens, waardoor alleen de mensen welke reeds beschikken over de juiste sleutel de inhoud van het bericht kunnen lezen. Hierdoor wordt gebruik gemaakt van een proces dat "tunneling" wordt genoemd. Bij het versturen van de informatie wordt gebruik gemaakt van een geheime sleutel en een extra envelop in de normale envelop. Zie hiervoor het onderstaande schema:
- De gegevens worden opgesteld.
- De gegevens worden met een beveiligingssleutel veranderd in geheimschrift. Zonder de sleutel is het onmogelijk om te achterhalen wat de oorspronkelijke gegevens waren.
- De gegevens worden in een aparte envelop gestopt. Op deze envelop worden apart adresgegevens genoteerd. Ook deze zijn gecodeerd.
- Deze extra envelop wordt in een normale (IP) enveloppe gedaan, aangezien het internet niet met speciale enveloppen overweg kan.
- De normale envelop wordt voorzien van normale adresgegevens.
- De normale envelop reist over het internet naar zijn bestemming toe.
- De normale envelop komt aan op de plaats van bestemming.
- Bij de bestemming aangekomen wordt de normale envelop uitgepakt, zoals iedere normale enveloppe.
- De geadresseerde herkent de envelop in de envelop als een VPN envelop en controleert de afzender. Als deze klopt weet de geadresseerde zeker dat de afzender is wie hij zegt dat hij is!
- Het geheimschrijft wordt ontcijfert met de bij de geadresseerde bekende sleutel
- De gegevens worden gelezen.
Om een VPN verbinding mogelijk te maken moet aan een aantal eisen worden voldaan:
- Er moet tussen beide punten een normale internetverbinding mogelijk zijn. Dit zijn punten 5, 6 en 7 in het bovenstaande overzicht. Als hier een fout wordt gemaakt komt de normale (IP) envelop nooit op de plaats van bestemming aan.
- Beide kanten van de verbinding moeten beschikken over een apparaat of stuk software wat gegevens kan versleutelen.
- De manier van versleutelen moet aan beide kanten identiek zijn
- De sleutel moet van te voren aan beide kanten bekend zijn
- De geadresseerde moet herkennen dat hij geen gewone informatie ontvangt, maar een speciale "VPN-envelop", die hij anders dient te behandelen dan normaal. (stap 8). Als dit niet het geval is komt de informatie wel aan, maar wordt hij afgedaan als onzin en niet ontcijfert.
Vormen van VPN
VPN verbindingen verschillen op twee manieren van elkaar: de gebruikte manier van versleuteling en envelop en de manier waarop zender en ontvanger met elkaar communiceren.
Onderscheid 1: versleuteling en enveloppe
Het gebruik van een extra "VPN-envelop" binnen de normale envelop wordt "tunneling" genoemd. Er zijn verschillende vormen van enveloppen:
- PPTP
PPTP staat voor point-to-point protocol. Het is een manier om informatie te versturen waarbij de inhoud van de VPN envelop NIET wordt versleuteld. PPTP zit standaard bijvoorbeeld in Windows ingebouwd. Gezien de beperkte beveiligingsmogelijkheden van deze vorm van VPN wordt deze vorm niet als volwaardig VPN gezien. Dit betekent dat voor het beveiligen van de gegevensstroom extra maatregelen buiten VPN om nodig zijn.
-
L2TP
L2TP staat voor "layer 2 tunneling protocol". De voor- en nadelen zijn te vergelijken met PPTP.
- IPsec
IP sec is volgens velen de "echte" vorm van VPN, omdat het de tunneling altijd combineert met een bepaalde vorm van encryptie. Meerdere vormen van encryptie zijn mogelijk:
- DES. Algemeen bruikbaar bij programma's en apparaten welke VPN aan kunnen. Redelijk veilig.
- 3DES. Dit is niet meer dan DES welke 3x achter elkaar gebruikt wordt. Vrijwel alle programma's en apparaten welke DES aan kunnen kunnen ook 3DES aan. 3DES is veilig
- AES. Deze vrij nieuwe standaard geldt als zeer veilig, maar wordt niet standaard in ieder VPN programma ondersteund.
Er bestaat een wisselwerking tussen de gebruikte vorm van VPN en de belasting van de verbinding. Veiliger vormen van encryptie (versleuteling) vragen meer rekenwerk en een hogere belasting van de hardware. Bij veel VPN dataverkeer kan dit van belang zijn, maar in de meeste situaties heeft het de voorkeur om de meest veilige vorm van versleuteling te gebruiken.
Onderscheid 2: het netwerk aan beide kanten van de verbinding
Voor het opzetten van een VPN verbinding moet een van de betrokken computers als server en een andere computer als cliënt worden ingesteld.
Er zijn drie combinaties van VPN tussen computers en netwerken mogelijk, afhankelijk van de punten waartussen de VPN verbinding moet lopen:
- Rechtstreeks van computer tot computer
De meest directe is een vorm van VPN tussen twee computers. Hiervoor hebben deze twee computers respectiefelijk een VPN cliënt en VPN serverprogramma nodig:
Het gebruik van een computer als VPN client of server maakt standaard deel uit van sommige versies van Windows.
Dit soort VPN verbindingen zijn vrij recht-toe-recht-aan. Een PPtP of L2TP VPN kan al worden opgezet tussen twee computers welke beiden gebruik maken van Windows XP.
- Tussen twee routers welke VPN ondersteunen
Om een netwerk van computers toegang tot het internet te geven heeft men een router nodig. Als men een tweetal netwerken via VPN met elkaar wil verbinden kan men er voor kiezen de VPN verbinding niet te laten maken door de individuele computers maar bijvoorbeeld door de routers af te laten handelen. De verschillende aangesloten computers hoeven in dit geval geen aparte VPN software te gebruiken. Bij een goede configuratie ontstaat een transparant netwerk dat over meer dan een lokatie gespreid kan zijn. De firewall in de router schermt tegelijkertijd het hele netwerk achter de router af. Deze configuratie is ideaal voor het koppelen van bijvoorbeeld een aantal filialen en een hoofdkantoor.
Een paar opmerkingen over deze opzet:
- De verschillende routers moeten compatibel met elkaar zijn.
- De modems moeten het VPN verkeer normaal doorlaten en de firewalls in de routers moeten goed zijn geconfigureerd.
- De routers houden de "broadcast" van de verschillende in het netwerk opgestelde computers soms tegen. Hierdoor lijken de computers aan de andere kant van de tunnel niet te zijn. Dit is bij voorbeeld door gebruik van WINS of LMhost bestand te verhelpen. De nieuwste modellen zijn voorzien van een mogelijkheid om de "broadcasts" toch door te laten waardoor deze extra instelling niet langer nodig is. Zie hiervoor het overzicht van ZyXEL routers.
- De netwerken aan de verschillende kanten van de tunnel mogen niet hetzelfde IP-bereik gebruiken.
Conclusie
Om boven genoemde redenen verdient het de voorkeur om van te voren goed uit te werken hoe de netwerken aan weerszijde van de VPN verbinding er uit moeten gaan zien. Bekijk aan de hand van de specificaties van de betrokken programma's en routers of het kan werken.
- Mengvormen
Soms wordt de VPN verbinding opgezet door de computers zelf maar maakt een of beide kanten van de verbinding gebruik van een router. Neem bijvoorbeeld een groep thuiswerkers welke allen verbinding moeten krijgen met een centrale server. De server staat in het netwerk van het bedrijf achter een router, welke op het bedrijf wordt gebruikt om het internet te delen en in zijn geheel af te schermen met een firewall.
Maar het kan ook andersom: een VPN Cliënt PC achter een router welke met een losse VPN server contact probeert te maken. Of neem een verbinding tussen twee netwerken met routers waarbij de VPN verbinding niet door de routers maar door de computers verzorgd wordt.
Dit gaat niet altijd goed. Deze configuraties kúnnen werken, maar niet bij ieder type verbinding, router en VPN programma. Er kunnen zich de volgende problemen voordoen:
- Een router krijgt door VPN versleutelde pakketjes met informatie binnen en herkent deze niet omdat het gebruikte protocol niet door de router wordt ondersteund. Het informatiepakketje wordt daardoor niet goed doorgegeven en de verbinding faalt.
- Het gebruikte VPN algorithme kan niet altijd tegen “NAT”. Een voorbeeld hiervan is de IPSec tunnel transport Mode in combinatie met AH (Authentication header) als transportprotocol.. Als de PC’s deze vorm “door” een router proberen op te zetten gaat dit fout, omdat de geadresseerde niet weet wat hij met de VPN envelop aan moet (stap 8 en 9 van het overzicht). Gebruik daarom bij voorkeur het ESP transportprotocol bij de instellingen van de VPN, aangezien deze hier geen last van heeft.
- In sommige gevallen kan een VPN verbinding tussen computers tot stand worden gebracht door de router(s) “transparant” (als modem/bridge) in te stellen. In dat geval is mogelijk ieder voordeel van een firewall op de router verdwenen en staat het netwerk mogelijk open voor de buitenwereld. Dit is onwenselijk wanneer de VPN server geen eigen firewall heeft.
- Niet elke combinatie van router, modem en breedband verbinding werkt met VPN. Indien een apparaat het VPN-verkeer correct door kan laten wordt dit omschreven als "ondersteunt VPN-Passthrough". Vaak moeten hiervoor wat extra dingen in de modem of de router worden ingesteld.
VPN en veiligheid
Veiligheid en type tunneling
VPN tunnels kunnen worden opgebouwd met PPTP, L2TP en IPsec. Niet ieder van deze typen en niet elke instelling is even veilig.
Afhankelijk van het soort VPN-verbinding gaat er verschillende data over de lijn.
Om u een indruk te geven van wat er gebeurt hebben we verschillende IP-ping-pakketten besnuffeld. (Als u MS Explorer 5.0 of hoger gebruikt krijgt u meer uitleg als u met de muis over de pakketdelen gaat.)
L2TP
De interne IP-adressen in het tweede IP-pakket en de over gedragen data in het ICMP gedeelte zijn in dit geval duidelijk te herkennen.
0000: 00 50 7f 00 29 3e 00 50 7f 00 29 3c 08 00 | DLC Header
45 00 | IP Header
0010: 00 7a 00 00 00 00 7f 33 b3 fd c0 a8 03 01 c0 a8
0020: 03 02
11 04 00 00 07 03 01 00 00 00 00 15 e4 d2 | IP Auth Header
0030: 10 dc 09 78 2c f1 ad a5 6f eb
06 a5 06 a5 00 4e | UDP Header
0040: 2a 45
40 02 00 46 00 04 00 02 | L2TP Header
00 21 | PPP Header
45 00 00 3c | IP Header
0050: 00 06 00 00 ff 01 32 b1 c0 a8 07 01 c0 a8 00 b8 |
0060: 00 00 33 5c 03 00 1f 00 | ICMP Header
61 62 63 64 65 66 67 68 | abcdefgh
0070: 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 | ijklmnopqrstuvwa
0080: 62 63 64 65 66 67 68 69 | bcdefghi
PPTP
Ook in dit geval zijn de interne IP-adressen in de tweede IP-header en de over gedragen data in het ICMP gedeelte duidelijk te herkennen. De hoeveelheid overhead is minder dan bij het L2TP pakketje.
0000: 00 50 7f 00 29 3c 00 50 7f 00 29 3e 08 00 | DLC Header
45 00 | IP Header
0010: 00 64 00 00 40 00 7f 2f 74 17 c0 a8 03 02 c0 a8
0020: 03 01
0030: 00 0f ff 03
30 81 88 0b 00 40 27 14 00 00 00 0e 00 00 | GRE Header
00 21 | PPP Header
45 00 00 3c 01 71 00 00 1f 01 | IP Header
0040: 11 47 c0 a8 00 b8 c0 a8 07 01
08 00 d6 5b 03 00 | ICMP Header
0050: 74 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e | ..abcdefghijklmn
0060: 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 | opqrstuvwabcdefg
0070: 68 69 | hi
IPsec met DES
Het pakketje is veel kleiner dan de LPTP en PPTP pakketten en valt weinig uit op te maken.
0000: 00 50 7f 00 29 3e 00 50 7f 00 29 3c 08 00 | DLC Header
45 00 | IP Header
0010: 00 48 00 00 00 00 7f 32 b4 30 c0 a8 03 01 c0 a8
0020: 03 02
07 03 01 00 00 00 13 67 29 f8 3e dd df 81 | DES in ESP
0030: d8 92 12 0e f4 2d ee 31 18 30 d5 05 a5 5a 9f fc
0040: 72 a3 77 de ec 6e 0a 7b a4 df 39 cf c2 05 dd e3
0050: f5 3b c6 25 dc 2d
IPsec en 3DES
Ook hier valt zo weinig uit op te maken.
0000: 00 50 7f 00 29 3e 00 50 7f 00 29 3c 08 00 | DLC Header
45 00 | IP Header
0010: 00 50 00 00 00 00 7f 32 b4 28 c0 a8 03 01 c0 a8
0020: 03 02
07 03 01 00 00 00 13 65 80 33 dd 88 c6 ae | 3DES in ESP
0030: 5f fb 9f 51 7b a3 2f d5 2d 16 7c 00 c1 59 d5 c8
0040: 3b 8f 06 a8 2c 5f 4c 96 ec 5f 84 f6 76 db 82 cf
0050: 24 9f 7e 85 84 2d 5b 2d 3a 49 9c 4d e5 69
Conclusie:
L2TP en PPtP uit de bovenstaande voorbeelden zijn uit zichzelf niet veilig. Iemand welke deze pakketjes kan onderscheppen is in staat om de inhoud te lezen en te analyseren, waarmee de reden om nu juist VPN te gebruiken verdwijnt. Bij gebruik van een dergelijke vorm van VPN zijn dus aanvullende maatregelen nodig. IPsec in combinatie met DES, 3DES en AES is veiliger. Gebruik bij voorkeur de hoogste vorm van encryptie, maar dit kost wel meer capaciteit van de processor.
VPN en andere vormen van veiligheid
VPN maakt het dataverkeer tussen twee punten veilig. Maar de veiligheid van een VPN verbinding is maar één vorm van veiligheid, waar men zich niet volledig op kan verlaten. Hoewel het transport van de gegevens over het internet met VPN veilig verloopt kan een kwaadwillende "hacker" bij een onbeschermde computer er achter komen wat de versleuteling van de VPN- tunnel is. Hiermee kan hij of zij de informatie wél ontcijferen met alle ongewenste effecten van dien. Om deze reden valt het aan te raden om een computer of een computernetwerk welke gebruik maakt van VPN tegelijkertijd ook te voorzien van een goede firewall. Op die manier zijn ook de in- en uitgang van de "tunnel" beveiligd.
Eenzelfde probleem doet zich voor indien bij het uiteinde van de tunnel gebruik wordt gemaakt van een draadloos netwerk. Deze zijn door iedereen in de buurt op te vangen. Indien de VPN is opgezet tussen twee routers maar het draadloze netwerk achter een van de routers niet goed is beschermd kan iedereen het verkeer opvangen en inzien. Voorzie daarom in dit soort gevallen het draadloze netwerk van afdoende beveiliging als WEP, WPA en wireless VPN.
Als laatste waarschuwing: VPN is afhankelijk van het gebruik van "sleutels". Als de sleutel gemakkelijk te voorspellen is kan een kwaadwillend iemand alsnog de beveiliging ongedaan maken door de sleutel correct te raden of te voorspellen.
Voor een lijst met foutmeldingen en oplossingen verwijzen we naar het document VPN debug. Dit lost in naar schatting 90% van alle gevallen het probleem op.
Bij het configureren en in gebruik nemen van een VPN verbinding kan er gemakkelijk iets verkeerd gaan. Het is wat ingewikkelder dan het configureren van een internet toegang, omdat vaak met de eigenschappen van twee netwerken tegelijkerlijk rekening moet worden gehouden. Zelfs een ervaren gebruiker kan al gemakkelijk een foutje hierbij maken. Hieronder een lijst met de meest voorkomende oorzaken:
Fouten in de internettoegang.
Voor het tot stand komen van een VPN verbinding behoren beide kanten van de verbinding los van elkaar het Internet te kunnen bereiken. Als een van beide kanten dat niet kan zal dit probleem eerst moeten worden opgelost.
Fouten in de netwerkstructuur.
Als vaststaat dat beide kanten internettoegang hebben zouden beide kanten van de verbinding elkaar moeten kunnen pingen.
Ping het IP adres van de computer waarnaar de VPN dient te lopen. Ping ook naar het publieke IP adres van deze computer. Als de computer achter een router zit, is dit dus het publieke IP adres van deze router. Herhaal desnoods de procedure aan de andere kant. Als een van de PING testen niet lukt is dit een sterke aanwijzing dat er ergenis in het netwerk een fout zit, welke ook de VPN verbinding tegen zal houden.
- Een veel voorkomende fout is het gebruik van hetzelfde subnet aan beide kanten van de VPN verbinding. De tussen gelegen router(s) kunnen in dit geval geen onderscheid maken tussen de LAN en WAN zijde. Gebruik daarom van elkaar afwijkende netwerkinstellingen. (Bijvoorbeeld 192.168.1.*** aan beide kanten), want dat gaat niet werken.
- Een andere fout is het gebruik van een subnet welke aan een van beide kanten al voor iets anders gereserveerd is. Het subnet 192.168.2.*** wordt bijvoorbeeld op een ZyXEL vaak gereserveerd voor een DMZ. Indien men dit subnet instelt zal de tunnel wel tot stand komen, maar lijkt er geen verkeer overheen te gaan.
Fouten in de hardware
Ondersteunt de hardware wel het gebruik van VPN? Veel routers hebben moeite met herkennen van "VPN-enveloppen" als het VPN pakketje moet worden doorgegeven aan een computer achter de router.
Hierdoor komt de "envelop" niet verder dan de router. Kijk of de router VPN-passthrough wel ondersteunt en of alle instellingen aan beide zijden goed zijn ingevuld.
Fouten in de firewall
De meest voorkomende fout is hier het blokkeren van poort 500. Deze poort wordt door IKE gebruikt voor het afleveren van de sleutels om de verbinding op te zetten. Een voorbeeld hiervan is te vinden onder:
VPN Passthrough door ZyXEL routers
Zorg ervoor dat u de WAN-WAN firewall op deze manier openzet, behalve bij die modellen welke geen WAN-WAN firewall hebben. Pas in deze modellen de WAN-LAN firewall aan.
Fouten in de configuratie.
Loop alle instellingen nog een keer grondig door om er zeker van te zijn dat alles correct is geconfigureerd.
Let er op dat de juiste IP adressen op de juiste plaats staan en neem niet zonder meer de instellingen van een ander model of merk over.
Fouten in de lijn
Bij een normale internetverbinding is het niet zo'n probleem als de verbinding heel even wegvalt. De overdracht van gegevens herstelt zich snel genoeg. Bij VPN kan het "haperen" van de verbinding een reden zijn waarom de verbinding wordt beeindigd. Bij een VPN verbinding wordt door een CRC - controle vrij nauwkeurig bijgehouden hoeveel gegevens het in welke tijd worden ontvangen. Als de verbinding even hapert klopt deze CRC niet meer. De hard- of softeware welke de verbinding onderhoudt komt tot de conclusie dat er "iets" niet meer klopt met de verbinding. Zoals een goed, paranoïde beveiligingsprogramma betaamt wordt meteen ingegrepen en de verbinding dichtgezet.
De meeste internetverbindingen zijn uit zichzelf stabiel genoeg voor gebruik van een VPN verbinding. Maar bijvoorbeeld bij gebruik van ADSL als de afstand tot de wijkcentrale relatief groot is ten opzichte van de aangeboden bandbreedte kunnen er problemen optreden. Meer hierover in Stabiliteit van een ADSL lijn
- Andere problemen
Een veel completere lijst van VPN problemen en hun oplossing kunt u vinden achter onderstaande link:
VPN debug