Veilig surfen met uw eigen VPN
In dit artikel creëren we een VPN-server (Virtual Private Network) op een Ubuntu Server. Deze kunnen we voor verschillende doelen inzetten. Als u deze server in uw thuisnetwerk zet, krijgt u vanaf overal ter wereld op een veilige manier toegang tot andere computers op uw thuisnetwerk, zoals uw NAS. Bovendien kunt u deze beveiligde verbinding ook gebruiken als u verplicht bent ergens te surfen via een onbeveiligd draadloos netwerk. Dezelfde kennis komt overigens nog in een andere situatie van pas: heel wat websites zijn enkel toegankelijk in een bepaald land, bijvoorbeeld omdat ze audio of video aanbieden waarvoor ze enkel de rechten in dat land gekocht hebben. Als u een VPS (Virtual Private Server) in dat land huurt en daarop Ubuntu met een VPN-server plaatst, krijgt u door via deze VPN-server te surfen wel toegang tot deze websites, omdat het voor hen dan lijkt dat u vanuit dit land surft.
Over het opzetten van een Linux-server leest u meer in het artikel Uw eigen Linux-server.
SSH SOCKS-proxy
1. Tijdelijke oplossing
Wilt u geen permanente oplossing voor veilig en zonder beperkingen surfen (een VPN) maar wilt u nu snel even een veilige verbinding opzetten? Dan kunt u gebruikmaken van een SSH SOCKS-proxy. Zo kunt u veilig op een onveilig draadloos netwerk surfen, bijvoorbeeld in een hotel of op een conferentie. Een SSH SOCKS-proxy vereist enkel een publiek toegankelijke server waarop SSH draait. Uw VPS of router thuis die via een DynDNS-domeinnaam bereikbaar is, kan hiervoor dienen. En dat zonder enige bijkomende configuratie aan de serverkant!
©PXimport
2. Verbinding starten
Gebruikt u Windows, zoek dan waar het bestand putty.exe is opgeslagen (of download het) en ga met de opdracht cd naar die directory. Geef daarna de volgende opdracht: putty.exe -D 8080 -C gebruiker@voorbeeld.nl, waarbij u natuurlijk de gebruiker en domeinnaam vervangt. De optie D geeft aan dat u een SOCKS-proxy opent die lokaal op poort 8080 luistert, terwijl de optie C compressie inschakelt. Gebruikt u Linux of Mac, open dan de terminal (Mac: Venster / Hulpprogramma's / Terminal), en gebruik het commando ssh -D 8080 -C gebruiker@voorbeeld.nl.
©PXimport
3. Proxy in Firefox
Open nu Firefox en ga naar Extra / Opties, kies Geavanceerd en daarna het tabblad Netwerk. Bij Verbinding kiest u voor Instellingen. Selecteer daar Handmatige proxyconfiguratie en vul bij SOCKS-host in: localhost en poort 8080. Klik daarna op OK en typ in de adresbalk about:config, waarin u network.proxy.socks_remote_dns op true zet om ook de DNS-aanvragen via uw proxy te laten verlopen. Vanaf nu surft u in Firefox veilig en versleuteld via uw Ubuntu Server, zodat niemand op het onbeveiligde draadloze netwerk kan afluisteren welke websites u bezoekt.
©PXimport
VPN - Server klaarmaken
4. PPTP
Een SSH SOCKS-proxy moet u afzonderlijk configureren voor elke toepassing waarmee u er gebruik van wilt maken. Dit is niet praktisch. Een VPN daarentegen zorgt ervoor dat ál uw programma's via deze verbinding lopen. Niet alleen uw browser, maar ook uw instant messaging-client, Skype, e-mailprogramma, computergame enzovoort. Er bestaan verschillende types VPN. Wij kiezen voor PPTP omdat het breed ingeburgerd is en standaard ondersteund wordt door Windows, Ubuntu, Android-smartphones en de iPhone.
©PXimport
5. Installatie
Installeer pptpd met sudo apt-get install pptpd. Open daarna het configuratiebestand met sudo nano /etc/pptpd.conf en ga naar het einde. Daar geeft u met localip het IP-adres van de server in het VPN op, en met remoteip het adresbereik van de verbonden clients. Voor de eerste kunt u gewoon het hekje voor de regel #localip 192.168.0.1 weghalen. Indien uw LAN ook IP-adressen in het bereik 192.168.0.* gebruikt, moet u ook het IP-adres in deze regel wijzigen. Voor de clients geeft u bijvoorbeeld remoteip 192.168.0.100-109 in, waarmee tien clients met uw VPN kunnen verbinden.
©PXimport
6. Encryptie
Kijk enkele opties na in het bestand /etc/ppp/pptpd-options. Er moet een regel require-mschap-v2 staan voor authenticatie en require-mppe-128 voor encryptie. Ook moeten er regels refuse-pap, refuse-chap en refuse-mschap staan, die onveilige authenticatiemethodes uitschakelen. Wilt u helemaal geen encryptie gebruiken, bijvoorbeeld omdat u uw VPN enkel gebruikt om films te kunnen bekijken uit een ander land, dan kunt u een hekje (#) zetten voor al deze regels.
©PXimport
7. DNS
Vul in het bestand /etc/ppp/pptpd-options de DNS-servers in. Deze worden gebruikt door de clients die met het VPN verbinden. U hebt drie mogelijkheden. U kunt de DNS-servers invullen die uw Ubuntu Server gebruikt (zoalsdie van uw VPS- of internetprovider), die u kunt zien in het bestand /etc/resolv.conf na de regel nameserver. U kunt de gegevens van de DNS-servers van Google invullen: 8.8.8.8 en 8.8.4.4. Of u kiest voor OpenDNS: 298.67.222.222 en 208.67.220.220. Elke DNS-server komt in het bestand /etc/ppp/pptpd-options in een regel die begint met ms-dns.
©PXimport
8. Gebruikers
De voorlaatste stap aan de serverkant is het definiëren van gebruikers en wachtwoorden. Dat doet u in /etc/ppp/chap-secrets, waar u kolommen ziet voor client, server, secret en IP addresses. Druk telkens op Tab om naar de volgende kolom te gaan. Geef in de eerste kolom een gebruikersnaam op, vul in de tweede pptpd in (standaardnaam van de server), daarna het wachtwoord dat liefst zo lang mogelijk is (bijvoorbeeld twintig tekens), en tot slot * om toegang vanaf alle IP-adressen mogelijk te maken. Voor elke gebruiker doet u nu hetzelfde op een nieuwe regel.
©PXimport
9. Laatste instellingen
We passen nog enkele zaken onder de motorkap van Ubuntu aan. Open /etc/sysctl.conf en verwijder het hekje bij #net.ipv4.ip_forward=1. Open daarna /etc/rc.local en voeg vlak voor de regel exit 0 het volgende toe: iptables -t nat -A POSTROUTING -j MASQUERADE. Sla dit op en herstart uw Ubuntu Server met sudo reboot, hierna is hij klaar voor gebruik als VPN-server. Staat uw Ubuntu Server in uw LAN en wilt u ook van erbuiten toegang krijgen, zorg dan dat poort 1723 op uw router geforward wordt naar het IP-adres van uw VPN-server in uw LAN.
©PXimport
VPN - Verbinding maken
10. Nieuwe VPN-verbinding
We veronderstellen in dit artikel dat u met een Windows 7-computer op uw LAN wilt verbinden en een VPN-server op een VPS. Nu de serverkant in orde is, opent u het configuratiescherm op uw Windows-computer. Klik onder Netwerk en internet op Netwerkstatus en -taken weergeven, waarna u het Netwerkcentrum te zien. Klik onderaan op Een nieuwe verbinding of een nieuw netwerk instellen en selecteer in de lijst Verbinding met een bedrijfsnetwerk maken en in het volgende venster Mijn internetverbinding (VPN) gebruiken.
©PXimport
11. Configuratie VPN
In de volgende vensters stelt u een aantal zaken in, overeenkomstig met hoe u de VPN-server geconfigureerd hebt. Eerst het internetadres, dat de domeinnaam of het IP-adres van uw Ubuntu Server is. Verbindt u niet vanaf uw LAN met een VPS, maar vanaf internet met de VPN-server, dan moet u hier de dynamische domeinnaam instellen die uw router voor uw internetverbinding bijhoudt én u moet in uw router poort 1723 forwarden naar het interne IP-adres van uw Ubuntu Server. Geef tot slot in het laatste venster van de configuratie van de VPN-verbinding gebruikersnaam en wachtwoord in.
©PXimport
12. Controleren
Als alles goed gaat, bent u nu met het VPN verbonden. U kunt dit eenvoudig controleren door te surfen naar What Is My IP. Als u een IP-adres in het adresbereik van uw internetprovider te zien krijgt, surft u nog altijd zonder VPN. Indien de website het IP-adres van de VPS toont, surft u via het VPN. Klik op het netwerkicoontje in de taakbalk van Windows, waarna u te zien krijgt dat u verbonden bent met uw VPN-verbinding. Klikt u op de VPN-verbinding dan kunt u de verbinding verbreken, rechtsklikt u dan kunt u de status of eigenschappen opvragen.
©PXimport
13. Status
De status van de VPN-verbinding toont allerlei gegevens, zoals de verbindingsduur en hoeveel bytes er al verzonden en ontvangen zijn. Klikt u op het knopje Details, dan krijgt u het IP-adres te zien dat uw computer van de VPN-server krijgt (bijvoorbeeld 192.168.0.100) en de gebruikte DNS-servers. Klikt u op het tabblad Details, dan ziet u ook wat het IP-adres van de VPN-server in het VPN is (in ons geval 192.168.0.1), en het IP-adres van de VPN-server op internet. Bovendien ziet u hier ook de gebruikte authenticatie (MS CHAP V2) en versleuteling (MPPE 128).
©PXimport
14. Eigenschappen
In het venster Eigenschappen kunt u zaken aanpassen die u niet te zien kreeg tijdens de configuratie van uw nieuwe VPN-verbinding. Zo kunt u instellen dat er eerst met een ander netwerk verbonden wordt als u met het VPN verbindt. In de PPP-instellingen van het tabblad Opties kunt u ook compressie inschakelen. Het tabblad Beveiliging is normaal al in orde, maar kijk toch maar na of er bij Gegevensversleuteling Versleuteling verplicht staat, en bij de protocollen MS-CHAP v2 aangevinkt is. In het tabblad Delen kunt u de VPN-verbinding delen met andere computers.
©PXimport
15. Netwerkonderdelen
In het tabblad Netwerk van het venster Eigenschappen staan standaard verschillende componenten ingeschakeld die u niet altijd nodig hebt. Gebruikt u uw VPN bijvoorbeeld op een VPS in Amerika om Hulu te bekijken, dan heeft u enkel Internet Protocol versie 4 (TCP/IPv4) nodig, en kunt u de andere componenten gerust afvinken. Gebruikt u het VPN om vanaf internet toegang te krijgen tot uw thuisnetwerk, danis het waarschijnlijk interessant om Bestands- en printerdeling voor Microsoft-netwerken en Client voor Microsoft-netwerken ingeschakeld te laten.
©PXimport
Nieuwe VPN-verbinding in Ubuntu
U bent helemaal niet beperkt tot Windows om uw VPN-server te gebruiken. Gebruikt u bijvoorbeeld Ubuntu op uw laptop of netbook, dan kunt u natuurlijk ook heel eenvoudig verbinden met uw VPN. Open het menu Systeem / Voorkeuren / Netwerkverbindingen en ga naar het tabblad VPN. Klik op Toevoegen en kies uit de lijst Point-to-Point Tunneling Protocol (PPTP). In het venster erna geeft u bij Gateway de domeinnaam of het IP-adres waarop uw server bereikbaar is in, en daaronder uw gebruikersnaam en wachtwoord bij het VPN. Klik daarna op Advanced en vink Use Point-to-Point encryption (MPPE) aan.
©PXimport
Verbinden in Ubuntu
Om met het VPN te verbinden klikt u op het netwerkicoontje in het Gnome-paneel bovenaan en kiest u in het menu dat verschijnt het submenu VPN-verbindingen en dan de naam van uw VPN-verbinding. Na enkele seconden verschijnt er een slotje onder het netwerkicoontje als aanduiding dat u nu het VPN gebruikt. U kunt de verbinding verifiëren met de opdracht ifconfig ppp0 in een terminalvenster.
16. Lokaal netwerk
Als u uw VPN-server binnen uw eigen LAN zet, kunt u van overal ter wereld in uw lokaal netwerk. Daarvoor moet u wel port forwarding in uw router inschakelen: laat poort 1723 doorschakelen naar poort 1723 op het lokale IP-adres van uw Ubuntu Server. Stel in uw router ook in dat er een dynamische domeinnaam gekoppeld wordt aan het IP-adres dat u van uw internetprovider toegewezen krijgt. Nu kunt u buitenshuis een VPN-verbinding opzetten naar uw dynamische domeinnaam. Uw router forwardt de verbinding naar uw Ubuntu Server in uw LAN.
©PXimport
17. Bestanden
U kunt deze toegang tot uw lokale netwerk gebruiken om bijvoorbeeld van buitenshuis bestanden op uw NAS in te lezen of om via een lokale SIP-server veilig te bellen met uw huisgenoten. De mogelijkheden zijn onbegrensd. Dezelfde techniek wordt in bedrijven natuurlijk in de andere richting gebruikt: daar draait dan een VPN-server in het bedrijf, waartoe werknemers van thuis uit verbinden om bijvoorbeeld te kunnen thuiswerken.
©PXimport
18. Lokale beperkingen
U kunt een VPN gebruiken om locatierestricties te omzeilen. Als een game die u graag speelt bijvoorbeeld enkel multiplayer in een LAN ondersteunt en niet over internet, terwijl u juist met een vriend via internet wilt spelen, wanhoop dan niet. Verbind beiden met dezelfde VPN-server en gebruik de IP-adressen die u door de VPN-verbinding toegewezen krijgt. Voor het spel lijkt het alsof u in hetzelfde LAN aanwezig bent. Afhankelijk van het spel moet u misschien nog iets op uw router configureren. Voor games hebt u geen encryptie nodig, dus dit kunt u uitschakelen in het bestand /etc/ppp/pptpd-options.
©PXimport
Nieuwe VPN-verbinding in iOS
Ook op uw iPhone of iPod touch hebt u toegang tot uw VPN. Open Instellingen / Algemeen / Netwerk / VPN. Druk op Voeg VPN-configuratie toe en kies dan het tabblad PPTP. Geef uw VPN een naam bij Beschrijving, vul de domeinnaam of het IP-adres in bij Server en vul uw gebruikersnaam en wachtwoord in bij Account respectievelijk Wachtwoord. De rest van de instellingen kunt u op hun standaardwaardes laten staan. Druk op Bewaar en schakel VPN dan in.