WIFI & NETWERK JE EIGEN VPN-SERVER MET EEN RASPBERRY P
I
WIFI & NETWERK EXPERTGIDS
BEHEER OP AFSTAND
EXPERTGIDS
Volledige controle, ook als je niet thuis bent
STRESSTEST
voor je thuisnetwerk ACHTERHAAL DE ZWAKKE SCHAKELS ÉN LOS ZE OP LEG ZELF THUIS HET SNELST MOGELIJK NETWERK AAN
TOEGANG TOT JE THUISSERVER MET PAGEKITE
UPGRADE JE ROUTER
Installeer DD-WRT en je hebt alles zelf in de hand TEST
MANAGED ACCESSPOINTS € 9,95
WIFI? ECHT SNEL BEN JE MET GLASVEZEL
BP
MASTERCLASS WINDOWS 10 ALS SERVER
Linux, nas ... of toch gewoon Windows 10 als server? JOCHEM DE GOEDE
WINDOWS 10 ALS SERVER EIGENLIJK WIL JE WEL JE EIGEN SERVER OPZETTEN, MAAR JE HEBT NIET ECHT ZIN OF TIJD OM VEEL WERK IN EEN LINUX-SERVER OF EEN NIEUWE NAS TE STEKEN. BEGRIJPELIJK, DAAROM GAAN WE IN DIT ARTIKEL ONDERZOEKEN IN HOEVERRE WINDOWS 10 ALS SERVER KAN DIENEN – EN OF HET WEL EEN GOED IDEE IS.
Voordat je aan de slag gaat met Windows
veel meer aanvalsvectoren, zoals de gehele
Windows als server te willen
10 als server, zijn er wel een paar dingen
grafische interface, alle ingebouwde Win-
gebruiken. Zoals gezegd is het
die je moet overwegen. Windows 10 is een
dows-desktopapplicaties en veel overbodige
eenvoudig, je hoeft niet met een
desktop-besturingssysteem. Dat maakt
services en diensten. Het is bovendien een
nieuwe omgeving overweg te
het inherent onveiliger dan een server-be-
groot nadeel dat er niet een centrale package-
kunnen. Ook kan het je helpen
sturingssysteem, omdat er simpelweg veel
manager is, zoals op Linux, en dat je dus zelf
om wat meer ervaring te krijgen
onderdelen op gebruiksvriendelijkheid zijn
alles in de gaten moet houden en handmatig
met Windows als server, wat
ingesteld in plaats van op veiligheid. Daar-
zult moeten patchen. Dat gezegd hebbende,
bijvoorbeeld zakelijk handig is in
naast heeft een desktop-systeem natuurlijk
kun je toch een aantal redenen hebben om
een omgeving waar veel Microsoft-producten aanwezig zijn.
OPSLAGRUIMTEN Eén van de misschien wat vergeten functies van Windows 10 is Opslagruimten. Dat is een softwarematige raidfunctie die erg eenvoudig te gebruiken is. Je vindt het in het Configuratiescherm, onder Opslagruimten. Het lijkt veel op de functie Drive Extender uit Windows Home Server, handig dat die functie zelfs nu nog in Windows 10 aanwezig is. Je kunt er meerdere mee schijven combineren, zodat je bijvoorbeeld maar één netwerkschijf hoeft te delen over het netwerk, en je kunt er je data mee beschermen door gebruik te maken van redundantie. Je hebt de keuze uit een aantal modi, zoals een two- of threeway-mirror en parity, vergelijkbaar met raid5.
Windows 10 bevat standaard erg veel software.
92
WIFI & NETWERK EXPERTGIDS
MASTERCLASS WINDOWS 10 ALS SERVER
Alternatieven Als je het toch anders wilt aanpakken, kun je kiezen tussen Windows-servers, Linux of Unix. Voor Windows was er dus Windows Home Server, maar de laatste versie daarvan komt uit 2011 en is gebaseerd op Windows 7. Deze versie is niet meer verkrijgbaar. De spirituele opvolger is Windows Server Essentials 2016. Het grote voordeel dat je dan hebt ten opzichte van Windows 10 is het gecentraliseerd maken van back-ups voor je pc’s en gecentraliseerd je pc’s controleren op problemen. Wel is Windows Server Essentials een stuk ingewikkelder én duur. Als je liever Linux wilt, blijft Ubuntu Server een aanrader. Wil je meer een nas-achtige opzet, kijk dan ook eens naar FreeNAS.
Met Opslagruimten zorg je dat je data gespiegeld wordt.
BESTANDEN DELEN Het delen van een bestand, map of schijf is op zich niet lastig. Bij het Eigenschappen-venster vind je alle instellingen om te delen. Voeg dan bij
Zorg voor het juiste netwerktype en zet dan delen met een wachtwoord uit.
permissies Iedereen toe bij het delen. Daarna is het nodig om delen met een wachtwoord uit te
zetten. Tegenwoordig heb je Ubuntu Bash op
met de ontwikkeling van deze module. Je
zetten, als je niet wilt worden las-
Windows en daarop kun je openssh installe-
kunt de laatste build van ssh voor PowerShell
tiggevallen met gebruikersnaam
ren met sudo apt install openssh-server.
hier vandaan halen: www.tiny.cc/7bhzjy.
en wachtwoord. Dat verander je
Je kunt het dan zoals in Ubuntu configure-
Pak de inhoud van de zip uit in C:\Program
door naar het Netwerkcentrum
ren. Windows 10 zelf bevat een ingebouwde
Files\OpenSSH en start dan PowerShell als
te gaan. Zorg er dan eerst dat
ssh-server zodra je de developermodus aanzet
administrator en cd naar de map van zojuist.
het netwerktype privé is. Is dat
die in heel sommige gevallen nodig is voor
Installeer sshd met het commando:
niet zo, dan verander je dat het
het uitrollen van uwp-apps en die niet voor
eenvoudigst door een thuisgroep
de eindgebruiker bedoeld is. Die conflicteert
aan te maken in het Netwerkcen-
met je ssh-server in Ubuntu Bash. Schakel die
Achteraf kun je de ssh-sleutels genereren met:
trum. Heb je dat eenmaal gedaan,
daarom uit door services.msc te openen, en
.\ssh-keygen.exe -A. Je kunt het geheel dan
dan klik je in het Netwerkcen-
de SSH Server Broker en SSH Server Proxy
starten met Start-Service ssh-agent en
trum links op Geavanceerde
uit te schakelen.
daarna Start-Service sshd. Dan is het nog
instellingen voor delen wijzigen.
powershell -executionpolicy bypass -file install-sshd.ps1
wel nodig om de firewall open te zetten, met:
Klap dan het onderdeel Alle net-
BASSH
netsh advfirewall firewall add rule
werken uit en zet de optie om te
Je kunt nu dus een beveiligde verbin-
name='SSH Port' dir=in action=allow
delen met een wachtwoord uit.
ding opzetten met je Windows-pc. Niet echt
protocol=TCP localport=22
handig als je daarmee nog niets kunt behe-
Test toegang tot ssh vanaf bash of met Putty,
SSH
ren. Tenzij je dus al je services onder Ubuntu
door in te loggen op localhost of het ip-adres
Op een beetje nas of
Bash gaat draaien, kom je niet heel ver. Je
en je eigen gebruikersnaam en wachtwoord
server kun je waar dan ook
kunt ssh ook gebruiken in combinatie met
van je Windows-pc. Typ powershell en je zit in
inloggen met ssh om zo de server
PowerShell. Dan heb je meer mogelijkheden
een PowerShell-sessie op je Windows-pc. Om
te onderhouden. In Windows 10
over Windows en kun je veel meer met alle
ssh direct mee te starten met Windows, open
is dat wat meer werk om op te
PowerShell-modules. Microsoft is zelf bezig
je de Opdrachtprompt met admin-rechten:
WIFI & NETWERK EXPERTGIDS
93
DE STANDAARD
Wat is wifi? Wifi (of Wi-Fi zoals het officieel door de Wi-Fi Alliance wordt geschreven) is de merknaam voor draadloze netwerken gebaseerd op de IEEE 802.11-standaarden. De term heeft verder geen betekenis en het staat dus niet – zoals vaak wordt aangenomen – voor Wireless Fidelity, al is de naam natuurlijk wel een duidelijke knipoog naar hifi.
DE STANDAARD WIFI
JEROEN BOER
WE LEVEN IN EEN DRAADLOZE WERELD, DRADEN VINDEN WE EIGENLIJK NIKS. GELUKKIG KUN JE DANKZIJ WIFI JE LAPTOP, TABLET EN SMARTPHONE DRAADLOOS VERBINDEN MET JE NETWERK EN INTERNET. WIFI IS ZELFS ZO POPULAIR DAT HET VOOR VEEL MENSEN ZELFS SYNONIEM IS MET INTERNET.
102
Wifi is gebaseerd op de
niet alleen voor wifi gebruikt, maar zijn eigenlijk bedoeld
SNELHEID
802.11-standaarden en de eerste
voor industriële, wetenschappelijke en medische toepas-
Tegenwoordig gebruiken we twee wifi-stan-
variant van 802.11 werd in 1997
singen waaronder de magnetron. De 2,4GHz-band is 83,5
daarden door elkaar: 802.11n en 802.11ac. Ten
geïntroduceerd met een theore-
MHz breed, maar kent toch dertien verschillende kanalen
opzichte van zijn voorganger heeft 802.11n
tische snelheid van 2 Mbit/s. In
van 20 MHz breed. De kanalen overlappen elkaar dan
drie belangrijke verbeteringen. Er kunnen
verbeterde vorm (802.11b) deed de
ook waardoor er in de praktijk maar drie kanalen zijn die
meer datastromen tegelijkertijd gebruikt
technologie vanaf 1999 succesvol
tegelijkertijd zonder overlap gebruikt kunnen worden. De
worden (mimo), er kunnen twee kanalen
zijn intrede bij consumenten
5GHz-band heeft in Europa 455 MHz aan bandbreedte.
gebundeld worden tot één kanaal van 40
thuis en werd de draadloze tech-
Voor ieder van de in Europa negentien gedefinieerde ka-
MHz en naast de 2,4- kan ook de 5GHz-band
niek voor het eerst wifi genoemd.
nalen is netjes de volle 20 MHz bandbreedte beschikbaar.
worden gebruikt. Een 40 MHz breed kanaal
Toen was 11 Mbit/s al heel wat,
Helaas zijn alleen de vier kanalen in het eerste blok he-
zorgt voor een theoretische 150 Mbit/s, al
tegenwoordig kijken we niet op
lemaal vrij te gebruiken, voor de andere kanalen gelden
is dat tegenwoordig alleen realistisch op de
van 1300 Mbit/s.
strengere regels omdat de frequenties bijvoorbeeld ook
5GHz-band. De huidige chipsets ondersteu-
door radarsystemen worden gebruikt. Deze zogenoemde
nen soms de QAM-256-modulatie van 802.11ac
TWEE FREQUENTIEBANDEN
dfs-kanalen moeten dan vrijgegeven worden en zijn niet
onder de naam Turbo-QAM ook op de 2,4GHz-
Wifi maakt gebruik van vergun-
op ieder accesspoint aanwezig. Tel daar bij op dat bij
band, voor een theoretische 200 Mbit/s per
ningsvrije frequentieruimte op
802.11ac in beginsel vier 20MHz-kanalen combineert tot
datastroom. Dit wordt door clients echter
twee frequentiebanden: 2,4 en 5
één kanaal van 80 MHz breed en er is minder ruimte dan
vrijwel niet ondersteund. 802.11ac is een door-
GHz. Deze frequenties worden
je op basis van de grafiek zou verwachten.
ontwikkeling op de 5GHz-band en voegt tot
WIFI & NETWERK EXPERTGIDS
DE STANDAARD
Ontwikkeling wifi
1971 ALOHAnet UHF Wireless Packet network - 0,0096 Mbit/s
vier kanalen samen tot één kanaal van 80 MHz. In combinatie
1991 WaveLAN (voorloper
met onder andere een betere modulatie (256-QAM) kan er per da-
802.11) – 2 Mbit/s
tastroom maximaal 433,3 Mbit/s
1997 802.11-1997 - 2 Mbit/s 1999 802.11b - 11 Mbit/s 1999 802.11a - 54 Mbit/s 2003 802.11g - 54 Mbit/s 2006 Draft-n – 300 Mbit/s 2009 802.11n – 450 Mbit/s 2012 802.11ad - 7 Gbit/s 2013 802.11ac – 1300 Mbit/s 2014 802.11ac wave 2 – 2165
worden gehaald. Tegenwoordig wordt door chipsetfabrikanten onder de naam Nitro-QAM ook 1024-QAM ondersteund voor een nog hogere theoretische snelheid op 802.11ac (en soms zelfs 802.11n op de 2,4GHz-band), maar daar heb je door gebrek aan ondersteuning in clients weinig aan. Mimo is in de vorm van mu-mimo (multi-user multiple-input multiple-output) verbeterd waardoor een wifi-accesspoint kan communiceren met een groep van meerdere clients tegelijkertijd door de datastromen te verdelen. Wel moeten de clients mu-mimo ondersteunen. In de
Mbit/s
praktijk kun je de theoretische
2018
snelheden van wifi in beginsel
heel goed mogelijk. Dit komt doordat dat wifi half-duplex is (er wordt alleen gezonden of ontvangen), er veel overhead is en het signaal gevoelig is voor storingen.
BEVEILIGING Wifi vliegt letterlijk door de lucht, vandaar dat de standaard al sinds het begin beveiliging kent. Wired Equivalent Privacy (wep) vormde de eerste beveiliging en is gebaseerd op 64- of 128bit-rc4-versleuteling met een vaste sleutel. De implementatie van een vaste sleutel zorgde ervoor dat wep eenvoudig bleek te kraken en daarom kwam de Wi-Fi Alliance in 2003 met wpa (Wi-Fi Protected Access) als stoplap. Wpa gebruikt het Temporal Key Integrity Protocol (TKIP) en gebruikt net als wep rc4-versleuteling, maar dan met dynamische sleutels. Omdat de versleuteling hetzelfde was, konden bestaande clients met een firmware-update geschikt gemaakt worden. Uiteindelijk is wpa2 dat gebruikmaakt van ccmp (Counter Mode CBC-MAC Protocol) op basis van betere 128bit-aes-versleuteling de
802.11ax 4,8 Gbit/s
door de helft delen en is nog lager
echte opvolger. Thuis gebruiken we wpa2-personal, dat werkt met een vast wachtwoord in de router. Dat wachtwoord wordt bij het aanmelden gebruikt om de echte wisselende encryptiesleutel van het netwerk te achterhalen. Het wpa2-wachtwoord moet een
De 2,4GHz-band heeft een beperkte bandbreedte
veilig, willekeurig wachtwoord zijn omdat de
waardoor de kanalen veel overlap hebben.
authenticatie de enige bekende zwakte van wpa2 is. Aangenomen wordt dat een wille-
1
2
3
4
5
6
7
8
9
10 11 12 13
keurig wachtwoord van 16 tekens momenteel niet te kraken is. Wel moet wps worden uitgeschakeld.
DE TOEKOMST Met 802.11ad is de 60GHz-band toegevoegd, maar dit is meer een aanvulling op wifi en bedoeld voor toepassingen op zeer korte afstanden. De echte opvolger is 802.11ax en
36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140
ondersteunt naast de 5GHz-band ook de 2,4GHz-band. In combinatie met meer datastromen en een nog betere 1024QAM-modulatie kan er volgens Qualcomm bij hun eerste chipset een maximale theoretische snelheid
A
B
C
van 4,8 Gbit/s worden gehaald. Clients ondersteunen uiteraard minder datastromen, zo zouden de eerste clients maximaal 1,8 Gbit/s halen. 802.11ax moet het draadloze netwerk
De 5GHz-band bevat veel meer
dan ook vooral beter laten werken met meer
bandbreedte, maar is wel verdeeld in
clients tegelijkertijd. Hoewel 802.11ax nog niet
drie verschillende blokken met ieder hun
definitief is vastgesteld, worden de eerste
eigen regels.
producten in 2018 op de markt verwacht.
WIFI & NETWERK EXPERTGIDS
103
MASTERCLASS PAGEKITE
Aan de slag met Pagekite KOEN VERVLOESEM
BENADER AL JE THUISAPPARATEN OP AFSTAND
ALS JE THUIS EEN SERVER WILT OPZETTEN OF VAN OVERAL DE BESTANDEN OP JE NAS WILT BENADEREN ZOALS JE GEWEND BENT VAN CLOUDDIENSTEN, DAN MOET JE MET DE ROUTERINSTELLINGEN, PORTFORWARDING EN DYNAMISCHE DNS AAN DE SLAG. VIND JE DAT TE OMSLACHTIG? GELUKKIG IS ER EEN ALTERNATIEF, WAARMEE JE EENVOUDIG JE THUISSERVERS ONLINE BESCHIKBAAR MAAKT: PAGEKITE.
Als je in je thuisnetwerk een server opzet, is die standaard alleen binnen je eigen netwerk bereikbaar. Wil je ook van buitenaf bij je webserver, nas of beveiligingscamera kunnen, dan moet je daar nog het een en ander voor configureren. Zo dien je een statisch ip-adres aan je server toe te kennen. Dan moet je in je internetmodem/router portforwarding instellen, zodat die alle aanvragen op een specifieke poort op je publieke ip-adres naar het statische ip-adres van je server omleidt. Vaak dien je ook nog in de firewallregels van je router die poort open te zetten. Maar dan is het nog niet gedaan: aangezien veel modems van internetabonnementen thuis geen vast ip-adres krijgen, heb je ook een dynamische dns (ddns) nodig, zodat je eigen domeinnaam altijd naar je publieke ip-
Dankzij Pagekite hoef je je geen zorgen te maken om portforwarding, firewallregels en dynamische dns.
adres verwijst, ook als dat verandert. Kortom, even een server thuis buiten je thuisnetwerk beschikbaar stellen, is makkelijker gezegd dan gedaan. Het is allemaal wel mogelijk, maar je
van je router (wat was dat ook alweer?) en het
betalen voor persoonlijk gebruik,
verliest er heel wat tijd mee en maakt gemak-
configureren van een ddns-dienst.
zolang ze één keer per maand een
kelijk fouten.
Het enige wat je daarvoor hoeft te doen, is op
formulier invullen om te zeggen
je server het Python-script pagekite draaien.
waarvoor ze Pagekite inzetten.
IN ENKELE SECONDEN BEREIKBAAR
106
Dat werkt op Windows, macOS, Linux en
Als je echt niet van de Pageki-
BSD. Je dient je ook voor de Pagekite-dienst
te-dienst wilt afhangen, dan is
Pagekite (https://pagekite.net) biedt een een-
in te schrijven. Je krijgt sowieso een maand
het ook mogelijk om zelf een
voudige oplossing hiervoor. In enkele secon-
de tijd om de dienst gratis te proberen. Daar-
Pagekite-front-end te draaien op
den maak je een thuisserver overal beschik-
na betaal je hoeveel je wilt. Het project stelt
een server met publiek ip-adres
baar, en dat zonder je te moeten bezighouden
3 dollar per maand voor en heeft er blijkbaar
(zie het kader ‘Draai je eigen
met poorten, firewallregels, het wachtwoord
ook geen problemen mee dat individuen niets
Pagekite-front-end’).
WIFI & NETWERK EXPERTGIDS
MASTERCLASS PAGEKITE
Draai je eigen Pagekite-front-end Als je liever niet van de Pagekite-dienst afhangt om bereikbaar te zijn, draai dan je eigen Pagekite-front-end. Op de wiki van Pagekite vind je uitgelegd hoe je dat configureert (www.tiny.cc/pgkt). Je hoeft daar geen ander programma voor te installeren: het Python-script van Pagekite voert zowel de functie van back-end als die van front-end uit. Het enige wat verschilt, is de configuratie. Als je de verbinding tussen je back-end en front-end wilt versleutelen, dien je ook ssl-certificaten te genereren. Let op: als je dezelfde ervaring als met de Pagekite-dienst wilt, dien je nog allerlei extra zaken te regelen. Zo heeft de dienst meerdere front-endservers, en dat in meerdere locaties, zodat de dienst bij uitval van een front-end nog blijft werken. Bovendien worden alle front-end-servers continu gemonitord. Er komt dus heel wat bij kijken als je je eigen Pagekite-front-ends draait!
Je Raspberry Pi als publieke webserver? Met Pagekite is het zo gepiept.
Met een eigen Pagekite-front-end hang je niet meer van de Pagekite-dienst af.
HOE WERKT PAGEKITE?
is opgezet. Je server ontvangt dan een aan-
In principe kun je het Python-bestand
vraag (bijvoorbeeld voor een webserver) en
pagekite.py gewoon downloaden (http://
De ontwikkelaars van Pagekite
stuurt het antwoord terug via de tunnel. Zo is
pagekite.net/downloads), maar het is handi-
noemen hun systeem een dyna-
je server indirect op een publiek domein be-
ger om het als een pakket te installeren, zodat
mische, getunnelde reverse proxy.
reikbaar, terwijl het niet rechtstreeks publiek
je updates krijgt. Debian (en dus ook Raspbian
Die bestaat uit een back-end en
bereikbaar is.
voor de Raspberry Pi) heeft een pakket van Pagekite in zijn standaardrepository, maar dat
een front-end. De back-end draai je op je server. Dit Python-script
INSTALLATIE
is vrij oud. Gelukkig hebben de makers van
configureert dns (zie het kader
Pagekite draait zoals gezegd op Win-
Pagekite hun eigen repository opgezet.
‘Dns?’) voor je server en opent
dows, macOS, Linux en BSD. We tonen hier
Voeg daarom eerst de repository van Pagekite
een tunnel naar een wereldwij-
hoe je het op Linux installeert, bijvoorbeeld
toe in Raspbian:
de pool van front-end-relays
op een Raspberry Pi. Op de andere bestu-
echo deb http://pagekite.net/pk/deb/
(doorgevers). Die relays van het
ringssystemen verloopt de installatie verge-
pagekite main | sudo tee -a /etc/apt/
Pagekite-project zijn servers met
lijkbaar, maar onder Windows moet je eerst
een publiek ip-adres en zijn voor
nog Python 2.7 installeren (www.python.org/
Voeg dan de sleutel toe waarmee de ontwik-
iedereen op internet bereikbaar.
downloads). De back-end is immers een Py-
kelaars van Pagekite hun pakketten onderte-
De front-end-software op die
thon-script, en op Windows is in tegenstelling
kenen:
relays draait leidt aanvragen om
tot Linux en macOS niet standaard Python
sudo apt-key adv --recv-keys
via de tunnel die door je back-end
geïnstalleerd.
--keyserver keys.gnupg.net
sources.list
AED248B1C7B2CAC3 Update de pakketbronnen en installeer tot
HET PYTHON-SCRIPT VAN PAGEKITE VOERT ZOWEL DE FUNCTIE VAN BACK-END ALS DIE VAN FRONT-END UIT
slot Pagekite: sudo apt-get update sudo apt-get install pagekite
ACCOUNT AANMAKEN De eerste keer moet je nog een account aanmaken bij de Pagekite-dienst. Het programma helpt je daarbij. Pagekite is een opdrachtregelprogramma, dus voor de Raspberry Pi start je een Putty-sessie op en voer je het daarin uit: pagekite –signup.
WIFI & NETWERK EXPERTGIDS
107
DOSSIER MASTERCLASS EEN RASPBERRY PI ALS VPN-SERVER
Een Raspberry Pi als vpn-server FILIP VERVLOESEM
ALTIJD TOEGANG TOT JE THUISNETWERK MET EEN VPN SURF JE OP HET INTERNET ZONDER DAT JE PROVIDER MEEKIJKT OF OMZEIL JE REGIOBLOKKADES VAN BEPAALDE WEBSITES. MAAR EEN VPN IS OOK HANDIG OM OVERAL VEILIG TOEGANG TE KRIJGEN TOT JOUW THUISNETWERK. IN DEZE WORKSHOP TONEN WE JE HOE JE JOUW EIGEN VPNSERVER OPZET MET EEN RASPBERRY PI.
Op zich heb je geen vpn nodig om toegang te krijgen tot je thuisnetwerk. Met enkele portforwarding-regels in je router kom je ook wel binnen. Maar portforwarding is niet altijd de beste oplossing. Veel services zijn standaard geconfigureerd voor maximaal gebruiksgemak binnen je thuisnetwerk. Zet je die services open voor het hele internet,
VOORDELEN VAN OPENVPN ZIJN ONDER ANDERE: DE PRIMA PRESTATIE EN DE UITGEBREIDE CLIENT-ONDERSTEUNING
dan zijn ze zelden afdoende beveiligd. Je moet je dus voor elke afzonderlijke service verdiepen
netwerk, namelijk de vpn-server.
breide client-ondersteuning. Je moet weliswaar OpenVPN
in de verschillende beveiligings-
Als je die afdoende beveiligt, hoef
op je client installeren om te verbinden met je vpn-server,
mogelijkheden. Dat is best een
je je over de rest van je netwerk
maar die client bestaat voor alle gangbare platformen:
tijdrovende klus. De kans bestaat
minder zorgen te maken.
Windows, Linux, macOS, Android en iOS. OpenVPN is ook erg flexibel qua configuratiemogelijkheden. Zo is het
dat je dan alsnog zaken over het hoofd ziet. Een vpn is wat dat
OPENVPN
bijvoorbeeld mogelijk om OpenVPN in te stellen op poort
betreft veel eenvoudiger. Er is
Er bestaat heel wat
443 om firewallrestricties te omzeilen. Bovendien bevat
één centraal toegangspunt tot je
vpn-software voor Linux, meestal
OpenVPN zelfs een functie om die poort te delen met een
compatibel met bestaande
webserver, zodat je zowel OpenVPN als Apache op dezelf-
protocollen van Microsoft of
de poort kunt draaien.
Cisco. Compatibiliteit met andere
Code downloaden Dit artikel bevat veel code. Om die niet te hoeven overtikken en als oplossing voor soms moeilijk leesbare code uit afbeeldingen, staat alle code in een zip-bestand voor je klaar op: www.pcmweb.nl/download
46
WIFI & NETWERK EXPERTGIDS
vpn-software is minder belang-
CERTIFICATEN
rijk voor jouw eigen vpn. Je be-
Voor OpenVPN moet je met certificaten aan de
heert immers zowel de server als
slag. Om te beginnen heb je een Certificate Authority of ca
de client(s), dus je bent volledig
nodig om jouw certificaten te beheren. Een ca bestaat in
vrij in je softwarekeuze. In deze
essentie uit een private key met bijbehorend certificaat en
workshop gaan we aan de slag
een lijst van geldige certificaten. Met de private key maak
met OpenVPN. Dat is gebaseerd
je nieuwe certificaten voor alle machines in je vpn. Om te
op de bekende OpenSSL-libraries
beginnen heeft de vpn-server zelf een certificaat nodig:
en TLS-encryptie. Voordelen van
dat is niet hetzelfde certificaat als het ca-certificaat!
OpenVPN zijn onder andere de
Vervolgens maak je voor elke client een extra certificaat
prima performance en de uitge-
aan. Elke machine heeft enkel zijn eigen private key en
DOSSIER MASTERCLASS EEN RASPBERRY PI ALS VPN-SERVER
1. Configureer je eigen certificate authority om vpn-certificaten aan te maken.
certificaat nodig, plus het ca-certificaat. In de praktijk doet de vpn-server meestal ook dienst als ca en dus bevat
2. De keys-directory bevat alle bestanden van onze certificate authority.
die machine alle certificaten. Wil je jouw setup extra beveiligen? Gebruik dan een andere machine als ca en plaats enkel de hoogstnodige bestanden op de vpn-server (eigen
De tweede stap duurt makkelijk
key en certificaat, plus ca-certificaat).
tien tot vijftien minuten op oudere Pi’s. De resulterende bestan-
RASPBERRY PI
den vind je terug in de submap
OpenVPN vereist geen erg krachtige hardware,
keys (zie afbeelding 2).
dus kozen we voor een Raspberry Pi. Download Raspbian Jessie Lite van https://www.raspberrypi.org/downloads/
SERVERCONFIGURATIE
raspbian, pak de download uit en schrijf die naar een sd-
Met Raspbians Open-
kaart met Win32DiskImager of dd. Koppel de boot-parti-
VPN-pakket kun je meerdere
tie van de sd-kaart even aan een Linux-systeem en plaats
vpn’s configureren op dezelfde
er een leeg bestand genaamd ssh. Boot je Pi vanaf de
machine. Je definieert een nieuw
sd-kaart en controleer in je router welk ip-adres de Pi ge-
vpn door een configuratiebestand
kregen heeft. Log nu in via ssh met de gebruiker pi en het
aan te maken in /etc/openvpn,
wachtwoord raspberry. Het handmatig opzetten van een
bijvoorbeeld home.conf. In
ca-infrastructuur is behoorlijk complex. Gelukkig levert
afbeelding 3 zie je een minimaal
OpenVPN met easy-rsa een reeks scripts mee om die taak
configuratiebestand voor een
te vereenvoudigen. Installeer om te beginnen openvpn:
OpenVPN-server: we doorlopen
apt install openvpn
de belangrijkste parameters. Met
Gebruik daarna het volgende commando om easy-rsa te
de opties proto en port kies je
integreren met OpenVPN:
respectievelijk het protocol en
m ake-cadir /etc/openvpn/ca
de poort voor OpenVPN. Wij
Open nu het bestand /etc/openvpn/ca/vars en vul daarin
houden de standaardinstellingen
jouw persoonlijke gegevens in (zie afbeelding 1). De meeste
aan, maar vaak kiest men voor
opties spreken voor zich. Bij KEY_ORG vul je de naam van
tcp en port 443 om firewall
jouw organisatie in of gewoon je eigen naam. KEY_OU is
restricties te omzeilen. Bij local
de afdeling binnen jouw organisatie (Organisational Unit).
vul je het lan-ip-adres van je Pi
Is dat niet van toepassing voor jou, vul dan bijvoorbeeld
in en bij server het gewenste
OpenVPN in. Vervolgens voer je onderstaande reeks
netwerkadres voor jouw vpn.
commando’s uit om de nieuwe configuratie in te lezen, de
Zorg dat dat niet overlapt met
dh-parameters te berekenen (benodigd voor het uitwisse-
het netwerkadres van de lokale
len van encryptiesleutels tussen client en server) en zowel
netwerken die jij gebruikt! De
een ca-certificaat als een certificaat voor de vpn-server
parameters op regel 7 t/m 10 uit
aan te maken.
afbeelding 3 verwijzen naar de
source vars
benodigde bestanden van onze
./clean-all
certificate authority en met
./build-dh
de laatste vier (regels 12 t/m 15)
./pkitool -initca
schroeven we de beveiliging nog
./pkitool -server raspberrypi
wat op. Werk je nog met Open-
Vpn op je router Vaak bieden routers ondersteuning voor een OpenVPN-server. Dat is best handig, want zo hoef je geen extra apparaat te installeren en te beheren om toegang tot je thuisnetwerk te krijgen. Ondersteunt jouw router geen OpenVPN, controleer dan even of je DD-WRT kunt installeren. Op oudere of minder krachtige routers zullen de vpn-prestaties wel beduidend slechter zijn dan via je Raspberry Pi. Een tweede nadeel is dat de interface je meestal erg weinig instellingen laat aanpassen. Daarom raden we je aan om tóch een afzonderlijke Pi te gebruiken als OpenVPN- server. Dat biedt meer flexibiliteit. Voor de aanschafprijs of het stroomverbruik hoef je het echt niet te laten!
WIFI & NETWERK EXPERTGIDS
47