Openvpn ubuntu 16.04 installimine ja konfigureerimine. Marsruutimine ja välised skriptid. Kliendi konfiguratsioonifailide installimine

VPN-tehnoloogia tuntud kui viis turvaline juurdepääs eraettevõtte ressurssidele, aga ka mitmesugusele sisule, olgu selleks siis heli-, video- või arhiividokumente. See võimaldab teil luua privaatvõrgu, suunates dokumendid teise või mitme ressursse kasutades ühte arvutisse. Virtuaalset privaatvõrku kasutatakse laialdaselt kõigis kaasaegsed brauserid. Ilma selleta läheb harva kauge töö suure ja tähtsa organisatsiooni töötaja. OpenVPN Ubuntu seadistamine pole mõeldud ainult tehnikutele ja entusiastidele kõrge turvalisus, aga ka kõik need, kes ei taha leppida kõrge hind litsentsitud sisu riikides, kus juurdepääs sellele on piiratud.

IN Linuxi seadistamine virtuaalsed võrgudõhuke.

Selle tehnoloogia abil pääsete hõlpsalt juurde hiinakeelsele sisule failihoidlad, näiteks Venemaalt, mis on tuntud oma laialt levinud internetitsensuuri poolest. Või kasutage seda, et saada palju muid olulisi võrgus tasuta kasutamise eeliseid. Organisatsioonides on VPN-i kasutamise küsimus muutunud aktuaalseks tulemüüride seadistamise raskuste tõttu. Nende kasutamine nõudis ühendatud seadmete parameetrite ja juurdepääsuseadete pidevat muutmist. Varem tõi see kaasa märkimisväärse aja- ja rahakulu.

OpenVPN-i installimine on tasuta saadaoleva virtuaalse privaatvõrgu tehnoloogia rakendus. See on võimalik nii Windowsi kui ka Linuxi põhistes operatsioonisüsteemides. Alates aastast Linuxi keskkond peenhäälestus kõik selle funktsiooni parameetrid on lihtsamad, kaalume seda. Virtuaalsete privaatvõrkude teemat käsitletakse laialdaselt paljudel temaatilistel saitidel ja foorumitel, tänu millele on saanud sellega liituda nii professionaalid kui ka uued turvatehnoloogiate järgijad üle maailma. OpenVPN Ubuntu installimine võimaldab teil mitte ainult tõsta isikuandmete turvalisuse taset, vaid ka oma tegevusi võrgus õigesti korraldada.

Miks kasutada VPN-i ja mitte muid kaitsemeetodeid? isiklik informatsioon? Seda meetodit tuleb konfigureerida ainult üks kord. Kõik andmed liiguvad automaatselt läbi serveri privaatvõrk, kohe krüpteeritud kujul.

OpenVPN on üsna funktsionaalne, kiire ja paindlik tarkvara, mis võimaldab teil töötada SSL VPN-iga. Sellel on avatud lähtekood. See tähendab, et igaüks saab selle võimalusi individuaalselt kasutada, samuti programmi koodi oma vajaduste järgi muuta.

Tegelikult pakub see tehnoloogia ebaturvaliste võrkude kasutamist nii, nagu oleks võimas kaitse. See on väga asjakohane, kui:

  1. Kasutate sellele juurdepääsuks nõrga turbega Interneti-ühendust.
  2. Teie elukohas teabele juurdepääsu suhtes kehtib tsensuur.
  3. Asute kohas, kus on avalikud WiFi-levialad.
  4. Peate oma asukohta teiste võrgukasutajate eest hästi varjama.
  5. Soovite oma isikuandmeid ja paroole veelgi paremini kaitsta.

NÕUANNE. VPN-võrk nimetatakse virtuaalseks, kuna kõik selle elemendid on kombineeritud kasutades tarkvara, mis kasutab virtuaalseid ühendusi.

See on privaatne, kuna sellele ei pääse keegi juurde. Seda saavad teha ainult üksikud osalejad, kes on omavahel sellise sideme loonud. Iga võrguelement peab sisaldama kaitsev teave. See teave hõlbustab mõnel Internetis osalejal juurdepääsu võrgule ja lihtsalt keelab teistele juurdepääsu.

Põhimõisted

Tunnel on turvaline ühendus, mis kasutab ebaturvalise võrgu (antud juhul Interneti) ressursse ja võimaldab vahetada teavet privaatse kanali kaudu, mis on konfigureeritud ainult usaldusväärsete seadmete jaoks.

Klient on programm, mis paigaldatakse seadmetele, kus on vaja anda andmevahetuskanal serveriga. See kanal on kaitstud.

Server - arvuti või koht, kus teavet salvestatakse Kontod virtuaalse privaatvõrgu kasutajad. Serveri kasutamine võimaldab kiirendada programme ja vähendada liiklust (edastatavate andmete hulka).

Avalikud võtmed ja sertifikaadid on teabe krüptimiseks kasutatavad eriandmed. Andmeid vahetades lähevad nad sertifitseerimiskeskusesse, kus neile alla kirjutatakse. Hiljem pöörduvad nad tagasi lähteelement võrgud.

Liigume edasi praktika juurde

OpenVPN Ubuntu serveri seadistamiseks peate oma serveri ostma installitud Ubuntu Linux. Peate hankima selle juurõigused. Praegu saab lahendust osta madala hinnaga ning selliseid teenuseid pakkuvate ettevõtete arv kasvab. OpenVPN Ubuntu installimine ise ei nõua märkimisväärset ajainvesteeringut.

