Vpn-server op je nas regel je zo

Door: Gertjan Groen | 20 maart 2020 09:24

OPNsense VPN
How To

Het is erg handig om buiten je huis overal met bijvoorbeeld je smartphone in je thuisnetwerk te kunnen komen. Bijvoorbeeld om IoT-apparaten te bedienen, beelden van de ip-camera te bekijken of regioblokkades te omzeilen. Door een vpn-server op te zetten, zit je in één handeling veilig op je thuisnetwerk. Een nas is doorgaans krachtig genoeg voor gebruik als vpn-server, zeker als je niet de hoogste snelheid nodig hebt. In dit artikel laten we zien hoe je het instelt en gebruikt in combinatie met een smartphone.

Heb je thuis allerlei mooie toepassingen draaien, dan zul je die vroeg of laat ook onderweg vanaf smartphone, tablet of laptop willen benaderen. Denk aan bijvoorbeeld thuisautomatisering met Home Assistant of Domoticz, mediastreaming met Plex of Emby, het gebruik van downloadservers of gewoon toegang tot persoonlijke bestanden. Je kunt dat eventueel per toepassing regelen, veelal door enkele poorten door te sturen, maar zulke achterdeurtjes zijn niet zonder risico’s. Veel toepassingen bevatten bijvoorbeeld kwetsbaarheden of gebruiken geen versleutelde verbindingen.

Met één goed beveiligde vpn-verbinding los je zulke problemen op. De vpn-verbinding geeft feitelijk een extra laag van bescherming bovenop de beveiliging van de toepassingen zelf. Ook kun je meteen alle toepassingen gebruiken zoals je dat thuis gewend bent en zonder de configuratie ervan aan te passen. Dat geldt ook voor toepassingen die je normaal beter niet via internet kunt gebruiken, zoals netwerkbestandstoegang (zie kader ‘Toegang tot bestanden via internet’). We laten zien hoe je dit bereikt met een vpn-server op een nas van Synology of QNAP.

Toegang tot bestanden via internet

Je nas is wellicht hét centrale opslagpunt in je netwerk. Voor toegang tot bestanden vanaf een Windows-pc wordt het smb-protocol gebruikt. Vooral de eerste versie (smb 1.0) is erg onveilig. Een kwetsbaarheid stond bijvoorbeeld aan de basis van een grote aanval van WannaCry-ransomware. In Windows 10 is het tegenwoordig standaard uitgeschakeld en veel providers blokkeren de voor smb-verkeer gebruikte tcp-poort 445. In de latere versies 2.0 en 3.0 is de veiligheid verder verbeterd, onder meer door toevoeging van versleuteling, waardoor je het inmiddels ook veilig via een internetverbinding zou moeten kunnen gebruiken.

Microsoft doet dat zelf ook voor gedeelde mappen van de Azure Files-dienst. Toch is het ongebruikelijk en we raden het ook af. Dat is niet alleen een vertrouwensprobleem. In veel netwerken draaien oudere, kwetsbare apparaten. Zelfs op een recente Synology-nas blijkt smb 3.0 standaard uitgeschakeld. Ook de poortblokkering bij providers als Ziggo kan je dwars zitten. Verder vallen de prestaties via internetverbindingen vaak tegen. Bovenal blijf je vatbaar voor kwetsbaarheden, terwijl het toch om je meest kritische data gaat. Voor toegang tot je bestanden in het netwerk raden we een vpn-verbinding aan of alternatieven zoals cloudopslag.

Bij een Synology-nas is smb 3.0 vaak nog standaard uitgeschakeld.

01 Waarom een nas?

Je hebt wellicht al enkele apparaten in je netwerk die je als vpn-server kunt gebruiken, zoals een router. Je mag er wat prestaties betreft geen wonderen van verwachten en OpenVPN wordt niet altijd ondersteund. Een eigen server is een mooie optie, maar dat ligt niet binnen ieders bereik. Beschik je over een nas, dan is dat ook een optie, met extra verwerkingskracht en veel gebruiksgemak. Zowel Synology als QNAP ondersteunt standaard het instellen als vpn-server met relatief eenvoudige configuratie. Heb je een model met processor die de AES-NI-instructieset ondersteunt, dan profiteer je van flink hogere prestaties.

Met het algoritme voor de versleuteling en de sleutelgrootte kun je ook de prestaties beïnvloeden. In deze basiscursus kiezen we een veilig compromis, genoeg voor een handjevol verbindingen. Echte topsnelheden blijven misschien buiten bereik, maar voor de meeste toepassingen is dat geen bezwaar en er zijn ook altijd andere beperkende factoren, zoals je internetverbinding.

02 Installeer de toepassing

