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.
Sinun pitäisi käyttää VPN-verkkoasi vuokraa VPS-palvelin. On olemassa erilaisia ohjelmistoja, joiden avulla voit luoda VPN-yhteyden. Se eroaa toisistaan tuettujen käyttöjärjestelmien ja käytettyjen algoritmien mukaan. Tarkastellaan kahta riippumatonta lähestymistapaa VPN-palvelimen määrittämiseen. Ensimmäinen perustuu PPTP-protokollaan, jota pidetään jo vanhentuneena ja ei turvallisena, mutta on todella helppo määrittää. 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.
Ota pakettien edelleenlähetys käyttöön avaamalla tiedosto "/etc/sysctl.conf" ja muutos "net.ipv4.ip_forward" parametrin arvoon 1.
Jos haluat ottaa muutokset käyttöön käynnistämättä tietokonetta uudelleen, suorita komento
sudo sysctl -p /etc/sysctl.conf
Verkko-osoitteen käännös konfiguroidaan käyttämällä iptables. Tarkista ensin ulkoisen verkkoliitännän nimi, joka suorittaa komennon "IP-linkkiesitys" - tarvitset sitä seuraavassa vaiheessa. 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 iptablesin luomat säännöt nollataan palvelimen uudelleenkäynnistyksen jälkeen. Tämän estämiseksi käytä "iptables-pysyvä" apuohjelma. Asenna seuraava paketti:
sudo apt install iptables-persistent
Jossain vaiheessa asennusprosessin aikana näet asetusikkunan, joka ehdottaa nykyisten iptables-sääntöjen tallentamista. Koska säännöt on jo määritetty, vahvista vain ja napsauta "Joo" kahdesti. Tästä lähtien sääntöjä sovelletaan automaattisesti palvelimen uudelleenkäynnistyksen jälkeen.
PPTP-palvelin
Palvelimen kokoonpano
Asenna paketti:
sudo apt install pptpd
Kun asennus on päättynyt, avaa tiedosto "/etc/pptpd.conf" missä tahansa tekstieditorissa 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
Tämän jälkeen muokkaa 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 asiakasyhteyksiä varten. Oletetaan, että haluat lisätä käyttäjän "vp-käyttäjä" salasanalla "1" ja salli dynaamisen osoituksen hänelle. Avaa tiedosto "/etc/ppp/chap-secrets" ja lisää seuraava rivi käyttäjän parametreillä tiedoston loppuun:
vpnuser pptpd 1 *
"pptpd" arvo on palvelun nimi, jonka määritimme tiedostoon "pptpd-asetukset". Sijasta "*" voit määrittää kiinteän IP-osoitteen. Tuloksena tiedosto "salaisuuksia" pitäisi näyttää tältä:
Jos haluat ottaa asetukset käyttöön, nollaa pptpd palveluun ja lisää se automaattiseen lataukseen.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Palvelimen määritys on valmis.
Asiakasmääritykset
avoin "Alkaa" - "Asetukset" - Verkko ja Internet - "VPN" ja valitse "Lisää VPN-yhteys"
Syötä yhteysparametrit avautuvaan ikkunaan ja napsauta "Tallentaa"
- 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)
Kun olet tallentanut parametrit, näet uuden VPN-yhteyden ikkunassa. Napsauta yhteyttä hiiren vasemmalla painikkeella ja valitse "Yhdistä". Jos yhteys on onnistunut, näet "Yhdistetty" tila.
Asetukset-kohdasta löydät asiakkaan ja palvelimen sisäiset osoitteet. Ala "Kohdeosoite" näyttää ulkoisen palvelimen osoitteen.
Kun yhteys on muodostettu, palvelimen sisäinen IP-osoite, 172.16.0.1 meidän tapauksessamme tulee oletusyhdyskäytävä 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. Me tarvitsemme “Helppo-RSA” paketti 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”, siirry kohtaan "YHTEISÖ" osiossa.
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 asiakkaan asetustiedostomalli samaan hakemistoon. Muuta tiedostopääte muotoon ".ovpn" kopioitaessa.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Vaihda hakemiston ja kaikkien tiedostojen omistaja "~/asiakas1/" voidakseen jakaa ne asiakkaalle. Tehdään "mihail" meidän tapauksessamme omistaja.
chown -R mihail:mihail ~/client1
Mene asiakastietokoneelle ja kopioi tiedoston sisältö "~/asiakas1/" kansio. Voit tehdä sen avulla "PSCP" apuohjelma, joka sopii Puttyn kanssa.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Voit tallentaa avaintiedostoja "ca.crt", "asiakas1.crt", "asiakas1.avain" missä haluat. Meidän tapauksessamme ne ovat tässä kansiossa "c:\Ohjelmatiedostot\OpenVPN\avaimet", ja muokkaamme asetustiedostoa "client.ovpn" osaksi "c:\Ohjelmatiedostot\OpenVPN\config" hakemistoon.
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 yhteys 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.