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 ....




Hoe zet ik een VPN verbinding op?

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:

ZyWALL P1 The Greenbow
ZyWALL 5 ZyWALL RSC
ZyWALL 35 SSH Sentinel
ZyWALL 70    
ZyWALL 1050    
ZyWALL 2    
ZyWALL 2WE    
ZyWALL 10(W)    


In theorie komt het neer op het afwerken van de volgende "checklist":
  1. 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:
  2. Wordt VPN voldoende ondersteund? Denk hierbij aan vragen als:
  3. Controleer de instellingen van de firewalls. Zijn deze ingesteld op het doorlaten van VPN?
  4. Configureer de VPN verbinding volgens de voorgeschreven handleiding.
  5. Kijk of de verbinding tot stand komt.



Wat is VPN?

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:

  1. De gegevens worden opgesteld. Deze gegevens worden aangeduid met de naam "payload" (vracht).
  2. De gegevens worden in een soort "envelop" gestopt.
  3. De envelop wordt voorzien van een afzender en bestemming
  4. De envelop reist over het internet.
  5. De envelop komt (als het goed is) aan bij de geadresseerde.
  6. De geadresseerde opent de envelop (met bijvoorbeeld een mailprogramma)
  7. 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. 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:

  1. De gegevens worden opgesteld.
  2. De gegevens worden met een beveiligingssleutel veranderd in geheimschrift. Zonder de sleutel is het onmogelijk om te achterhalen wat de oorspronkelijke gegevens waren.
  3. De gegevens worden in een aparte envelop gestopt. Op deze envelop worden apart adresgegevens genoteerd. Ook deze zijn gecodeerd.
  4. Deze extra envelop wordt in een normale (IP) enveloppe gedaan, aangezien het internet niet met speciale enveloppen overweg kan.
  5. De normale envelop wordt voorzien van normale adresgegevens.
  6. De normale envelop reist over het internet naar zijn bestemming toe.
  7. De normale envelop komt aan op de plaats van bestemming.
  8. Bij de bestemming aangekomen wordt de normale envelop uitgepakt, zoals iedere normale enveloppe.
  9. 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!
  10. Het geheimschrijft wordt ontcijfert met de bij de geadresseerde bekende sleutel
  11. De gegevens worden gelezen.
Om een VPN verbinding mogelijk te maken moet aan een aantal eisen worden voldaan:
  1. 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.
  2. Beide kanten van de verbinding moeten beschikken over een apparaat of stuk software wat gegevens kan versleutelen.
  3. De manier van versleutelen moet aan beide kanten identiek zijn
  4. De sleutel moet van te voren aan beide kanten bekend zijn
  5. 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:

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:
  1. 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.

  2. 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:
    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.


  3. 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:


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.

Het lukt niet....

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:

  1. 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.

  2. 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.

  3. 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.


  4. 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.

  5. 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.

  6. 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
  7. Andere problemen
    Een veel completere lijst van VPN problemen en hun oplossing kunt u vinden achter onderstaande link:
    VPN debug