De vpn-server van Synology ondersteunt zowel PPTP, OpenVPN als L2TP/IPSec. Alleen de laatste twee zijn interessant. Eventueel kun je beide instellen, maar in deze basiscursus beperken we ons tot OpenVPN. Het biedt goede prestaties én een goede veiligheid, met bovendien veel vrijheid bij de configuratie. Om het te installeren ga je naar Package Center. Zoek VPN Server op en installeer de toepassing. Bij QNAP open je App Center en zoek je QVPN Service op in het onderdeel Utilities. Deze toepassing ondersteunt naast bovengenoemde protocollen ook het door QNAP zelf ontwikkelde QBelt-protocol. De toepassing van QNAP kun je overigens ook als vpn-client gebruiken door profielen toe te voegen, voor als de nas een externe vpn-server moet gebruiken. Bij Synology kan dat ook, je vindt de optie onder Netwerk in het Configuratiescherm.

02 De vpn-server kun je als aparte toepassing installeren bij Synology en QNAP.

03 Configuratie bij Synology

Open VPN Server en tik onder het kopje VPN Server instellen op OpenVPN. Zet een vinkje bij OpenVPN-server inschakelen. Pas de configuratie naar voorkeur aan, zoals het protocol (udp of tcp), de poort en de versleuteling (zie kader ‘Protocol, poort en versleuteling voor OpenVPN’). Er wordt een veilige optie voorgesteld: AES-CBC met een 256bit-sleutel en SHA512 voor de verificatie. Let wel op, want er staan ook onveilige keuzes in de lijst. Met de optie Clients toegang geven tot de LAN-server zorg je ervoor dat je, vanaf je vpn-verbinding, ook andere apparaten op hetzelfde netwerk als de nas kunt benaderen. Als je dit nalaat, kun je alleen de nas en de toepassingen op die nas gebruiken, wat soms genoeg kan zijn.

De optie Compressie op de VPN-koppeling inschakelen zetten we bij voorkeur uit. De meerwaarde is beperkt en het is niet zonder risico’s vanwege enkele kwetsbaarheden. Klik ten slotte op Toepassen gevolgd door Configuratie exporteren om het zip-pakketje op te halen waarmee je straks de verbinding opzet. Onder Overzicht zie je dat OpenVPN is ingeschakeld. Gebruik je de firewall op je nas? Ga dan naar Configuratiescherm / Beveiliging / Firewall en voeg een regel toe die verkeer voor de vpn-server toestaat.

03 De configuratie van een OpenVPN-server op een nas van Synology.

04 Configuratie bij QNAP

Op een QNAP-nas open je de toepassing QVPN Service en kies je onder VPN-server de optie OpenVPN. Zet een vinkje bij OpenVPN server inschakelen en pas de configuratie naar voorkeur aan. Net als bij Synology kun je het protocol en de poort vrij instellen. Voor de codering wordt standaard AES gebruikt met een sleutel van 128 bit (standaard) of 256 bit. De optie Gecomprimeerde VPN-verbinding inschakelen zetten we uit. Klik vervolgens op Toepassen. Hierna kun je het OpenVPN-profiel downloaden, dat ook het certificaat bevat. Dit gaan we onder Android gebruiken. Onder Overzicht kun je zien of de vpn-server actief is met ook andere details zoals verbonden gebruikers.

04 De configuratie van een vpn-server met OpenVPN bij QNAP.

Protocol, poort en versleuteling voor OpenVPN

OpenVPN is flexibel te configureren. Om te beginnen kan als protocol zowel udp als tcp worden gebruikt, waarbij udp de voorkeur krijgt omdat het efficiënter en sneller werkt. Het ‘regelende’ karakter van het tcp-protocol werkt namelijk eerder tegen dan mee bij verkeer over een vpn-tunnel. Verder kun je praktisch elke poort kiezen. Voor udp is dat standaard poort 1194. Helaas zetten bedrijven deze en andere poorten vaak dicht voor uitgaand verkeer. Wel is vrijwel altijd ‘gewoon’ websiteverkeer via de tcp-poorten 80 (http) en 443 (https) mogelijk. Hier kun je slim gebruik van maken.

Als je voor de OpenVPN-verbinding het tcp-protocol kiest met poort 443 kun je via vrijwel elke firewall en proxyserver verbinding maken, evenwel met verlies aan snelheid. Heb je de luxe, dan zou je twee vpn-servers kunnen opzetten, een met udp/1194 en een tweede met tcp/443. Wat versleuteling betreft is AES-CBC het meest gangbaar met AES-GCM als opkomend alternatief. Een 256bit-sleutel is de norm, maar óók een 128 of 192 bit sleutel is zeer veilig. Het is tot in de verre toekomst vrijwel onmogelijk om een (goed gekozen) sleutel van 128 bit te kraken. Een nóg langere sleutel voegt wat bescherming betreft dan ook weinig toe, maar kost wel meer rekenkracht.