Alustame installimise ja konfigureerimisega

Kõigepealt peate looma ühenduse serveriga ja andma sellele järgmised käsud:

"apt-get update
apt-get install openvpn"

Need juhised algavad OpenVPN-i installimine. Järgmisena peate installima võtmete ja sertifikaatide loomise utiliidi ja valmistama selle kasutamiseks ette:

"cd /tmp
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
apt-get install unzip
lahti pakkima master.zip
cd easy-rsa-master
./build/build-dist.sh
tar xvzf ./EasyRSA-git-development.tgz
cd EasyRSA-git-development"

"./easyrsa init-pki
./easyrsa build-ca
./easyrsa build-server-full server
./easyrsa build-client-full client1
./easyrsa gen-dh"

Pärast genereerimist peate vastuvõetud andmed üle kandma /etc/openvpn/:

"mv ./pki/dh.pem /etc/openvpn/dh.pem
mv ./pki/private/client1.key /etc/openvpn/
mv ./pki/private/server.key /etc/openvpn/
mv ./pki/ca.crt /etc/openvpn/
mv ./pki/issued/client1.crt /etc/openvpn/
mv ./pki/issued/server.crt /etc/openvpn/"

Looge samasse kataloogi fail server.conf järgmiste parameetritega:

"režiimiserver
arendaja tune
server 10.128.0.0 255.255.255.0
vajuta "redirect-gateway def1"
vajuta "dhcp-option DNS 8.8.8.8"
tls-server
caca.crt
sert server.crt
võtmeserver.võti
dh dh.pem
proto tcp-server
port 1194
kliendilt kliendile
komp-lzo
ellu jääma 10 120
tegusõna 4
šifr AES-256-CBC
kasutaja mitte keegi
rühm nogroup
max-kliendid 10"

Käivitage

"teenuse openvpn start"

"mkdir vpn
cd vpn
scp vpn-server:/etc/openvpn/client1.crt ./
scp vpn-server:/etc/openvpn/client1.key ./
scp vpn-server:/etc/openvpn/ca.crt ./"

Siin kaugreale peate kirjutama serveri IP-aadressi, nagu on näidatud näites.

"klient
proto tcp
arendaja tune
pult 123.45.67.89 1194
püsiklahv
püsima-tun
caca.crt
sert klient1.crt
võtmeklient1.võti
šifr AES-256-CBC
komp-lzo
tegusõna 3"

"sudo openvpn --config client.conf"

Kõrvalolevas terminali aknas peate sisestama käsu:

"ping 10.128.0.1
traceroute mail.ru"

Kui kõik tehti õigesti, leiate, et 10.128.0.1 pingib edukalt. Kuid pakette adressaadile ei saadeta, kuna NAT pole serveris konfigureeritud. Peame selle sammu veel lõpetama.

Serveris peate avama faili nimega /etc/sysctl.conf ja eemaldama realt "net.ipv4.ip_forward=1" olevad kommentaarid, muutes selle aktiivseks.

"echo1>>/proc/sys/net/ipv4/conf/all/forwarding"

Seejärel peate sisestama:

"iptables -A EDASI -s 10.128.0.0/24 -j ACCEPT
iptables -A EDASI -d 10.128.0.0/24 -m olek \
--olek ASUTATUD, SEOTUD -j AKTSEPTI
iptables -t nat -A POSTROUTING -s 10.128.0.0/24\
-j SNAT – allikasse (serveri aadress)"

"iptables-save > /etc/iptables.rules"

Samuti peate kontrollima, et failis "/etc/network/interfaces" oleks kirjutatud rida "pre-up iptables-restore".< /etc/iptables.rules». Перезагрузите сервер OpenVPN, чтобы настраивать его дальше.

Peate täitma VPN-i seadistamine läbi Võrguhaldur. Selleks tuleb sisestada käsk “sudoapt-get install network-manager-openvpn-gnome”. Konfiguratsiooni saab kirjutada kõik varem teksti kujul määratud failid.

See viib Ubuntu OpenVPN-serveri seadistamise lõpule! Kui teil on probleeme, küsige julgelt kommentaarides või otsige üksikasju temaatilistest foorumitest! Linux on keeruline ja mitmetahuline süsteem, mis harva sobib algajatele kohe. Kuid õige pingutusega on võimalik sellest üle saada. Ja siis avaneb kasutajale miljon uut võimalust, mis varem silma alt ära ei jäänud.

VPN (virtuaalne privaatvõrk) on tehnoloogia, mis võimaldab ühendada arvutid üle Interneti nii, nagu oleksid need samas kohtvõrgus. Tänu sellele saame erinevates linnades ja riikides asuvad kontorid ühendada üheks võrgustikuks.
Kodus VPN-serveri installimisega ja kliendi osa oma nutitelefonis pääsete Internetti avaliku kaudu WiFi punktid kartmata, et teie paroolid pealt võetakse.
Välismaises andmekeskuses serveri rentimine maksab alates 5 dollarist kuus ja Ameerika regiooni VPN-i paigutamisega saame juurdepääsu Spotifyle, Pandorale, Hulule ja teistele teenustele, mis pole teie riigis saadaval, ning Interneti-tsensuur ei puuduta enam teid .

1. Installige OpenVPN.

