WireGuard VPN -palvelimen ja -asiakkaan määrittäminen Ubuntu 20.04:ssä

Määritä itseisännöity VPN Wireguardin avulla

A VPN (virtuaalinen yksityinen verkko) sallii käyttäjän muodostaa etäyhteyden yksityiseen verkkoon ikään kuin käyttäjän tietokone olisi yhdistetty suoraan yksityiseen verkkoon. Tekniikka kehitettiin alun perin mahdollistamaan etäyhteys yrityksen sisäiseen yksityiseen verkkoon työntekijöille, jotka eivät varsinaisesti ole läsnä sisäisen verkon sijainnissa.

VPN-palvelin otetaan käyttöön sisäisen verkon sijaintipaikassa. Tämä palvelin on julkisessa verkossa, ja työntekijä voi käyttää sitä VPN-asiakassovelluksella. VPN-palvelimeen yhdistäminen edellyttää todennusta. VPN-palvelimen ja VPN-asiakkaan välinen tiedonsiirto on suojattu tunnelointiprotokollalla. Huomaa, että tämä viestintä voi olla tai ei ole salattua, mutta yleensä useimmissa VPN-protokollissa se on salattu.

Toinen VPN:n käyttötarkoitus on saada nimettömänä käyttäessään Internetiä tai kiertää joidenkin verkkosivustojen käytön yhteydessä asetettuja maantieteellisiä rajoituksia. Tällaisissa tapauksissa verkko, johon käyttäjä haluaa muodostaa yhteyden, ei ole yksityinen verkko, vaan se on Internet.

Monia VPN-protokollia on kehitetty vuosien varrella. Nämä protokollat ​​käyttävät erilaisia ​​tunnelointiprotokollia ja salausalgoritmeja viestintään palvelimen ja asiakkaan välillä.

Yksi tällainen protokolla, joka on yleistynyt viime aikoina, on Lankasuoja. Wireguard on kevyempi, yksinkertaisempi ja tehokkaampi kuin tunnetut perinteisesti käytetyt VPN-protokollat, kuten OpenVPN, IPSec. Se on jo toteutettu Windowsille, Mac OS:lle ja useille Linux-jakeluille. Linuxissa se toteutetaan ydinmoduulina. Se on saatavilla Ubuntu 20.04:n virallisissa arkistoissa.

Tässä artikkelissa näemme, kuinka Wireguard VPN -palvelin ja -asiakas määritetään Ubuntu 20.04:ssä.

Asennus

Tätä artikkelia varten määritän Wireguard-palvelimen Ubuntu 20.04 Linodelle ja Wireguard Client -sovellukselle paikallisessa koneessani Ubuntu 20.04:n kanssa.

Paketti lankasuoja asentaa sekä Wireguard Serverin että Clientin. Suorita seuraava komento sekä palvelinkoneella että asiakaskoneella.

sudo apt install wireguard

Palvelimen määritykset

Suojausavaimet

Meidän on luotava joukko julkisia/yksityisiä avainpareja Wireguard-yhteyden todentamiseksi ja suojaamiseksi. Tämä voidaan tehdä käyttämällä seuraavia komentoja:

sudo su cd /etc/wireguard umask 077 wg genkey | tee yksityinen_avain | wg pubkey > julkinen_avain

Huomaa, että teemme kaikki konfigurointitehtävät pääkäyttäjänä. Syynä on pääsy hakemistoon /etc/wireguard on estetty tavallisilta käyttäjiltä, ​​ja hakemistoon pääsyä ei voi saada pelkillä sudo-oikeuksilla normaalille käyttäjälle.

Seuraavaksi asetamme tiedostonluontimaskin arvoon 077. Tämä tarkoittaa, että aina kun tähän kansioon luodaan uusi tiedosto jollakin prosessilla, sen käyttöoikeudet peitetään automaattisesti 077:llä. Esim. jos tähän kansioon luodaan tiedosto, jonka käyttöoikeudet ovat 777, se maskataan automaattisesti ja käyttöoikeuksista tulee käytännössä 700. Tämä tehdään siten, että vain tiedoston omistajalla on kaikki oikeudet tiedostoon ja muilla ei ole oikeuksia.

Seuraavalla rivillä, luomme julkisen/yksityisen avainparin palvelimelle. Ne tallennetaan tiedostoihin yksityinen_avain ja julkinen_avain. Nähdäksesi avaimet, suorita:

cat yksityinen_avain kissa julkinen_avain

Kopioi yksityinen avain, tarvitsemme sen seuraavassa vaiheessa.

merkintä: Älä koskaan jaa yksityistä avaimesi julkisesti!

