Wireguard installeren op een Edgerouter
In dit artikel gaan we uitleggen hoe je Wireguard kunt installeren op een Edgerouter. WireGuard is het nieuwste VPN-verbindingsprotocol. Het combineert versleuteling, beveiliging en algehele online bescherming die je van een VPN gewend bent, met ongeëvenaarde snelheden en prestaties die geen enkel ander protocol kan evenaren.
We gaan ervan uit dat de Edgerouter een public IP adres heeft. Mocht dat niet zo zijn, dan moet je gebruik maken van een DDNS service en de client/gebruikers verwijzen naar die hostname.
Stap 1: Wireguard installeren
Om Wireguard op een Edgerouter te installeren moet je gebruik maken van de juiste package. Onderstaande commando’s zijn geschikt voor de versie 2 firmware. Mocht jouw Edgerouter nog op versie 1 firmware zitten, denk er dan eens over om de Edgerouter eerst te updaten (of anders kun je hier de de juiste package vinden).
EdgeRouter X and EdgeRouter X SFP (ER-X, ER-X-SFP):
1 2 3 |
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e50-v2-v1.0.20220627-v1.0.20210914.deb sudo dpkg -i e50-v2-v1.0.20220627-v1.0.20210914.deb |
EdgeRouter Lite and EdgeRouter PoE (ER-Lite, ER-PoE):
1 2 3 |
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e100-v2-v1.0.20220627-v1.0.20210914.deb sudo dpkg -i e100-v2-v1.0.20220627-v1.0.20210914.deb |
EdgeRouter 8 and EdgeRouter Pro (ER-8, ER-8-Pro):
1 2 3 |
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e200-v2-v1.0.20220627-v1.0.20210914.deb sudo dpkg -i e200-v2-v1.0.20220627-v1.0.20210914.deb |
EdgeRouter 4, EdgeRouter 6P and EdgeRouter 12 (ER-4, ER-6P, ER-12, ER-12P):
1 2 3 |
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e300-v2-v1.0.20220627-v1.0.20210914.deb sudo dpkg -i e300-v2-v1.0.20220627-v1.0.20210914.deb |
EdgeRouter Infinity (ER-8-XG):
1 2 3 |
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e1000-v2-v1.0.20220627-v1.0.20210914.deb sudo dpkg -i e1000-v2-v1.0.20220627-v1.0.20210914.deb |
Stap 2: Keys aanmaken
Now that Wireguard is installed, we need to generate folders and keys. The number of keys and their names are up to you, but this is the basic process you will need to go through. In these commands we’re also assuming the use of the default ubnt account for administration, hopefully with a long, unique password. If you are logging in as another user, the paths shown will need to be adjusted to match the user and directories you wish to use.
Eerst kijken we of we in de juiste directory zitten, we werken vanuit /home/ubnt/wireguard
Ga naar de /home/ubnt folder:
1 |
cd /home/ubnt |
Maak een map met de naam wireguard
aan en ga naar die map:
1 |
mkdir wireguard; cd wireguard |
Maak nu een map aan voor de server keys en ga er naar toe:
1 |
mkdir server_keys; cd server_keys |
Maak de keys aan voor de Wireguard server:
1 |
wg genkey | tee privatekey | wg pubkey > publickey |
Toon de keys en kopieer deze naar een programma als Kladblok, aangezien we de keys verderop nodig hebben. Noteer goed dat die de server keys zijn.
1 2 |
more privatekey more publickey |
Ga terug naar de werkmap Wireguard:
1 |
cd /home/ubnt/wireguard |
Nu gaan we keys aanmaken voor de gebruikers. Je kunt er net zoveel aanmaken als je wil. In dit voorbeeld gaan we een user key aanmaken voor de gebruiker Ehoco:
Maak de map user_keys
aan en ga naar de map:
1 |
mkdir user_keys; cd user_keys |
Maak een submap aan voor de gebruiker Ehoco en ga naar de map:
1 |
mkdir ehoco_user; cd ehoco_user |
Maak de keys aan voor de gebruiker:
1 |
wg genkey | tee privatekey | wg pubkey > publickey |
Toon de keys en kopieer deze naar een programma als Kladblok, aangezien we de keys verderop nodig hebben. Noteer goed dat die de user keys zijn.
1 2 |
more privatekey more publickey |
Ga terug naar de werkmap Wireguard:
1 |
cd /home/ubnt/wireguard |
Stap 3: Wireguard interface en gebruikers configureren
Nu de keys aangemaakt zijn gaan we de Wireguard interface configureren. Vergeet niet om <public_key-gebruiker> te vervangen door de werkelijke key!
1 2 3 4 5 6 7 8 9 |
configure set interfaces wireguard wg0 private-key /home/ubnt/wireguard/server_keys/privatekey set interfaces wireguard wg0 address 10.8.0.1/24 set interfaces wireguard wg0 route-allowed-ips true set interfaces wireguard wg0 listen-port 51820 set interfaces wireguard wg0 peer <public_key-gebruiker> allowed-ips 10.8.0.2/32 set interfaces wireguard wg0 peer <public_key-gebruiker> description Ehoco_gebruiker commit ; save ; exit |
Tot slot moeten we een firewall regel voor UDP traffic op de WAN poort aanmaken. Onderstaande commando’s, rule name en rule number kunnen verschillen. Als je de default WAN_LOCAL rule al gebruikt, dan zullen de commando’s werken. Als je WAN_LOCAL rule niet gebruikt, dan moet je ze enigzins aanpassen naar jouw situatie.
1 2 3 4 5 6 7 8 |
configure set firewall name WAN_LOCAL rule 30 action accept set firewall name WAN_LOCAL rule 30 protocol udp set firewall name WAN_LOCAL rule 30 destination port 51820 set firewall name WAN_LOCAL rule 30 description 'WireGuard Edgerouter' commit ; save ; exit |
Stap 4: Verbinding maken
De settings op de Edgerouter zijn nu klaar, tijd om te testen of alles werkt! Op je telefoon (of notebook) moet je nu de Wireguard client applicatie downloaden en een nieuwe tunnel aanmaken. Onderstaand vind je een voorbeeld van een configuratie-bestand. Vergeet niet om <private_key-gebruiker> en <public_key-server> te vervangen door de werkelijke keys!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[Interface] Address = 10.8.0.2/32 PrivateKey = <private_key-gebruiker> #Optioneel DNS = 8.8.8.8 # If you are using an internal DNS server, remember to allow it from the new interface [Peer] PublicKey = <public_key-server> # Remember to change the port if using a custom one Endpoint = public_ip_of_router:51820 # If you want to route all traffic through the VPN, use this: AllowedIPs = 0.0.0.0/0, ::/0 # Otherwise, enter only the IP ranges inside your target network: # AllowedIPs = 10.8.0.0/24 |