Värskendame oma serverit ja installime OpenVPN-i ja sertifitseerimisasutuse.

Sudo apt värskendus sudo apt upgrade sudo apt install openvpn easy-rsa

OpenVPN on virtuaalne privaatvõrk, mis kasutab liikluse krüptimiseks TLS/SSL-i. See tähendab, et vajame usaldusväärseid sertifikaate.

2. Sertifitseerimisasutuse loomine

Asutame sertifitseerimisasutuse.

Make-cadir ~/openvpn-ca cd ~/openvpn-ca nano vars

Leiame järgmise fragmendi:

. . . . . eksport KEY_COUNTRY="US" eksport KEY_PROVINCE="CA" eksport KEY_CITY="SanFrancisco" eksport KEY_ORG="Fort-Funston" eksport KEY_EMAIL=" [e-postiga kaitstud]" export KEY_OU="Minu organisatsiooniüksus" . . . .

ja asendage see oma andmetega

. . . . . export KEY_COUNTRY="RU " export KEY_PROVINCE="SPb " export KEY_CITY="Sankt-Peterburg " export KEY_ORG="sait " export KEY_EMAIL="admin@site " export KEY_OU="IT " . . . . .

Mõni rida allpool muudame võtme KEY_NAME väärtust

Ekspordi KEY_NAME="server" cd ~/openvpn-ca lähtekoodivars

Vastuseks peaks süsteem väljastama:

MÄRKUS. Kui käivitate faili ./clean-all, teen failis /home/sammy/openvpn-ca/keys rm -rf

Igaks juhuks puhastame kataloogist kõik võtmed:

./puhas-kõik

ja looge juursertifikaadi asutus:

./build-ca

Nõutavad väärtused asendatakse automaatselt vars-failist, mida redigeerisime just ülalpool. Valiku kinnitamiseks vajutage lihtsalt sisestusklahvi.

Oleme installinud sertifitseerimisasutuse, mida kasutame muude vajalike failide loomiseks.

3. Looge serverile sertifikaat, võti ja krüpteerimisfailid

Kõigepealt loome OpenVPN sertifikaat ja serveri võtmed. Selleks käivitage järgmine käsk:

./build-key-server server

Nõustume kõigi vaikeväärtustega, lõpus valime kaks korda “y”.
Nüüd genereerime Diffie-Hellmani protokolli võtmed käsuga:

./build-dh

ja HMAC-allkiri, mis tugevdab serveri võimet kontrollida edastatud TSL-i andmete terviklikkust ja autentsust:

Openvpn --genkey --salajased võtmed/ta.key

4. Looge kliendile sertifikaat ja võtmepaar

Vaatleme kliendi kliendi1 võtme ja sertifikaadi loomise protseduuri. Kui kliente on mitu, on loomise protsess sarnane. automaatne ühendus loome faili ilma paroolita. Kasutame käsku build-key:

Cd ~/openvpn-ca allikas vars ./build-key client1

5. OpenVPN-teenuse seadistamine

Kopeerige loodud failid (CA sertifikaat ja võti, serveri sertifikaat ja võti, HMAC allkiri, Diffie-Hellmani fail) kataloogist ~/openvpn-ca/keys kausta /etc/openvpn

Cd ~/openvpn-ca/keys sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn

Gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf sudo nano /etc/openvpn/server.conf

Leiame HMAC-i jaotise ja eemaldame rea kommentaarid tls-auth-iga ning lisame ka võtme-suuna parameetri:

Tls-auth ta.key 0 # See fail on salajase võtme suuna 0

Seejärel otsime krüpteerimissektsiooni ja tühjendame rea AES-128-CBC šifriga ning lisame pärast seda HMAC-algoritmi:

Šifr AES-128-CBC autentimine SHA256

Lõpuks otsige üles ridade kasutaja ja rühm ning tühjendage need kommentaarid:

Kasutaja ei rühmita ühtegi gruppi

6. OpenVPN-teenuse lubamine

Meie serveri sihtotstarbeliseks kasutamiseks peab see suutma liiklust ümber suunata.

sudo nano /etc/sysctl.conf

Otsige rida ja tühjendage kommentaarid:

net.ipv4.ip_forward=1

Muudetud sätete rakendamiseks tehke järgmist.

sudo sysctl -p

Kirjeldame, kuidas meie server käivitub. Kuna konfiguratsioonifaili nimi on server.conf, anname järgmise käsu:

sudo systemctl käivita openvpn@server

Kontrollime, kas server on käivitunud:

sudo systemctl olek openvpn@server

ja kas tun-liides on üleval

ip-adr näita tun0

Kui kõik töötab, lisage käivitamisel seaded:

sudo systemctl lubage openvpn@server

7. Skript klientide seadistamiseks.

mkdir -p ~/client-configs/files chmod 700 ~/client-configs/files cp /usr/share/doc/openvpn/ examples/sample-config-files/ client.conf ~/client-configs/base.conf

Teeme mõned muudatused failis base.conf

nano ~/client-configs/base.conf . . . # Serveri hostinimi/IP ja port. # Sa saad serverite vahelise koormuse tasakaalu tagamiseks on mitu kaugkirjet #. kaugserveri_IP_aadress 1194 . . .

Serveri_IP_aadressi asemel kirjutame oma OpenVPN-serveri IP-aadressi.

proto udp kasutaja nobody group nogroup

