OpenVPN Server op Debian Server

In een vorige blog heb ik uitgelegd welke stappen je moet uitvoeren als je een OpenVPN server wilt opzetten met de Tomato Shibby software. Heb je echter geen router die deze firmware ondersteunt, dan kun je ook gewoon een OpenVPN server opzetten op een Debian based server en vervolgens de gebruikte OpenVPN poort forwarden op je router naar de server die de OpenVPN server software draait. Dit kan dus ook een Raspberry Pi met Raspian, daar deze op Debian is gebasseerd. In deze blog leg ik uit welke stappen je moet uitvoeren om dit werkend te krijgen.

Stap 1: Installeer OpenVPN

Ik ga in deze handleiding ervan uit dat je met een user met root privileges bent ingelogd. Zorg eerst dat al je packages up te date zijn:

We gaan nu de OpenVPN server met Easy-RSA (voor de encryptie) installeren

Stap 2: Configueer OpenVPN

Als eerste moet we de voorbeeld configuratie file uitpakken in de /etc/openvpn directory:

Vervolgens gaan we de OpenVPN configuratie ‘/etc/openvpn/server.conf’ editten. Dit doen we in 4 stappen:

  1. Sterke encryptie niveau instellen
  2. Forward web verkeer naar bron
  3. Voorkom dat DNS requests buiten de VPN connectie lekken
  4. Opzetten permissies

Om het encryptie niveau te verhogen zoek je in de file ‘/etc/openvpn/server.conf’ naar de regel:

Verander dh1024.pem in dh2048.pem

Nu gaan we ervoor zorgen dat al het verkeer naar de juiste lokatie wordt omgeleid. In dezelfde file zoek nu naar:

Verwijder de ; voor de laatste regel zodat er staat:

Nu gaan we OpenVPN vertellen om gebruik te maken van de OpenDNS server om hostnames in IP addressen om te zetten. Zoek in de file naar:

Verwijder de ; voor de laatste 2 regels:

Tenslotte gaan we de permissies goed zetten. Zoek naar:

Verwijder de ; voor de laatste 2 regels:

Stap 3: Enable Packet Forwarding

Hier vertellen we dat verkeer van de clients naar het internet wordt omgeleid, anders stopt het verkeer bij de OpenVPN server. Voer hiervoor het volgende commando uit:

Om deze instelling definitief te maken moet je de file ‘/etc/sysctl.conf’ aanpassen. Zoek hier naar de volgende regel:

Haal nu # weg bij de laatste regel:

Stap 4: Configureer en bouw ‘Certificate Authority’

OpenVPN gebruikt certficaten om het verkeer te encrypten. OpenVPN ondersteunt bi-directionele authenticatie gebasseerd op certificaten. Dat betekent dat de client het certificaat van de server moet authentiseren en de server moet het certificate van de client authentiseren voordat er wederzijds vertrouwen is. We maken hierbij gebruik van Easy RSA’s script.

Copieer eerst de Easy-RSA generatie scripts:

Creëer een directory waarin de keys worden opgeslagen:

Nu gaan we een aantal parameters instellen voor ons certificaat. Edit de file ‘/etc/openvpn/easy-rsa/vars’ en verander de waardes van de volgende regels naar jouw behoefte:

Verander verder in deze file de volgende regels:

in:

De volgende stap is het genereren van de Dilfie-Helmans parameters met behulp van de OpenSSL ‘dhparams’ tool. Dit kan een aantal minuten duren:

Het certificaat is nu gegenereerd en hierna gaan we een key genereren. Ga hiervoor naar de ‘/etc/openvpn/easy-rsa’ directory:

Nu gaan we CA instellen. Eerst moeten we de Public Key Infrastructure (PKI) initialiseren met het commando:

Je krijgt nu de volgende waarschuwing te zien, maar dat is niet erg:

Hierna gaan we voor de zekerheid alle andere keys leegmaken met het commando:

Tenslotte gaan we CA bouwen met een OpenSSL commando. Deze zal vragen om ‘Distinguished Name’ waardes, maar je kunt hierbij de default waarde telkens overnemen.