Asetustiedosto

Luodaan Wireguard-palvelimelle asetustiedosto. Voit valita tiedostolle minkä tahansa nimen. Luomme tiedoston wg0.conf tässä esimerkissä.

vim wg0.conf

Lisää tiedostoon seuraavat tiedot.

[Liitäntä] Osoite = 10.20.43.1/24 SaveConfig = true ListenPort = 51190 PrivateKey = PostUp = iptables -A ETEENPÄIN -i wg0 -j HYVÄKSY; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A ETEENPÄIN -i wg0 -j HYVÄKSY; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D ETEENPÄIN -i wg0 -j HYVÄKSY; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D ETEENPÄIN -i wg0 -j HYVÄKSY; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE 

Liitä yksityinen avain, jonka olemme aiemmin kopioineet yllä olevan koodin riville 5.

Meidän on määritettävä Wireguard eri (virtuaaliseen) aliverkkoon kuin palvelimen IP-osoite. Tässä olen käyttänyt 10.20.43.1 palvelimelle ja 10.20.43.2 asiakkaalle. Tässä voidaan käyttää mitä tahansa aliverkkoa. Saat palvelimen ja käyttöliittymän IP-osoitteen suorittamalla:

ifconfig

Huomaa palvelimen IP-osoite. Tämä vaaditaan asiakkaan määrityksen aikana.

Palvelimen käyttämä käyttöliittymä, kuten yllä olevasta kuvasta näkyy, on eth0. Käyttöliittymän nimi voi vaihdella käyttäjän verkon mukaan, se voi olla wlan0 tai wlp2s0 jos käyttäjä on yhteydessä WiFi-verkkoon langattomalla kortilla.

Korvata sisään PostUp ja PostDown käyttöliittymäsi kanssa; tässä esimerkissä se on eth0.PostUp ja PostDown direktiivejä käytetään määrittämään, mitkä komennot tulee suorittaa palvelimen käynnistyessä ja pysähtyessä. Esimerkissämme käytämme iptables komento asettaa IP-säännöt siten, että asiakkaat jakavat palvelimen IP-osoitteen. Säännöt raukeavat, kun palvelin pysähtyy.

Tallenna ja poistu tiedostosta. Kun käytät vimiä, paina poistu, kirjoita sitten :wq ja paina Tulla sisään tallentaa ja poistua.

Jos käytät a ufw palvelimen palomuuri, meidän on sallittava UDP-yhteydet VPN-palvelimen porttiin 51190.

ufw salli 51190/udp

Palvelun käynnistäminen

Nyt kun asetukset on tehty, voimme käynnistää Wireguard VPN -palvelun.

Mahdollistaa palvelu käynnistyy käynnistyksen yhteydessä, suorita:

systemctl enable wg-quick@wg0

Huomaa se tässä wg0 on asetustiedoston nimi.

Aloittaa palvelu, suorita:

palvelu wg-quick@wg0 aloita

Vahvista että palvelu on käynnistynyt onnistuneesti:

palvelun wg-quick@wg0 tila

Varmista, että käyttöliittymä luomamme asetustiedostossa on alkanut IP-komennolla.

ip a show wg0

Wireguard VPN -palvelin on nyt asennettu ja käynnissä. Määritetään asiakas nyt.

Asiakkaan asetukset

Client Configuration for Wireguard on suurin piirtein sama kuin palvelinkokoonpano. Luomme avaimet asiakkaalle ja luomme sitten määritystiedoston.

Suojausavaimet

Luodaksesi julkisen/yksityisen avaimen yhdistä asiakkaalle, suorita:

sudo su cd /etc/wireguard umask 077 wg genkey | tee asiakas_yksityinen_avain | wg pubkey > client_public_key

Asiakkaan julkiset ja yksityiset avaimet luodaan nyt tiedostoissa client_private_key ja client_public_key.

Tarkista, että ne on luotu käyttämällä kissa komento.

cat client_private_key cat client_public_key

Kopioi näytettävä yksityinen avain, koska meidän on lisättävä se asiakkaan määritystiedostoon.

Asetustiedosto

Luo määritystiedosto millä tahansa nimellä haluat. Luomme sen nimellä wg0-asiakas tälle esimerkille.

vim wg0-client.conf

Lisää seuraava kokoonpano.

[Liitäntä] # Asiakasosoitteen IP-osoite ja yksityinen avain = 10.20.43.2/24 PrivateKey = [Peer] # Palvelimen julkinen avain, IP-osoite ja portti PublicKey = Päätepiste = :51190 Sallitut IP-osoitteet = 0.0.0.0/0, : :/0