Sertifikaadid ja võtmed salvestame otse konfiguratsioonifaili, mille loome hiljem. Seetõttu kommenteerime ridu ca, sert Ja võti

# SSL/TLS parms. # Vaadake serveri konfiguratsiooni faili jaoks rohkem # kirjeldust. Parim on kasutada # eraldi .crt/.key failipaari # igaühele klient. Kõigi klientide jaoks saab kasutada ühte ca # faili. #ca ca.crt #cert client.crt #key client.key

Toome kliendiosa seadistused serveri samadele seadistustele.

Kontrollige faili /etc/openvpn/update-resolv-conf olemasolu oma kliendisüsteemis. Kui see on olemas, tuleb kolm viimast rida kommentaarideta jätta.

šifr AES-128-CBC auth SHA256 võtme suund 1 # skripti turvalisus 2 # üles /etc/openvpn/update-resolv-conf # alla /etc/openvpn/update-resolv-conf

Noh, lõpuks loome skripti, mille abil loome klientidele konfiguratsioonifailid.

Nano ~/client-configs/make_config.sh

Sisestame teksti:

#!/bin/bash # Esimene argument: Kliendi identifikaator KEY_DIR=~/openvpn-ca/keys OUTPUT_DIR=~/client-configs/files BASE_CONFIG=~/client-configs/base.conf cat $(BASE_CONFIG) \<(echo -e "")\$(KEY_DIR)/ca.crt\<(echo -e "\n ")\$(KEY_DIR)/$(1).crt\<(echo -e "\n ")\$(KEY_DIR)/$(1).key\<(echo -e "\n ")\$(KEY_DIR)/ta.key\<(echo -e "") \ > $(OUTPUT_DIR)/$(1).ovpn

Salvestame ja sulgeme faili, seejärel muudame selle käivitatavaks:

Chmod 700 ~/client-configs/make_config.sh

8. Kliendi konfiguratsioonifailide genereerimine

cd ~/client-configs ./make_config.sh klient1

Kontrollime, mis juhtus:

Ls ~/client-configs/files

selle tulemusena peaksime faili saama

Klient1.ovpn

ühenduse seadete, sertifikaatide ja võtmega.

See fail tuleb turvalist ühendust kasutades klientarvutisse toimetada. Linuxis saate kasutada käsku scp. Peal kliendi arvuti jookseme:

Scp viktor@openvpn_server_ip :client-configs/files/client1.ovpn ~/

Kopeerige failist "client1.ovpn". kaugserver oma kohalikku arvutisse.

9. Kliendi konfiguratsioonifailide installimine

Teeme järgmised toimingud ainult Ubuntut kasutavas klientarvutis. Installime OpenVPN-i.

Sudo apt-get värskendus sudo apt-get install openvpn

Kontrollime, kas meie süsteemis on /etc/openvpn/update-resolv-conf fail

Ls /etc/openvpn

Kui me väljastame:

Update-resolve-conf

redigeerime klient1 .ovpn konfiguratsioonifaili, mille me serverist alla laadisime

Nano klient1 .ovpn

Tühistame järgmiste ridade kommentaarid:

Script-security 2 üles /etc/openvpn/update-resolv-conf alla /etc/openvpn/update-resolv-conf

Salvestame ja sulgeme faili.

Proovime nüüd ühendust luua:

Sudo openvpn --config client1 .ovpn

Kui tegite kõik õigesti, loote lõpuks serveriga ühenduse.

Kas soovite oma nutitelefonist või sülearvutist turvalist Interneti-juurdepääsu, kui olete hotelli või kohviku WiFi kaudu turvamata võrku ühendatud? Virtuaalne privaatvõrk (VPN) võimaldab teil kasutada turvamata võrke nii, nagu oleksite eravõrgus. Kogu teie liiklus toimub sel juhul VPN-serveri kaudu.

Koos HTTPS-ühenduse kasutamisega võimaldavad allpool kirjeldatud seaded kaitsta oma privaatset teavet, nagu sisselogimised ja paroolid, aga ka oste. Lisaks saate mööda minna piirkondlikud piirangud ja tsensuur, samuti peita oma asukoht ja krüptimata HTTP-liiklus turvamata võrgu eest.

Profiili saate arvutist telefoni teisaldada, ühendades Android-seade USB kaudu arvutisse ja faili kopeerimiseks. Profiilifaili saate teisaldada ka SD-kaardi abil, kopeerides profiili kaardile ja sisestades kaardi oma Android-seadmesse.

Käivitage rakendus OpenVPN ja klõpsake profiili importimiseks menüüd.

Ühend

Ühenduse loomiseks klõpsake nuppu Ühendage. Teilt küsitakse, kas usaldate OpenVPN-i rakendust. Vasta Okeiühenduse loomiseks. Ühenduse katkestamiseks minge OpenVPN-i rakendusse ja valige Katkesta ühendus.

Samm 13. VPN-ühenduse testimine

Kui kõik on installitud ja konfigureeritud, veendume, et kõik töötab õigesti. Ilma VPN-ühendust loomata avage brauser ja minge DNSLeakTestile.

See sait tagastab teie Interneti-teenuse pakkuja poolt teile määratud IP-aadressi. Selleks, et kontrollida, milline DNS-serverid on kasutusel, klõpsake nuppu Laiendatud test.