05 Gebruikersaccounts geschikt maken

Om in te loggen op de vpn-server is ook een gebruikersaccount nodig. Dat is een gewoon gebruikersaccount op de nas met de juiste rechten om de vpn-server te gebruiken. Bij Synology hebben standaard alle gebruikers de mogelijkheid om de vpn-server te gebruiken. Pas dit naar voorkeur aan door in VPN Server naar Rechten te gaan. Bij QNAP ga je in QVPN Service naar Privilege-instellingen. Hier voeg je de gewenste vpn-gebruikers handmatig toe vanuit de lokale gebruikers op de nas.

05 Voor toegang tot de vpn-server is een account op de nas nodig.

06 OpenVPN-profiel nabewerken

Je moet het OpenVPN-profiel even doorlopen in een teksteditor en waar nodig aanpassingen maken. Bij Synology pak je daarvoor het zip-bestand (openvpn.zip) uit in een map waarna je het bestand VPNConfig.ovpn kunt openen in je teksteditor. Hierin vind je de regel remote YOUR_SERVER_IP 1194 en iets verderop proto udp. Dit geeft aan welk poortnummer (1194) en protocol (udp) moeten worden gebruikt bij het opzetten van de verbinding. Op de plek van YOUR_SERVER_IP vul je het ip-adres van je internetverbinding thuis in, bij QNAP is dat al standaard ingevuld.

Krijg je van jouw internetprovider voor de internetverbinding thuis geen vast maar een dynamisch en dus wisselend ip-adres? Dan is een dynamic-dns-dienst (ddns) een goed alternatief. Je kunt het gewoon op je nas instellen (zie kader ‘Dynamic dns-dienst op je nas’) en het adres vervolgens invullen op de plek van het ip-adres in het profiel (dat gebeurt niet automatisch). Bij Synology is dynamic dns extra handig, omdat je het aangemaakte servercertificaat dan kunt gebruiken voor het opzetten van de verbinding, om een certificaatprobleem op te lossen.

06 Bewerk handmatig het OpenVPN-profiel met een teksteditor.

Dynamic dns-dienst op je nas

Met een dynamic-dns-dienst (ddns) wordt je ip-adres bijgehouden en doorgegeven aan een externe server, die zorgt dat de gekozen hostnaam altijd aan het juiste ip-adres is gekoppeld. Je kunt dit gewoon op je nas draaien. Bij Synology vind je het onder Configuratiescherm / Externe toegang. Het eenvoudigst is om Synology als (gratis) serviceprovider te kiezen met een beschikbare hostnaam en domeinnaam (wij kiezen groensyn154.synology.me), zolang de combinatie maar beschikbaar is. Eventueel kun je ook een aangepaste ddns-provider instellen. Bij QNAP ga je naar Configuratiescherm / Netwerk en Virtual Switch. Onder het kopje Toegangsservices vind je de optie DDNS. Je kunt een aangepaste ddns-provider instellen, maar ook de myQNAPcloud-voorziening van QNAP zelf configureren en gebruiken. Een wizard begeleid je door de instellingen. Aan het einde kun je kiezen welke diensten ingesteld moeten worden. Om veiligheidsredenen zou je dat kunnen beperken door alleen DDNS te kiezen.

Met dynamic dns is je vpn-server altijd via een vaste hostnaam beschikbaar.

07 Certificaten toevoegen

Bij QNAP gebeurt de authenticatie bij het inloggen op de vpn-server alleen op basis van gebruikersnaam en wachtwoord. Bij Synology heb je ook twee client-certificaten nodig om verbindingsfouten te voorkomen, wat natuurlijk ook een stuk veiliger is. Je kunt ze handmatig in de app toevoegen, maar ook (zoals we hier doen) in het OpenVPN-profiel opnemen. We gebruiken het ddns-certificaat (in ons voorbeeld behorende bij groensyn154.synology.me) voor de twee certificaten. Ga hiervoor naar Configuratiescherm / Beveiliging. Tik op Configureren en zorg dat dit certificaat is geselecteerd achter VPN Server. Sluit het venster met Annuleren. Klik met rechts op het certificaat en kies Certificaat exporteren.

Pak het zip-bestand uit. Open het OpenVPN-profiel in een teksteditor. Onderaan zie je een blokje <ca></ca> met de inhoud van ca.crt. Daaronder voeg je een blok <cert></cert> toe waarin je de inhoud van cert.pem zet. Voeg vervolgens nog een blok <key></key> toe met daarin de inhoud van privkey.pem. Met dit profiel kun je in combinatie met het gebruikersaccount op je nas een verbinding opzetten.

07 Voor Synology moet je twee client-certificaten toevoegen aan het OpenVPN-profiel.