Anna asiakkaan aliverkon osoite. Kuten aiemmin kuvattiin, käytämme 10.20.43.2 asiakkaalle tässä esimerkissä.

Lisää asiakkaan yksityinen avain luotu edellisessä vaiheessa yllä olevan konfigurointikoodin riville 4.

'Peer'-kohtaan lisäämme tietoja Wireguard VPN -palvelimesta haluamme muodostaa yhteyden.

Anna palvelimen julkinen avain. Syötä palvelimen IP-osoite, jonka huomasimme aiemmin, ja portti annetussa muodossa vastaan Päätepiste. Tämä on portti, jonka määritimme palvelimen määritystiedostossa ja josta palvelimen VPN-palvelu aloitettiin.

Sallitut IP-osoitteet tulee syöttää annettuna (0.0.0.0/0), jotta kaikki asiakkaan käyttämän dynaamisen julkisen IP-osoitteen pyynnöt välitetään aina VPN-palvelimelle.

Tallenna ja poistu tiedostosta. Kun käytät vimiä, paina poistu, kirjoita sitten :wq ja paina Tulla sisään tallentaa ja poistua.

Ota asiakaspalvelu käyttöön juoksemaan jokaisen käynnistyksen kanssa ja käynnistämään se.

systemctl enable wg-quick@wg-client service wg-quick@wg-client start

Vahvista jos palvelu on alkanut.

palvelun wg-quick@wg-asiakkaan tila

Peerin lisääminen palvelimelle

Nyt meillä on VPN-palvelin ja asiakas käynnissä. Turvallista tunnelia näiden kahden välille ei kuitenkaan muodosteta, ellemme muodosta vertaisyhteyttä palvelimen ja asiakkaan välille.

Mene takaisin palvelimelle. Ensimmäinen, lopeta VPN-palvelu.

palvelu wg-quick@wg0 stop

Avaa seuraavaksi määritystiedosto kohteeseen lisää kokoonpanon vertaisversiolle (asiakas).

vim /etc/wireguard/wg0.conf

Liitä seuraavat rivit tiedostoon.

[Peer] PublicKey = Sallitut IP:t = 10.20.43.2/32

Nyt, käynnistä VPN-palvelu uudelleen.

palvelu wg-quick@wg0 aloita

Se siitä! Tämä on kaikki Wireguard VPN -asiakkaan ja palvelimen asennukseen tarvittavat asetukset. Testataan nyt VPN:ämme.

VPN:n testaus

Tehdään ensin yksinkertainen ping asiakkaalta palvelimelle varmistaaksemme, että VPN-tunneliviestintä toimii. Suorita seuraava asia asiakkaalla:

ping 10.20.43.1

Seuraava, avaa verkkoselain ja avaa mikä tahansa verkkosivusto tarkistaaksesi, pystytkö muodostamaan yhteyden Internetiin asiakaskoneelta. Voit myös tarkistaa Internet-yhteytesi komentoriviltä käyttämällä wget.

wget 

Nyt olemme tarkistaneet tunneliyhteyden ja Internet-yhteyden. Jos molemmat toimivat, meidän on nyt varmistettava, että kaikki asiakkaalle tuleva Internet-liikenne kulkee palvelimen kautta.

Tätä varten meidän on yksinkertaisesti tarkistettava asiakkaan IP-osoite Internetin näkemänä. Yksi tapa tehdä se on siirtyä osoitteeseen whatsmyip.org. Tai muuten komentoriviltä voimme kysyä toisesta samankaltaisesta palvelusta nimeltä IP info Curlilla.

Suorita seuraava asiakaskoneella

curl //ipinfo.io/ip

Joo. Se on sen Linoden julkinen IP-osoite, jossa VPN-palvelinta isännöidään. Näin anonymiteetti saavutetaan VPN:n avulla, koska kaikkialla Internetissä näkyy nyt VPN-palvelimen IP, ei tietokoneesi.

Johtopäätös

Asennuksen helppous on yksi Wireguardin tärkeimmistä eduista verrattuna perinteisiin VPN-ohjelmistoihin, kuten OpenVPN, joka vaatii korkeamman tason verkko- ja reititystietoa asentaakseen. Wireguardista puuttuu kuitenkin yksityiskohtainen virallinen dokumentaatio, joka saattaa aiheuttaa ongelmia, jos Wireguard-asennus aiheuttaa virheitä tai ei toimi odotetulla tavalla.

Siitä huolimatta Wireguard on erinomainen valinta, jos haluat itseisännöidyn VPN:n turvalliseen viestintään Internetissä. Lisätietoja Wireguardista ja sen käyttämistä protokollista ja teknologioista on virallisella sivustolla.