Nüüd looge ühendus oma VPN klient ja värskendage lehte oma brauseris. Sulle antud IP-aadress peab olema täiesti erinev. Nüüd kasutate seda uut IP-aadressi kõigi Interneti-kasutajate jaoks. Klõpsake Laiendatud test uuesti oma kontrollimiseks DNS-i seaded ja veenduge, et kasutate nüüd oma VPN-i DNS-serverit.

14. samm: tühistage kliendi sertifikaadid

Aeg-ajalt peate VPN-serverile juurdepääsu takistamiseks kliendi sertifikaadi tühistama

Selleks minge oma sertifitseerimisasutuse kataloogi ja sisestage käsud:

  • cd ~/openvpn-ca
  • allika vars
  • ./revoke-full client3

Selle käsu väljund lõpeb veaga 23. See on normaalne. Selle töö tulemusena luuakse võtmete kataloogi fail crl.pem koos sertifikaadi tühistamiseks vajaliku teabega.

Teisaldage see fail kataloogi /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Lisage faili lõppu rida crl-verify. OpenVPN-server kontrollib sertifikaatide tühistamise loendit iga kord, kui keegi loob serveriga ühenduse.

/etc/openvpn/server.conf

Crl-verify crl.pem

Salvestage ja sulgege fail.

Sertifikaadi tühistamise protsessi lõpuleviimiseks taaskäivitage OpenVPN.

  • sudo systemctl taaskäivitage openvpn@server

Nüüd ei saa klient vana sertifikaadi abil OpenVPN-serveriga ühendust luua.

Täiendavate sertifikaatide tühistamiseks toimige järgmiselt.

    Genereeri uus nimekiri tühistatud sertifikaadid, kasutades kataloogis ~/openvpn-ca käsku allikas vars ja täites käsu revoke-full kliendi nimega.

    Kopeerige uus sertifikaatide tühistamise loend kataloogi /etc/openvpn, kirjutades sellega vana loendi üle.

    Taaskäivitage OpenVPN-teenus.

Seda protseduuri saab kasutada kõigi varem loodud sertifikaatide tühistamiseks.

Järeldus

Palju õnne! Nüüd pääsete turvaliselt Internetti, kogu teie liiklus on kaitstud tsensorite ja sissetungijate pealtkuulamise eest.

Konfigureerimiseks täiendavaid kliente korrake samme 6 Ja 11-13 iga uue seadme kohta. Konkreetse kliendi juurdepääsu tühistamiseks toimige järgmiselt 14 .

Kes tegi minu tööd laiali linkimisel kohalikud võrgud koos. Esimene kogemus oli FreeBSD jaoks serveri seadistamine ja siis, nagu öeldakse, läks see sealt edasi. Praeguseks töötavad peaaegu kõik minu seadistatud serverid Ubuntu Linux või mõni muu versioon.

Ja hiljuti märkasin, et sinna salvestatud rämpsu hulgas /etc/init.d, varitseb tagasihoidlikult nimega skript. "Ja mida?" - küsib kogenud administraator kohe. Asi on selles, et kuni viimase ajani on võrguliideste tõus, sealhulgas TUN, korraldasin eranditult läbi /etc/network/interfaces, toimib valikutega eel-üles OpenVPN-deemoni ja valikute käivitamiseks eel-alla selle peatamiseks. Kõik see “häbi” oli igal pool lahjendatud erinevate marsruutimistabelitega manipuleerivate käskudega... Üldiselt oli tulemus üsna tülikas pilt. Põhimõtteliselt töötas kõik üsna hästi, kuid kuna arendajate poolt on pakutud teistsugune (Ubuntu-viis?) viis, siis miks mitte seda kasutada, eriti kuna see leevendab oluliselt /etc/network/interfaces. Mida ma siis sain?

OpenVPN-i installimine

OpenVPN-i installimine Ubuntule ei nõua kõrvadega mingeid trikke:

$ sudo apt-get install openvpn

Veenduge, et kõik sõltuvused on installitud.

Need, kes soovivad/vajavad OpenVPN-i lähtekoodist installida, peavad sellega tutvuma.

Kui olete huvitatud binaarpaketid teiste platvormide jaoks külastage .

Võtmefailide asukoht

Kuna selles artiklis otsustasin rääkida OpenVPN-i kliendiosa seadistamisest, siis eeldame, et teil on juba krüpteerimisvõtme failid (OpenVPN-serveri administraator andis need teile). Võtmete arv ja tüüp sõltub sellest, kuidas OpenVPN-server, millega ühenduse loote, on konfigureeritud. See artikkel eeldab, et krüptimiseks ja autentimiseks kasutatakse kolme faili:

  • kliendi privaatne krüpteerimisvõti vormingus .pem(nimetagem failiks klient.võti);
  • formaadis sertifitseerimisasutuse poolt allkirjastatud kliendi sertifikaat .pem, (pangem failile nimi klient.crt);
  • serveri sertifikaadi volituse sertifikaat vormingus .pem millega fail allkirjastati klient.crt(nimetagem failiks ca.crt)

Kui olete võtme ja sertifikaadid kätte saanud, veenduge kindlasti nende turvalisuses. Hea otsus kogu see kraam pannakse mälupulgale, krüpteerituna, näiteks . Selles artiklis eeldame, et võtmed ja sertifikaadid asuvad kataloogis /media/keys. Samuti jätke võtme ja sertifikaatidega kataloogile kindlasti minimaalsed juurdepääsuõigused:

$ sudo chown -R root.root /media/keys
$ sudo chmod 0700 /media/keys
$ sudo chmod 0600 /media/keys/*
# ls -la /media/keys
drwx------ 2 juurjuurt 1024 2010-08-18 15:32 .
drwx------ 5 juurjuurt 1024 2010-08-18 15:24 ..
-rw------- 1 juurjuur 1265 2010-08-18 22:27 ca.crt
-rw------- 1 juurjuur 3821 2010-08-18 15:13 client.crt
-rw------- 1 juurjuur 887 2010-08-18 15:13 client.key

Konfiguratsioonifail

OpenVPN-i konfiguratsioonifailid asuvad tavaliselt kataloogis või /usr/local/etc/openvpn. Selles artiklis eeldan, et olete installinud OpenVPN-i Ubuntu hoidlatest ja konfiguratsiooni salvestamise kataloog on .

Kui loote ühenduse OpenVPN-serveriga, mida te pole konfigureerinud, peaks see keegi tavaliselt teile andma "baas" konfiguratsioonifaili, mis sisaldab minimaalselt nõutud parameetrite komplekti. hulgas konfiguratsiooniparameetrid OpenVPN on kliendi hosti jaoks individuaalsed, enamasti teed võtme- ja sertifikaadifailideni, samuti väliste skriptide ja lähtestamisskriptide teed.

Oletame, et server, millega ühenduse loote, kutsutakse myvpnsrv.com. Konfiguratsioonifailidele (mitu ühendust või ühenduse loomiseks mitut võimalust võib neid olla mitu) on üsna mugav nimetada vastavalt serverinimedele. Seega asub meie näites konfiguratsioonifail /etc/openvpn/myvpnsrv.conf järgmise sisuga:

klient
kaugjuhtimispult myvpnsrv.com
ca /media/keys/ca.crt
võti /media/keys/client.key
cert /media/keys/client.crt
deemon
arendaja tune
proto udp
komp-lzo

Esimene rida ütleb OpenVPN-ile, et ühendus on kliendirežiimis.

Parameetri väärtus kaugjuhtimispult määrab serveri hostinime või IP-aadressi.

Parameetrite väärtused ca, võtmed Ja sert määrake vastavalt CA sertifikaadi faili, privaatvõtme ja kliendi sertifikaadi teed.

Määrates parameetri deemon sunnime OpenVPN-i konsoolist eralduma ja taustal töötama.

Parameeter dev määrab võrguliidese tüübi, mida kasutatakse krüptitud liikluse vahetamiseks serveriga. Võib muuta tun või puudutage. Nende kahe liidese tüübi põhimõttelise erinevuse saab välja selgitada.

Parameeter proto määrab protokolli, millesse krüpteeritud liiklus mähitakse. kasutada UDP-d.

Parameetri saadavus komp-lzo sunnib OpenVPN-i liiklust tihendama, mis on väga kasulik, kui teil on "kitsas" andmeedastuskanal.

Marsruutimine ja välised skriptid

OpenVPN võimaldab muuhulgas käivitada väliseid programme pärast käivitamist, samuti enne ja pärast deemoni peatamist. Väga mugav asi, kui tunneli tõstmisel on vaja marsruutimistabelitega nokitseda.

Märkige kohe üks peen punkt. Selleks, et OpenVPN deemon saaks käivitada väliseid programme, peab see olema parameetri edastamisega selgesõnaliselt lubatud skripti turvalisus mille väärtus ei ole väiksem kui 2. Ohutus aga.

Programmi tee määramiseks, mille järel kutsutakse automaatselt võrguliides tõstetakse, kasutage parameetrit üles, edastades selle väärtusena programmi tee ja võimalusel lisaparameetrid.

Välise programmi käivitamiseks pärast võrguliidese lahtiühendamist kasutage parameetrit alla, öeldes loomulikult väljakutsutava programmi tee ja parameetrid. Kui on vaja programm käivitada enne liidese keelamisel määrake ka parameeter alla-eel mingit tähendust.

Nüüd natuke OpenVPN-deemoni välistele programmidele helistamise eripäradest. Fakt on see, et neid ei kutsuta lihtsalt "rumalalt", vaid neile edastatakse veel mõned ühenduse parameetrid, mis on marsruutimistabelitega töötamisel väga mugav.

Välise programmi OpenVPN-deemoni poolt lähtestamise ajal kutsumise vorming tun liides järgmine:

tun_dev tun_mtu link_mtu ifconfig_local_ip ifconfig_remote_ip

  • tun-dev— võrguliidese nimi, näiteks tun1;
  • tun_mtu— võrguliidese MTU;
  • link_mtu— ühendus MTU;
  • ifconfig_local_ip— kliendi IP-aadress (“meie” poolel);
  • ifconfig_remote_ip— kliendi IP-aadress (serveripoolne);
  • selles— edastatakse, kui programmi kutsutakse deemoni käivitumise ajal;
  • Taaskäivita— edastatakse, kui programm kutsutakse välja deemoni taaskäivitamise ajal (näiteks kui ühendus katkes);

Sest puudutage liidest formaat on sama, välja arvatud see, et selle asemel ifconfig_remote_ip edastatud ifconfig_netmask, mis sisaldab alamvõrgu maski, kus meie klient asub.

Samuti tuleb märkida, et kõik parameetrid, mida te läbite väline programm, abiga üles/alla, asendatakse enneülaltoodud parameetrid.

Arvan, et sellest teooriast piisab, asume asja kallale. Oletame, et OpenVPN-deemoni käivitamisel/taaskäivitamisel/peatamisel peate oma hosti marsruutimistabelit kuidagi muutma. Kahe võrguliidese puhul lahendasin selle probleemi järgmise bash-skriptiga:

#!/bin/bash case $(1) in "up") case $(2) in "tun0") ip rule add ... ip route add ... ;; "tun1") ip reegel add ... ip route add ... ;; esac ;; "alla") juhtum $(2) in "tun0") ip reegel del ... ip route del ... ;; "tun1") ip rule del ... ip route del ... ;; esac ;; esac

Ja skripti kutsuvad kaks OpenVPN-i parameetrit:

üles "/usr/local/bin/routes.sh üles"
alla "/usr/local/bin/routes.sh alla"

See tähendab, et käivitatud skript saab ligikaudu järgmised parameetrid:

  • $1 üles või alla;
  • $2 - liidese nimi. Süsteemis, mida ma kaalun, võib see nii olla tun0 või tun1;
  • $3 - näiteks 1500;
  • $4 - näiteks 1542
  • $5 - näiteks 10.8.0.5
  • $6 - näiteks 10.8.0.6
  • $7 selles või Taaskäivita(Seda parameetrit ignoreerin täielikult, nii et marsruutidega manipuleerimine toimub alati, isegi kui võrguliides polnud keelatud, kuid side puudumise tõttu toimus ainult deemoni “regulaarne” taaskäivitamine).

On ütlematagi selge, et saate (ja peaksite) kasutama parameetrite väärtusi 3–6 dollarit. Näiteks kui soovite suunata osa liiklusest läbi VPN-tunneli, võite kasutada midagi sellist:

IP-marsruudi lisamine alates 192.168.0.0/24 $(6) kaudu

kasutades muutujat $6, et määrata ruuteri aadress, mille kaudu liiklus suunata.

Deemoni käivitamine ja peatamine

Tegelikult miks kõik need tantsud väliste stsenaariumide kutsumisega ja vana hea hülgamisega /etc/network/interfaces? Siin on, milles asi.

Avage fail /etc/default/openvpn ja muutujas AUTOSTART määrake kataloogist konfiguratsioonifaili nimi (või mitu, eraldatuna tühikuga), lõigates ära laiendi ".conf". Meie näite puhul näeb see välja järgmine:

AUTOSTART="myvpnsrv"

Või kui soovite, et OpenVPN looks ühendused kõigi leitud konfiguratsioonifailide põhjal:

Nüüd "piisab ühest tabletist" kujul:

sudo teenuse openvpn start

ja skript alates /etc/init.d/openvpn käivitab kõigi leitud konfiguratsioonide jaoks hoolikalt OpenVPN-i.

Deemoni peatamine pole samuti väga keeruline:

sudo teenus openvpn stop

Ja lõpuks. Kui vajate mõnda olemasolevast konfiguratsioonifailid ei töödeldud, piisab, kui määratleda /etc/default/openvpn.

OpenVPN see on kõige võimsam tarkvarapakett avatud lähtekoodiga mis tahes keerukusega VPN-võrkude loomiseks. Ta saavutas tohutu populaarsuse ja Sel hetkel toetab kõiki platvorme. Vastab kõigile ohutuse, töökindluse ja paindlikkuse standarditele. Ainus negatiivne on nõue installida tarkvara kliendi poolele, kuid eelised kaaluvad üles kõik puudused.

OpenVPN-i funktsioonid:

  • Eelseadistatud võti on lihtsaim autentimismeetod.
  • Sertifikaadi autentimine on seadetes kõige paindlikum meetod.
  • Kasutades sisselogimist ja parooli – saab kasutada ilma kliendisertifikaati loomata ( serveri sertifikaat ikka vaja).
  • Liikluse tihendamine lzo abil.
  • Kasutage oma valitud TCP/UDP-protokolli.
  • IP tunneli/Etherneti tunneli kasutamine.

Installimiseks käivitage käsk:

apt-get install openvpn

Peamine autentimismeetod on loomulikult sertifikaat ja sellest me kõigepealt alustame.

Meil on vaja:

  • Serveri sertifikaat, serveri võti (salajane).
  • Kliendisertifikaat, kliendivõti (salajane).
  • Diffie Hellmani võti TLS-i seansi jaoks.
  • CA sertifikaat (serveri sertifikaadi allkirjastamiseks looge sertifitseerimisasutus ja klient, see meetod mugav sertifikaatide haldamiseks).
  • CA võti (väga salajane).
  • Viimane võti TLS-i autentimiseks (HMAC-allkiri).

Ärge kartke kohe, kui te ei ole sertifikaatide osas eriti hea; nad on teie jaoks kõik välja mõelnud. OpenVPN sisaldab skriptide komplekti sertifikaatide genereerimiseks lihtne-rsaasub aadressil /usr/share/easy-rsa/ . Loome kausta ja teisaldame easy-rsa mugavuse huvides kausta /etc/openvpn/easy-rsa.

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa

Ekspordi KEY_SIZE=2048 #Võtme suurus. eksport CA_EXPIRE=3650 #CA sertifikaadi kehtivusaeg, päeva. eksport KEY_EXPIRE=3650 #Sertifikaadi kehtivusaeg, päevad. eksport KEY_COUNTRY="US" #Country export KEY_PROVINCE="CA" #Kasutatakse ainult USA ekspordis KEY_CITY="SanFrancisco" #City export KEY_ORG="Fort-Funston" #Organization export KEY_EMAIL=" [e-postiga kaitstud]" #Server mail. export KEY_OU="Minu organisatsiooniüksus" #Minu üksus.

Ekspordi KEY-d pole vaja muuta, sertifikaatide ja võtmete genereerimise käigus saate andmed käsitsi sisestada. Käivitame skripti kesta ja genereerime CA sertifikaadi:

cd /etc/openvpn/easy-rsa/
allika vars
./puhas-kõik# Kustutab kõik sertifikaadid kaustas /etc/openvpn/keys.
./build-ca

Loome nüüd sertifikaadi ja serveri võtme:

./build-key-server server

Küsimuste jaoks täitke väljad Väljakutse parool: , Valikuline ettevõtte nimi: Vastame N. Allkirjastame tunnistuse Kas allkirjastada sertifikaat? vastame y.

./build-dh

TLS-i autentimisvõti:

openvpn --genkey --salajased võtmed/ta.key

Viimane sihtmärk on kliendivõti ja sertifikaat. Seda saab teha nii serveris kui ka võtme kliendile edastamise kaudu KAITSTUD kanal või genereerimine sees kliendi masin ja allkirjastage see serveri sertifitseerimisasutusega. Lihtsuse huvides genereerime kõik serveris ja edastame seejärel võtme ja sertifikaadi kliendile.

./build-key kasutaja# Kui teil on palju kliente, muudame analoogia põhjal nimed kasutaja1, kasutaja2 jne.

Samuti saate käsuga luua parooliga kaitstud kliendivõtme ./build-key-pass kasutaja.

Klient vajab järgmisi võtmeid:

  • kasutaja.crt
  • kasutaja.võti
  • ca.crt
  • ta.key

Liigume nüüd edasi OpenVPN-i serveri konfiguratsioonifaili seadistamise juurde. Konfiguratsiooni näide on sees /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz, saame selle kopeerida openvpn-iga kausta või luua uue:

nano /etc/openvpn/server.conf

Režiimiserveri port 1194 #Port. proto udp #protokoll. dev tun #Ühenduse tüüp. ca ca.crt #Sertifikaadi tee. cert server.crt võti server.key # Serveri võtme tee. dh dh2048.pem #Path to dh. server 10.0.0.1 255.255.255.0 ifconfig-pool-persist ipp.txt # fail, kuhu salvestatakse "kliendiprofiil, eraldatud IP-aadress" ühendused. Keepalive 10 120 # määrake vastavalt pingi ja pingi taaskäivitamise sekundite arv. comp-lzo #Luba liikluse tihendamise püsivõti #SIGUSR1 signaali vastuvõtmisel või ping-restart käivitamisel ei ole vaja sertifikaate uuesti lugeda, kuna serveril pole piisavalt õigusi persist-tun # Sama ka tunnel. olek openvpn-status.log logi /var/log/openvpn.log tegusõna 3 #Logi üksikasjad 0-11. tls-auth ta.key 0 #tls autoriseerimisšifr AES-256-CBC #ametlikult soovitatav krüpteering või AES-128-CBC. auth SHA512 # Vaikimisi kasutatakse SHA1, mis pole enam nii turvaline. #kliendilt kliendile võimaldab VPN-serveri klientidel omavahel suhelda. max-klientide piirang 5 # maksimaalne arv samaaegselt ühendatud kliendid #Madalamad VPN-serveri õigused suurema turvalisuse tagamiseks, kasutajad ei rühmita ühtegi gruppi

Käivitame serveri ja kui kõik on korras, ilmub tun0 liides:

root@debian:/# teenuse openvpn start (taaskäivitamine)

Probleemide ilmnemisel vaadake logi ja selgitage välja:

Journalctl | grep ovpn-server

Nüüd peame konfigureerima kliendi serveriga ühenduse loomiseks. Näitena näitan Windowsi seadistust. Esmalt laadige ametlikult veebisaidilt (https://openvpn.net/) alla klient ise. Pärast installimist peame tegema konfiguratsioonifaili, mis näeb välja nagu *.ovpn ja saate selle luua mis tahes tekstiredaktoris.

klient.ovpn :

Kliendi proto udp port 1194 dev tun remote 192.168.0.1 #OpenVPN serveri aadress. ca ca.crt cert client.crt võti client.key tls-auth ta.key 1 auth SHA512 šifr AES-256-CBC comp-lzo

Võimalik, et peate pääsema Internetti VPN-i kaudu. Selleks peate lubama serveris edastamise:

Lubame kernelis edastamise, failis /etc/sysctl.conf eemaldame rea kommentaarid:
net.ipv4.ip_forward=1

Et mitte taaskäivitada, teavitame kernelit, et edastamine on lubatud:
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Nüüd peame veel konfigureerima iptables NAT-pakettide läbimiseks:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASKERAAD

Peate OpenVPN-i konfiguratsioonifaili lisama:

Suruge "ümbersuunamislüüs" # pärast edukat ühenduse loomist serveriga, kliendile installitakse VPN-serverist uus vaikelüüs. vajuta "dhcp-option DNS 8.8.8.8" # saada DNS-aadress server.

See lõpetab põhiseadistuse. Nautige selle kasutamist.