Stap 5: Genereren certificaat en key voor Server

In deze stap gaan OpenVPN instellen en opstarten. Bouw eerst de key met het commando:

Er zal weer om ‘Distinguished Name’ waardes gevraagd worden en je kunt weer de defaults overnemen. Deze keer zijn er twee extra prompt en deze kun je gewoon (leeg) overnemen:

Aan het einde moet je nog twee maal ‘y’ opgeven:

Als alles goed is gegaan dan zie je de volgende melding:

Stap 6: Verplaatsen van Certificaten en Keys van de Server

Je moet de gegenereerde certificaat en key plaatsen in de directory van OpenVPN, daar deze zoekt in de ‘/etc/openvpn’ directory voor de CA, certificaat en key van de server:

Alle stappen voor de OpenVPN server zijn nu klaar en je kunt deze nu opstarten en de status checken:

Stap 7: Genereren certificaten en keys voor de clients

Je kunt het beste voor elke client die gebruik wilt maken van je OpenVPN server een uniek certificaat en key genereren daar OpenVPN default geen meerdere connecties van hetzelfde certificaat/key paar toestaat. Dit betekent dat je onderstaande stappen voor elke client moeten uitvoeren. Ik gebruik hieronder als voorbeeld een client met de naam ‘henri’.

We gaan eerst de key voor de client bouwen:

Er zal weer om ‘Distinguished Name’ waardes gevraagd worden en je kunt weer de defaults overnemen. Ook de twee extra prompt kun je gewoon (leeg) overnemen:

Aan het einde moet je nog twee maal ‘y’ opgeven:

Als alles goed is gegaan dan zie je de volgende melding:

Voer nu het volgende commando uit:

We gaan nu de file ‘/etc/openvpn/easy-rsa/keys/henri.ovpn’ aanpassen. Zoek naar:

Verander hierbij ‘your_server_ip’ naar de host-name waarop je OpenVPN server nu draait (en die bekend is in je DynDNS setting).

Zoek nu naar de volgende tekst ‘user nobody’ en ‘group nogroup’ en haal ; weer weg.

Zoe nu naar de volgende regels en zet een ‘;’ voor de entries ‘ca’, ‘cert’ en ‘key’:

Voer tenslotte de volgende commando’s uit:

Stap 8: Port-forward instellen op je router.

Je moet op je router nog een port-forward van poort ‘1194’ instellen naar het IP adres waarop je de OpenVPN server hebt draaien.

Stap 9: Installeren van client profiel op je iPhone

Installeer nu op je iPhone de OpenVPN App. Je moet ook nog de files ‘/etc/openvpn/easy-rsa/keys/henri.ovpn’ op je iPhone krijgen. Dit doe je door in iTunes naar je Device te gaan en in de Apps tab OpenVPN te selecteren. Scroll vervolgens naar beneden en voeg deze file toe aan het File Sharing window.




Synchroniseer tenslotte je iPhone met iTunes.

Als je nu OpenVPN opstart op je iPhone zal deze het nieuwe client profiel detecteren en kun je deze importen.




Je bent nu klaar en kunt op je iPhone client gebruik maken van je OpenVPN server thuis. Zoals je ziet een hele handleiding, maar als het eenmaal werkt heb je er geen omkijken meer naar en kun je voortaan een veilige verbinding naar thuis opzetten.

Addendum

Indien je de UFW firewall hebt geinstalleerd op je Debian based server moet je nog een aantal extra stappen uitvoeren. Zorg er eerst voor dat een aantal poorten open staan:

Verder moeten we nog een UFW forwarding policy aanpassen in file ‘etc/default/ufw’. Zoek hier naar de volgende regel:

en verander deze in:

Tenslotte moeten we nog wat regels toevoegen voor netwerk vertaling en IP masquerade van verbonden clients. Voeg de volgende regels toe aan de file ‘/etc/ufw/before.rules’

Disable en Enable UFW weer met de commando’s:

avatar
2000
Foto en Image Files
 
 
 
Audio en Video Files
 
 
 
Andere File Types