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.