08 Overige configuratiemogelijkheden

Je kunt meer opties naar voorkeur instellen. De eerste hangt af van je gebruiksdoel. Wil je de vpn-verbinding alleen gebruiken om op afstand toegang tot je thuisnetwerk te hebben? Bij Synology moet je dan zorgen dat er vóór de regel redirect-gateway def1 in je profiel een haakje (#) staat zodat het als commentaar wordt beschouwd. Haal je het haakje weg, dan gaat ál het verkeer door de vpn-tunnel, ook bijvoorbeeld voor gewone websites die je bezoekt. Bij QNAP is dit een serverinstelling, het heeft dus geen invloed op het profiel. Je stelt het in QVPN Service in met de optie Gebruik deze verbinding als standaard gateway voor externe apparaten. Zet je die aan, dan gaat al het verkeer vanaf de vpn-client door de vpn-tunnel. Wil je dat controleren? Bezoek dan met een browser het adres https://whatismyipaddress.com. Als hier je publieke ip-adres (van je internetverbinding) staat weet je dat het verkeer door de tunnel gaat.

09 Poorten doorsturen in de router

In deze basiscursus hebben we voor de vpn-server het udp-protocol op poort 1194 ingesteld en dat is ook het enige verkeer dat je met een portforwarding-regel hoeft door te sturen van je router naar je nas. Het is raadzaam de nas eerst zelf een vast ip-adres in je netwerk te geven. De manier waarop je zo’n regel toevoegt verschilt per router. De regel zelf is eenvoudig. Het inkomende verkeer gebruikt het udp-protocol en de poort is 1194. Als bestemming voer je het ip-adres van je nas in en de poort is ook nu 1194.

10 Toegang vanaf smartphone

Het is nog maar een kleine stap om de vpn-verbinding vanaf een smartphone te gebruiken. Zorg dat je op een extern netwerk zit (zoals het mobiele netwerk) en niet op je eigen wifi-netwerk, zodat je daadwerkelijk een verbinding van buitenaf maakt. We gebruiken zoals aangegeven de officiële app OpenVPN Connect die je via de Google Play Store of iOS App Store kunt downloaden. Een Android-smartphone kun je op de pc aansluiten waarna je het OpenVPN-profiel naar de map Download kunt kopiëren. Importeer het profiel dan met de app via Import Profile / File. Bij een iPhone kun je iTunes gebruiken, of het OpenVPN-profiel naar jezelf mailen en openen in de OpenVPN-app.

Vul de gebruikersnaam en wachtwoord in die horen bij je account op de nas. Nu kun je verbinding maken door het profiel aan te tikken. Hierna heb je toegang tot je nas en het thuisnetwerk waarop je nas is aangesloten.

10 Op de smartphone volstaat het om het OpenVPN-profiel te importeren.

Beperkingen bij gebruik van ipv6

In dit artikel gaan we ervan uit dat je voor je vpn-server een ipv4-adres gebruikt en geen ipv6. In enkele situaties is dat een probleem. Zo geven internetproviders zoals Ziggo klanten soms geen publiek ipv4-adres meer. In zo’n geval kun je alleen via ipv6 inkomende verbindingen naar je vpn-server ontvangen. En dat is weer een probleem als je vanaf een mobiel netwerk met je smartphone wilt verbinden, want ipv6 wordt nog maar spaarzaam aangeboden op mobiele verbindingen.

4 Reactie(s) op: Vpn-server op je nas regel je zo

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • 21 maart 2020 07:21 japie12
    Geweldig artikel, Ik wilde dit al langer op mijn Synology 715maar kreeg het niet goed voor elkaar en wist niet goed hoe,
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 21 maart 2020 20:50 hanshgmb
    Heldere uitleg! Ik heb nog wel een vraag:
    Is het mogelijk op de remote pc, Windows 10, een schijfletter toe te kennen / te koppelen aan een gedeelde map op de nas?
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 26 maart 2020 11:08 hanshgmb
    Schijfletter toekennen is inmiddels gelukt -> Je kunt in Windows Verkenner een schijfletter toekennen zoals je dat normaal ook doet, alleen vul je voor de mapnaam eerst het ip-adres in en daarachter de naam van de map, bijvoorbeeld \\10.8.0.1\mapnaam
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 9 mei 2020 13:32 aadm_douwe
    De installatie is voorspoedig verlopen, maar bij de installatie onder Android gaat het mis. Het profiel wordt succesvol geladen, maar daarna krijg ik bij het connecten de melding dat het profiel niet is voorzien van een "client certificate". Ik heb het profiel daarop nagelopen en er is wel een certificaat in opgenomen. Wat kan hier de oorzaak zijn?
    Android versie: 6.0.1 op een Galaxy S5 Neo
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.