Eerst moet je Wireguard installeren. Daarna de GUI compileren vanaf de broncode. Dat gaat alsvolgt:
cd ~/ sudo apt install wireguard git dh-autoreconf libglib2.0-dev intltool build-essential libgtk-3-dev libnma-dev libsecret-1-dev network-manager-dev resolvconf git clone https://github.com/max-moser/network-manager-wireguard cd network-manager-wireguard ./autogen.sh --without-libnm-glib ./configure --without-libnm-glib --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/NetworkManager --localstatedir=/var make sudo make install
Als alles goed geïnstalleerd is, zou de WireGuard optie in het netwerkmenu zichtbaar moeten worden. (Settings -> Network -> VPN)
Als je Wireguard GUI wilt de-installeren geef in de directory waarin network-manager-wireguard staat in de terminal dan dit commando:
sudo make uninstall
Nu voer je de config file in:
nmcli connection import type wireguard file wg_config.conf
Om de wireguard verbinding te starten:
#!/bin/bash
nmcli connection up wg_config
en om deze weer te stoppen:
#!/bin/bash
nmcli connection down wg_config
Deze commando's kun je in een bash script stoppen om ze vanuit de command line te starten en stoppen.
Gedetailleerde installatie van WireGuard in Linux Mint
WireGuard is een open-source VPN-protocolimplementatie die snel aan populariteit wint onder VPN-gebruikers vanwege de snelheid, het gebruiksgemak en de goed ontworpen codebasis. De WireGuard-kernelmodule wordt geleverd met de hoofdlijn Linux-kernel 5.6 of hoger, en de gebruikerstools zijn al opgenomen in de basisrepository’s van alle moderne Linux-distributies. Als je een doe-het-zelf-VPN-router wilt opzetten op een openbare VPS die je beheert, is er echt geen reden om WireGuard niet te proberen.
Het opzetten van een WireGuard VPN-router vereist geen specialistische kennis van het onderliggende VPN-protocol, noch het leren van cryptische configuratietaal of het verkennen van enorme configuratieruimte. Er zijn ook verschillende gebruiksvriendelijke frontends in de maak die de VPN-configuratie aan de clientzijde eenvoudig maken.
Deze tutorial richt zich op het instellen van de WireGuard VPN-client met behulp van een populaire netwerkbeheertool naar keuze: NetworkManager GUI.
Aannames
In deze tutorial ga ik ervan uit dat je al ergens een WireGuard VPN-router hebt opgezet (bijvoorbeeld een publiek toegankelijke VPS).
Ik ga ook uit van de volgende instellingen.
WAN-adres van de WireGuard VPN-server: 192.168.122.104 Luister-UDP-poort van de WireGuard VPN-server: 51820 VPN-adres van de WireGuard VPN-server: 10.0.0.1/24 VPN-adres van WireGuard VPN-client: 10.0.0.2/24Stap één: Controleer de vereiste
Om de WireGuard VPN-client met NetworkManager GUI te kunnen configureren, heeft u NetworkManager met versie 1.26.2 of hoger nodig. Controleer dus eerst de versie van uw NetworkManager voordat u verdergaat. Ubuntu 20.10 en Linux Mint 21 of later voldoen aan deze vereiste. Deze tutorial is dus alleen van toepassing op een van die Linux-desktopomgevingen.
Stap twee: Installeer WireGuard
Installeer WireGuard met de standaard pakketbeheerder.
Voor Ubuntu:
sudo apt install wireguard
Stap drie: maak een cryptografisch sleutelpaar
Maak vervolgens een openbaar/privaat sleutelpaar voor de WireGuard VPN-client. Laten we hiervoor eerst naar de root overschakelen. De rest van de stappen in de zelfstudie worden uitgevoerd als root.
sudo -i
Gebruik de opdracht wg om een sleutelpaar te maken en deze op te slaan in /etc/wireguard.
cd /etc/wireguard
umask 077
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Stap vier: Voeg de openbare sleutel van de client toe aan de WireGuard VPN-server
Om ervoor te zorgen dat de WireGuard-client met de WireGuard VPN-server kan praten, moet u expliciet de openbare sleutel van de client aan de VPN-server toevoegen. WireGuard is tenslotte een peer-to-peer VPN. Log dus in op de WireGuard VPN-serverhost en voer de volgende opdracht uit.
wg set wg0 peer <client-public-key> allowed-ips <client-VPN-address>
Houd er rekening mee dat in dit voorbeeld het VPN-IP-adres van de client 10.0.0.2 is.
Stap vijf: Maak een netwerkverbinding met de GUI van NetworkManager’s Connection Editor
Voer vervolgens nm-connection-editor uit vanaf de opdrachtregel en voeg een nieuwe netwerkverbinding toe voor WireGuard VPN. Zorg ervoor dat u nm-connection-editor als root start, omdat er een configuratiebestand moet worden gemaakt in
/etc/NetworkManager/system-connections
Klik in de GUI van Netwerkverbindingen op de knop +.
Ga vervolgens naar het tabblad IPv4-instellingen/IPv4Settings en configureer een privé VPN IP-adres dat moet worden toegewezen aan de WireGuard VPN-client, namelijk 10.0.0.2/24. Geef als gateway het VPN IP-adres van de WireGuard VPN-server op, namelijk 10.0.0.1/24. Voor DNS-servers kunt u elke openbare DNS-server kiezen (bijvoorbeeld 8.8.8.8). Klik op de knop Opslaan.
Ga nu naar het tabblad Algemeen en schakel het selectievakje naast Automatisch verbinden met prioriteit in. Hierdoor wordt deze WireGuard-verbinding automatisch geactiveerd en wordt er een VPN-verbinding tot stand gebracht met de WireGuard VPN-server. Klik op de knop Opslaan om te voltooien.
Stap zes: Controleer de WireGuard VPN-connectiviteit
Op dit punt zou er een WireGuard VPN-verbinding actief moeten zijn en al het uitgaande verkeer van de client zou via de WireGuard VPN-server moeten worden gerouteerd.
Om de WireGuard VPN-connectiviteit aan de clientzijde te controleren, kunt u proberen een externe host (bijvoorbeeld 8.8.8.8) te pingen vanaf de host van de client. Om te verifiëren dat het pingverkeer via de WireGuard VPN-server wordt geleid, gebruikt u de ip-opdracht.
ping 8.8.8.8
ip route get 8.8.8.8
De opdracht ip route get toont de route die wordt gebruikt om de opgegeven bestemming te bereiken. De uitvoer van het bovenstaande commando bevestigt dat verkeer dat bestemd is voor 8.8.8.8 wordt gerouteerd via de wg0-interface, en niet via de WAN-interface van de host.
Een andere manier om de VPN-connectiviteit te verifiëren is door tcpdump uit te voeren op de virtuele interface wg0 van WireGuard en te controleren of de interface ICMP-verzoek- en responsverkeer ziet dat wordt gegenereerd door de ping-opdracht.
tcpdump -i wg0
Optioneel: Beheer een WireGuard-verbinding vanaf de opdrachtregel
Zodra een WireGuard-verbinding met succes tot stand is gebracht met Network Manager GUI, kunt u de verbinding als volgt vanaf de opdrachtregel beheren met nmcli.
Voer eenvoudigweg nmcli uit om de status van de VPN-verbinding te zien.
nmcli
Om de gedetailleerde verbindingseigenschappen van WireGuard VPN te bekijken:
nmcli --overview connection show 'WireGuard connection 1'
WireGuard VPN starten of stoppen:
nmcli connection up 'WireGuard connection 1'
nmcli connection down 'WireGuard connection 1'
Om de automatische startstatus van WireGuard VPN te controleren:
nmcli connection show 'WireGuard connection 1' | grep autoconnect
Om het automatisch starten van WireGuard VPN in/uit te schakelen:
nmcli connection modify 'WireGuard connection 1' connection.autoconnect yes
nmcli connection modify 'WireGuard connection 1' connection.autoconnect no
Om de WireGuard VPN-verbinding te verwijderen:
nmcli connection delete 'WireGuard connection 1'
WireGuard VPN-probleemoplossing
Symptoom: u kunt het privé-IP-adres van de WireGuard VPN-server (10.0.0.1) niet pingen.
Oplossing 1: controleer de bereikbaarheid van de UDP-poortZorg ervoor dat de UDP-luisterpoort van de VPN-server toegankelijk is voor de client. Om te controleren of dat het geval is, gebruikt u het nc-commando.
nc -zvu <VPN-server's-WAN-address> <UDP-port>
In ons voorbeeld:
nc -zvu 192.168.122.104 51820
Verbinding met 192.168.122.240 51820 poort [udp/*] gelukt!
Als u de UDP-poort niet kunt bereiken, is dat waarschijnlijk de firewall op de server die inkomend verkeer naar de UDP-poort blokkeert. Zorg ervoor dat u de poort in de firewall aan de serverzijde openzet.
Oplossing 2: Controleer of de openbare sleutel van de client is toegevoegd aan de VPN-server
Een andere mogelijkheid is dat u bent vergeten de openbare sleutel van de klant toe te voegen aan de WireGuard VPN-server. Zoals beschreven in stap 4 van deze tutorial, gebruik je de opdracht wg om dat te doen:
wg set wg0 peer allowed-ips
Samenvatting
Deze tutorial heeft je opnieuw bewezen hoe eenvoudig het is om WireGuard VPN op een moderne Linux-desktop in te stellen. Hoewel NetworkManager voldoende ondersteuning biedt voor WireGuard VPN, is de volledige desktopintegratie (tenminste op de GNOME-desktop) nog steeds niet aanwezig.
Vanaf NetworkManager 1.26.2, wanneer WireGuard VPN actief is, toont de netwerkindicator bijvoorbeeld niet het statuspictogram voor WireGuard.
Linux Mint 21.2 gebruikt networkmanager 1.36.6
Geen opmerkingen:
Een reactie posten
Opmerking: Alleen leden van deze blog kunnen een reactie posten.