Nykyään VPN-teknologiasta tulee suositumpi. Tavalliset käyttäjät käyttävät VPN:ää päästäkseen Internetiin turvallisesti. Se auttaa myös kiertämään paikallisesti estettyjä verkkosivustoja ja palveluita ja suojaamaan mahdolliselta ulkoiselta haitalliselta käytökseltä. Kun muodostat yhteyden VPN-palvelimeen, tietokoneesi ja palvelimen välillä on turvallinen tunneli, johon ei pääse ulkopuolelta, joten VPN-palvelimesta tulee Internet-yhteyspisteesi. Siellä on paljon VPN-palveluita, sekä ilmaisia että maksullisia, mutta jos ne eivät jostain syystä toimi sinulle, voit aina määrittää oman VPN-palvelimesi.
Oman VPN:n käyttämiseksi sinun tulee vuokrata VPS-palvelin . VPN-yhteyden luomiseen on olemassa erilaisia ohjelmistoja. Ne eroavat toisistaan tuettujen käyttöjärjestelmien ja käytettyjen algoritmien suhteen. Tarkastelemme kahta toisistaan riippumatonta lähestymistapaa VPN-palvelimen asentamiseen. Ensimmäinen perustuu PPTP-protokollaan, jota pidetään jo vanhentuneena ja turvattomana, mutta joka on todella helppo konfiguroida. Toinen käyttää modernia ja turvallista OpenVPN-ohjelmistoa, mutta vaatii kolmannen osapuolen asiakassovelluksen asentamisen ja perusteellisemman asennusprosessin.
Testiympäristössämme aiomme käyttää virtuaalista palvelinta, joka toimii Ubuntu Server 18.04:n avulla. Palomuuri kytketään pois päältä palvelimelta, koska sen määritykset ansaitsevat erillisen artikkelin. Kuvaamme asennusprosessin Windows 10:ssä.
Valmistelu
Riippumatta siitä, minkä VPN-palvelimen valitset, Internet-yhteys muodostetaan käyttöjärjestelmän integroiduilla keinoilla. Jotta Internet-yhteys voidaan avata ulkoisen palvelurajapinnan kautta, sinun on sallittava pakettien välitys rajapintojen välillä ja määritettävä verkko-osoitteiden käännös.
Pakettien edelleenlähetyksen kytkemiseksi päälle avaa tiedosto “/etc/sysctl.conf” ja muuta “net.ipv4.ip_forward” -parametrin arvoksi 1.
Jos haluat ottaa muutokset käyttöön käynnistämättä tietokonetta uudelleen, suorita komento
sudo sysctl -p /etc/sysctl.conf
Verkko-osoitteen muunnos konfiguroidaan iptables- ohjelmalla . Tarkista ensin ulkoisen verkkoliitännän nimi ja suorita komento "ip link show" – tarvitset sitä seuraavassa vaiheessa. Meidän nimemme on "ens3".
Ota verkko-osoitteiden käännös käyttöön ulkoisessa liitännässäsi kaikille paikallisen verkon solmuille.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Huomaa, että sinun on määritettävä palvelimesi käyttöliittymän oikea nimi, se voi olla erilainen kuin meidän.
Oletusarvoisesti kaikki iptables-ohjelman luomat säännöt nollataan palvelimen uudelleenkäynnistyksen jälkeen. Tämän estämiseksi käytä "iptables-persistent" -apuohjelmaa. Asenna seuraava paketti:
sudo apt install iptables-persistent
Asennusprosessin jossain vaiheessa näet asetusikkunan, joka ehdottaa nykyisten iptables-sääntöjen tallentamista. Koska säännöt on jo määritelty, vahvista vain ja napsauta "Kyllä" kahdesti. Koska nyt säännöt otetaan käyttöön automaattisesti palvelimen uudelleenkäynnistyksen jälkeen.
PPTP-palvelin
Palvelimen kokoonpano
Asenna paketti:
sudo apt install pptpd
Asennuksen päätyttyä avaa tiedosto “/etc/pptpd.conf” millä tahansa tekstieditorilla ja muokkaa sitä seuraavasti:
option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses
Muokkaa sen jälkeen tiedostoa “/etc/ppp/pptpd-options” . Useimmat parametrit on asetettu oletusarvoisesti.
#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
Seuraavassa vaiheessa sinun on luotava tietue asiakasyhteyksille. Oletetaan, että haluat lisätä käyttäjän "vpnuser" salasanalla "1" ja sallia hänelle dynaamisen osoitteiden käytön. Avaa tiedosto "/etc/ppp/chap-secrets" ja lisää tiedoston loppuun seuraava rivi käyttäjän parametreilla:
vpnuser pptpd 1 *
”pptpd” -arvo on palvelun nimi, jonka määritimme tiedostossa ”pptpd-options” . ”*”: n sijaan voit määrittää kiinteän IP-osoitteen. Tuloksena tiedoston ”chap-secrets” pitäisi näyttää tältä:
Asetusten käyttöönotto edellyttää pptpd- palvelun nollaamista ja sen lisäämistä automaattiseen lataukseen.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Palvelimen määritys on valmis.
Asiakasmääritykset
Avaa "Käynnistä" - "Asetukset" - "Verkko ja Internet" - "VPN" ja napsauta "Lisää VPN-yhteys".
Syötä avautuvaan ikkunaan yhteysparametrit ja napsauta "Tallenna"
- VPN-palveluntarjoaja: "Windows (sisäänrakennettu)"
- Yhteyden nimi: "vpn_connect" (voit valita minkä tahansa nimen)
- Palvelimen nimi tai osoite: (määritä palvelimen ulkoinen IP-osoite)
- VPN-tyyppi: "Auto"
- Kirjautumistietojen tyyppi: "Käyttäjänimi ja salasana"
- Käyttäjän nimi: vp-käyttäjä (nimi määritetty palvelimen "chap-secrets" -tiedostossa)
- Salasana: 1 (kuten "chap-secrets" -tiedostossa)
Parametrien tallentamisen jälkeen näet uuden VPN-yhteyden ikkunassa. Napsauta yhteyttä hiiren vasemmalla painikkeella ja valitse ”Yhdistä” . Onnistuneen yhteyden muodostumisen tapauksessa näet tilan ”Yhdistetty” .
Asetukset-kohdasta löydät asiakkaan ja palvelimen sisäiset osoitteet. Kentässä ”Kohdeosoite” näkyy ulkoisen palvelimen osoite.
Kun yhteys on muodostettu, palvelimen sisäinen IP-osoite, meidän tapauksessamme 172.16.0.1 , toimii oletusyhdyskäytävänä kaikille lähteville paketeille.
Millä tahansa verkkopalvelulla voit varmistaa, että tietokoneen ulkoinen IP-osoite on nyt sama kuin VPN-palvelimesi IP-osoite.
OpenVPN-palvelin
Palvelimen kokoonpano
Edistäkäämme nykyisen käyttäjän käyttöoikeustasoa, koska lisämäärityksiä varten tarvitsemme pääkäyttäjän oikeudet.
sudo -s
Asenna kaikki tarvittavat paketit. Tarvitsemme "Easy-RSA" -paketin salausavainten hallintaan.
apt install openvpn easy-rsa iptables-persistent
Salli saapuvat yhteydet portissa 1194 UDP-protokollan kautta ja käytä iptables-sääntöjä.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Luo hakemisto, johon kopioit tiedostot "Easy-RSA"-paketista, ja siirry siihen.
make-cadir ~/openvpn
cd ~/openvpn
Luo julkisen avaimen infrastruktuuri (PKI).
./easyrsa init-pki
Luo varmenteen myöntäjän (CA) juurivarmenne.
./easyrsa build-ca
Luontiprosessin aikana sinua pyydetään asettamaan ja muistamaan salasana. Sinun on myös vastattava kysymyksiin ja annettava tietoja avaimen omistajasta. Voit jättää hakasulkeissa annetut oletusarvot. Viimeistele syöttö painamalla Enter.
Luo yksityinen avain ja varmennepyyntö. Argumenttina anna mielivaltainen nimi; meidän tapauksessamme se on ”vpn-server”.
./easyrsa gen-req vpn-server nopass
Jätä Common Name -arvo oletusarvoksi.
Allekirjoita luotu palvelinvarmennepyyntö.
./easyrsa sign-req server vpn-server
Tässä vaiheessa vahvista allekirjoitus vastaamalla "kyllä" ja anna sitten juurisertifikaatin luomisen aikana luotu salasana.
Luo Diffie-Hellman-parametreja. Näitä parametreja käytetään turvalliseen avaintenvaihtoon palvelimen ja asiakkaan välillä.
./easyrsa gen-dh
Kaikki tarvittavat tiedostot on luotu. Luodaan OpenVPN:n työhakemistoon "keys"-kansio avainten tallentamista varten ja kopioidaan luodut tiedostot sinne.
mkdir /etc/openvpn/keys
sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys
NAT-määrityksen tekeminen iptables säännöt. Luo tiedosto nimeltä nat ja avaa se muokattavaksi kohdassa /etc/openvpn/ hakemistoon.
#!/bin/sh
# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP
# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP
sudo netfilter-persistent save
Tallenna tiedosto ja tee siitä suoritettava.
sudo chmod 755 /etc/openvpn/nat
Kopioi palvelimen määritysmalli.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Avaa tiedosto “/etc/openvpn/server.conf” muokkausta varten, varmista, että se sisältää seuraavat rivit ja muokkaa niitä tarvittaessa:
#Port, protocol, and interface
port 1194
proto udp
dev tun
#Path to the encryption keys
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpn-server.crt
key /etc/openvpn/keys/vpn-server.key
dh /etc/openvpn/keys/dh.pem
#SHA256 Hashing Algorithm
auth SHA256
#Switching off additional encryption
#tls-auth ta.key 0
#Network parameters
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.
keepalive 10 120
#Set up AES-256 encryption for the tunnel.
cipher AES-256-GCM
#Demoting the service OpenVPN after launch
user nobody
group nogroup
#Switching on parameters saving after reboot
persist-key
persist-tun
#Set log verbosity
verb 3
#Redirecting logs
log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.
up /etc/openvpn/nat
Ota liikenteen edelleenlähetys käyttöön palvelimella.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Käynnistä OpenVPN ottaaksesi asetukset käyttöön.
systemctl restart openvpn@server
Palvelimen konfigurointi on valmis!
Asiakasmääritykset
Siirry OpenVPN:n viralliselle verkkosivustolle “ https://openvpn.net ” ja siirry “YHTEISÖ” -osioon.
Vieritä alas ja lataa käyttöjärjestelmäversiosi asennusohjelma. Meidän tapauksessamme se on Windows 11 ARM64.
Asenna sovellus jättäen kaikki parametrit oletusarvoisesti.
Seuraavassa vaiheessa sinun on valmisteltava seuraava tiedosto palvelimelle ja siirrettävä ne asiakastietokoneelle:
- julkiset ja yksityiset avaimet;
- kopio varmennuskeskuksen avaimesta;
- konfigurointitiedostomalli.
Yhdistä palvelimeen, nosta käyttöoikeuksia ja siirry luomaamme hakemistoon. "~/openvpn".
sudo -s
cd ~/openvpn
Luo asiakkaalle yksityinen avain ja varmennepyyntö. Argumenttina anna mielivaltainen nimi; meidän tapauksessamme se on ”asiakas1”.
./easyrsa gen-req client1 nopass
Anna salasana, jonka asetimme juurisertifikaatin luomisen yhteydessä, ja jätä Common Name -arvo oletusarvoksi.
Allekirjoita luotu asiakassertifikaattipyyntö.
./easyrsa sign-req client client1
Tässä vaiheessa vahvista allekirjoitus vastaamalla "kyllä" ja anna sitten juurisertifikaatin luomisen aikana luotu salasana.
Luodaanpa mukavuuden vuoksi kotihakemistoon kansio nimeltä 'client1' ja kopioidaan siihen kaikki asiakastietokoneelle siirrettäväksi tarkoitetut tiedostot.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Kopioi asiakaskonfiguraatiotiedoston malli samaan hakemistoon. Muuta tiedostopääte muotoon ".ovpn" kopioinnin aikana.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Muuta hakemiston ja kaikkien tiedostojen “~/client1/” omistajaa , jotta voit jakaa ne asiakkaalle. Tehdään omistajaksi meidän tapauksessamme “mihail” .
chown -R mihail:mihail ~/client1
Mene asiakastietokoneelle ja kopioi "~/client1/"- kansion sisältö. Voit tehdä sen Puttyn mukana tulevalla "PSCP" -apuohjelmalla.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Voit tallentaa avaintiedostot ”ca.crt” , ”client1.crt” ja ”client1.key” minne haluat. Meidän tapauksessamme ne ovat kansiossa ”c:\Program Files\OpenVPN\keys” , ja olemme siirtäneet asetustiedoston ”client.ovpn” hakemistoon ”c:\Program Files\OpenVPN\config”.
Siirrytään nyt asiakkaan konfigurointiin. Avaa tiedosto “c:\Program Files\OpenVPN\config\client.ovpn” tekstieditorissa ja muokkaa seuraavia rivejä:
#announce that this is the client
client
#interface and protocol just like on the server
dev tun
proto udp
#IP address of the server and port
remote ip_address 1194
#saving parameters after reload
persist-key
persist-tun
#key paths
ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”
cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”
key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification
remote-cert-tls server
#disable extra encryption
#tls-auth ta.key 1
cipher AES-256-CBC
auth-nocache
verb 3
Jätä loput koskematta.
Tallenna tiedosto ja käynnistä asiakassovellus ”OpenVPN GUI”.
Napsauta hiiren kakkospainikkeella tehtäväpalkin sovelluskuvaketta ja valitse ”Yhdistä” . Jos yhteyden muodostaminen onnistuu, kuvake muuttuu vihreäksi.
Käytä mitä tahansa verkkopalvelua varmistaaksesi, että julkinen IP-osoitteesi on muuttunut ja on nyt sama kuin palvelimen IP-osoite.