WireGuard är ett allmänt ändamål VPN (Virtual Private Network) som använder toppmodern kryptografi. Jämfört med andra populära VPN-lösningar, som IPsec och OpenVPN, är WireGuard i allmänhet snabbare, lättare att konfigurera och har ett mindre fotavtryck. Det är plattformsoberoende och kan köras nästan var som helst, inklusive Linux, Windows, Android och macOS.
Wireguard är en peer-to-peer VPN; den använder inte klientservermodellen. Beroende på konfiguration kan en peer fungera som en traditionell server eller klient. Det fungerar genom att skapa ett nätverksgränssnitt på varje peer-enhet som fungerar som en tunnel. Peers autentiserar varandra genom att utbyta och validera offentliga nycklar och härma SSH-modellen. Offentliga nycklar mappas med en lista över IP-adresser som är tillåtna i tunneln. VPN-trafiken är inkapslad i UDP.
Den här artikeln förklarar hur du installerar och konfigurerar WireGuard på Debian 10 som fungerar som en VPN-server. Vi visar dig också hur du konfigurerar WireGuard som klient på Linux, Windows och macOS. Klientens trafik dirigeras via Debian 10-servern.
Den här inställningen kan användas som ett skydd mot Man in the Middle-attacker, surfa anonymt på nätet, kringgå Geo-begränsat innehåll eller låta dina kollegor som arbetar hemifrån ansluta till företagets nätverk säkert.
Förutsättningar #
För att följa den här guiden behöver du en maskin med Debian 10 installerad. Du behöver också root eller [sudo access] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / för att installera paket och göra ändringar i systemet.
Konfigurera WireGuard Server #
Vi börjar med att installera WireGuard-paketet på Debian-maskinen och ställa in det för att fungera som server. Vi konfigurerar också systemet för att dirigera klienternas trafik genom det.
Installera WireGuard på Debian 10 #
WireGuard är tillgängligt från Debians backportsförvar. För att lägga till förvaret i ditt system, kör:
echo 'deb http: // ftp.debian.org / debian buster-backports main '| sudo tee / etc / apt / sources.lista.d / buster-backports.lista
När förvaret är aktiverat uppdaterar du apt-cachen och installerar WireGuard-modulen och verktygen:
WireGuard körs som en kärnmodul.sudo apt uppdatering
sudo apt installera wireguard
Konfigurera WireGuard #
Du kan konfigurera och hantera WireGuard-gränssnitten med wg
och wg-snabb
kommandoradsverktyg.
Varje enhet i WireGuard VPN-nätverket måste ha en privat och offentlig nyckel. Kör följande kommando för att generera nyckelparet:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Filerna genereras i / etc / wireguard
katalog. Använd katt
eller mindre
kommandon för att visa innehållet i filerna. Den privata nyckeln ska aldrig delas med någon och ska alltid hållas säker.
Wireguard stöder också en fördelad nyckel, som lägger till ytterligare ett lager av symmetrisk nyckelkryptografi. Den här nyckeln är valfri och måste vara unik för varje peer-par.
Nästa steg är att konfigurera tunnelenheten som dirigerar VPN-trafiken.
Enheten kan ställas in antingen från kommandoraden med ip
och wg
kommandon eller genom att manuellt skapa konfigurationsfilen. Vi skapar konfigurationen med en textredigerare.
Öppna din redigerare och skapa en ny fil med namnet wg0.konf
med följande innehåll:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Gränssnitt] Adress = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i% i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Du kan namnge gränssnittet vad du vill. Det rekommenderas dock att använda något liknande wg0
eller wgvpn0
.
Inställningarna i gränssnittssektionen har följande betydelse:
Adress - En kommaseparerad lista över v4- eller v6-IP-adresser för
wg0
gränssnitt. Du kan ange en IP-adress från ett intervall som är reserverat för privata nätverk (10.0.0.0/8, 172.16.0.0/12 eller 192.168.0.0/16).ListenPort - Lyssningsporten.
PrivateKey - En privat nyckel som genereras av
wg genkey
kommando. (För att se innehållet i filtypen:sudo cat / etc / wireguard / privatekey
)SaveConfig - När den är inställd på true sparas gränssnittets nuvarande tillstånd i konfigurationsfilen när den stängs av.
PostUp - Kommando eller skript som körs innan gränssnittet tas upp. I det här exemplet använder vi iptables för att möjliggöra maskering. Detta gör att trafik kan lämna servern, vilket ger VPN-klienterna åtkomst till Internet.
Se till att byta ut det
ens3
efter-EN POSTROUTING
för att matcha namnet på ditt offentliga nätverksgränssnitt. Du kan enkelt hitta gränssnittet med:ip -o -4 ruttvisning till standard | awk 'skriv ut $ 5'
PostDown - Ett kommando eller skript som körs innan gränssnittet sänks. Reglerna för iptables tas bort när gränssnittet är nere.
De wg0.konf
och privatvård
filer bör inte vara läsbara för vanliga användare. Använda sig av chmod
för att ställa in filbehörigheterna till 600
:
sudo chmod 600 / etc / wireguard / privatekey, wg0.conf
När du är klar, ta med wg0
gränssnitt upp med de attribut som anges i konfigurationsfilen:
sudo wg-snabb upp wg0
Utgången kommer att se ut så här:
[#] ip-länk lägg till wg0 typ wireguard [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 adress lägg till 10.0.0.1/24 dev wg0 [#] ip-länkuppsättning mtu 1420 upp dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
För att kontrollera gränssnittsläget och konfigurationen, kör:
sudo wg visa wg0
gränssnitt: wg0 offentlig nyckel: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = privat nyckel: (dold) lyssningsport: 51820
Du kan också verifiera gränssnittets tillstånd med ip en show wg0
:
ip en show wg0
4: wg0: mtu 1420 qdisc noqueue state Okänd grupp standard qlen 1000 länk / ingen inet 10.0.0.1/24 omfattning global wg0 valid_lft för alltid preferens_lft för alltid
WireGuard kan hanteras med Systemd. För att få WireGuard-gränssnittet vid starttid, kör följande kommando:
sudo systemctl aktiverar wg-quick @ wg0
Servernätverk och konfiguration av brandvägg #
IP-vidarebefordran måste vara aktiverat för att NAT ska fungera. Öppna / etc / sysctl.konf
fil och lägg till eller avmarkera följande rad:
sudo nano / etc / sysctl.konf
/ etc / sysctl.konfnetto.ipv4.ip_forward = 1
Spara filen och tillämpa ändringen:
sudo sysctl -p
netto.ipv4.ip_forward = 1
Om du använder UFW för att hantera din brandvägg måste du öppna UDP-trafik på port 51820
:
sudo ufw tillåter 51820 / udp
Det är allt. Debian-kollegan som fungerar som en server har ställts in.
Linux- och macOS-klientinstallationsnummer #
Installationsinstruktionerna för alla plattformar som stöds finns på https: // wireguard.com / installera / . På Linux-system kan du installera paketet med hjälp av distributionspakethanteraren och på macOS med brygga
.
När du har installerat följer du stegen nedan för att konfigurera klientenheten.
Processen för att ställa in en Linux- och macOS-klient är ungefär densamma som du gjorde för servern. Generera först de offentliga och privata nycklarna:
wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Skapa filen wg0.konf
och lägg till följande innehåll:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Gränssnitt] PrivateKey = CLIENT_PRIVATE_KEY Adress = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Slutpunkt = SERVER_IP_ADDRESS: 51820 TillåtnaIPs = 0.0.0.0/0
Inställningarna i gränssnittsavsnittet har samma betydelse som när du ställer in servern:
- Adress - En kommaseparerad lista över v4- eller v6-IP-adresser för
wg0
gränssnitt. - PrivateKey - För att se innehållet i filen på klientdatorn, kör:
sudo cat / etc / wireguard / privatekey
Peer-sektionen innehåller följande fält:
- PublicKey - En offentlig nyckel till den kollega du vill ansluta till. (Innehållet på servern
/ etc / wireguard / publickey
fil). - Slutpunkt - En IP eller värdnamn för den peer du vill ansluta till, följt av ett kolon och sedan ett portnummer som fjärrkontrollen lyssnar på.
- Tillåtna IP: er - En kommaseparerad lista över v4- eller v6-IP-adresser från vilka inkommande trafik för kollegan är tillåten och till vilken utgående trafik för denna kollega riktas. Vi använder 0.0.0.0/0 eftersom vi dirigerar trafiken och vill att servernivaren ska skicka paket med valfri IP-källa.
Om du behöver konfigurera ytterligare klienter, upprepar du bara samma steg med en annan privat IP-adress.
Windows Clients installationsnummer
Ladda ner och installera Windows msi-paketet från WireGuards webbplats .
När du är installerad öppnar du WireGuard-applikationen och klickar på "Lägg till tunnel" -> "Lägg till tom tunnel ..." som visas på bilden nedan:
Ett publickey-par skapas automatiskt och visas på skärmen.
Ange ett namn för tunneln och redigera konfigurationen enligt följande:
[Gränssnitt] PrivateKey = CLIENT_PRIVATE_KEY Adress = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Slutpunkt = SERVER_IP_ADDRESS: 51820 TillåtnaIPs = 0.0.0.0/0
Lägg till en ny rad i gränssnittsavsnittet för att definiera klienttunneladressen.
Lägg till följande fält i peer-avsnittet:
- PublicKey - Debianserverns offentliga nyckel (
/ etc / wireguard / publickey
fil). - Slutpunkt - IP-adressen för Debianserver följt av en kolon- och WireGuard-port (51820).
- Tillåtna IP: er - 0.0.0.0/0
När du är klar klickar du på knappen "Spara".
Lägg till klientpeer till servernummer
Det sista steget är att lägga till klientens offentliga nyckel och IP-adress till servern. För att göra det, kör följande kommando på Debianserver:
sudo wg set wg0 peer CLIENT_PUBLIC_KEY allow-ips 10.0.0.2
Se till att ändra CLIENT_PUBLIC_KEY
med den offentliga nyckeln som du genererade på klientmaskinen (sudo cat / etc / wireguard / publickey
) och justera klientens IP-adress om den är annorlunda. Windows-användare kan kopiera den offentliga nyckeln från WireGuard-applikationen.
När du är klar, gå tillbaka till klientmaskinen och ta upp tunnelgränssnittet.
Linux- och macOS-klienter #
Kör följande kommando och ta upp gränssnittet:
sudo wg-snabb upp wg0
Nu ska du vara ansluten till Debian-servern och trafiken från din klientmaskin ska dirigeras genom den. Du kan kontrollera anslutningen med:
sudo wg
gränssnitt: wg0 allmän nyckel: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = privat nyckel: (dold) lyssningsport: 53527 fwmark: 0xca6c peer: r3imyh3MCYggaZACmkx + CxlD6uAgICgmg = PgQgQgmg.XXX.XXX.XXX: 51820 tillåtna ips: 0.0.0.0/0 senaste handskakning: 53 sekunder sedan överföring: 3.23 KiB mottog, 3.50 KiB skickas
Du kan också öppna din webbläsare, skriva “vad är min ip”, och du bör se din IP-adress för Debianserver.
För att stoppa tunnlingen, ta ner wg0
gränssnitt:
sudo wg-snabb ner wg0
Windows-klienter #
Om du installerade WireGuard i Windows klickar du på knappen “Aktivera”. När kollegorna är anslutna ändras tunnelstatusen till Aktiv:
Slutsats #
Vi har visat dig hur du installerar WireGuard på Debian 10 och konfigurerar det som en VPN-server. Denna inställning låter dig surfa på webben anonymt genom att hålla din trafikinformation privat.
Om du har några problem är du välkommen att lämna en kommentar.