Virtuaalne privaatvõrk. Tema abiga saame:
- Looge turvaline suhtluskanal, kui koos istume tasuta WiFi-ühendus kohvikus.
- Vahetage faile võrgus osalejate vahel.
- Levitage Internetti ühise lüüsi abil.
Peamised eelised:
- Lihtne seadistada.
- Ohutus.
- Ei vaja lisavarustust.
- Suur kiirus ja stabiilsus.
Nagu OpenVPN-i Linuxi installimist käsitleva artikli autor, ei leidnud ma tavalist artiklit ja isegi sellist, mis kirjeldaks kõike pisidetailideni. Selles Habrahabri artiklis püüan kõike võimalikult selgelt selgitada. Niisiis, lähme!
Laadige distributsioon alla.
Kirjutamise ajal saadaolev versioon 2.3.2 . Laadi alla Windowsi installija 32- või 64-bitine versioon, olenevalt teie operatsioonisüsteemi biti suurusest.
Paigaldamine.
Installimisel märkige kindlasti kõik ruudud, millele vastame draiveri installimise küsimusele. Süsteemi ilmub uus virtuaalne võrguadapter.
Sertifikaatide ja võtmete koostamine.
Kunagi peatas see punkt mind, öeldakse, et noh, need on võtmed, ma lähen ja otsin midagi lihtsamat. Aga kahjuks ma ei leidnud midagi paremat. Niisiis, minge C:\Program files\OpenVPN\easy-rsa, käivitage init-config.bat, ilmub vars.bat, avage see Notepadis. Meid huvitavad allosas olevad read, mis tuleb vastavalt soovile täita. Näiteks:
määra KEY_COUNTRY=RU
set KEY_PROVINCE=Baldur
set KEY_CITY=Piter
set KEY_ORG=OpenVPN
seatud
määra KEY_CN=server
määra KEY_NAME=server
määra KEY_OU=ouou
Kus on kirjas serverära puutu. Salvestatud.
Nüüd avage openssl-1.0.0.cnf ja otsige rida default_days 365, määrake selle väärtuseks 3650. See pikendab meie sertifikaatide eluiga 10 aasta võrra. Salvesta. Järgmisena avame käsurida Start-standard-käsurea (Windows Vista/7/8 puhul administraatorina) kirjutage järjestikku:
cd C:\OpenVPN\easy-rsa
vars
kõik puhas
Vastuses tuleks kaks korda kirjutada "Failid kopeeritud: 1". Nii et kõik on korras. Samas aknas kirjutame:
build-dh
Loob Diffie-Hellmani võtme.
ehitada-ca
Loob esmase sertifikaadi.
Esitatakse küsimusi, vajutage lihtsalt sisestusklahvi, kuni näete teed C:\Program files\OpenVPN\easy-rsa. Järgmisena tippime:
build-key-server
Küsimuste korral vajutage ka Enter, võtke lihtsalt aega! Lõpus on kaks küsimust: "Kas allkirjastada sertifikaat?" ja "1-st sertifikaaditaotlused on sertifitseeritud, kinnitage?", vastake mõlemale küsimusele Y Nüüd loome kliendi sertifikaadi:
ehitusvõtme klient
Siin peate olema ettevaatlikum, kui teilt küsitakse üldnime (nt teie nimi või serveri hostinimi), peate sisestama kliendi. Lõpus on ka kaks korda Y. Iga kliendi jaoks tuleb luua uus sertifikaat, ainult erineva nimega, näiteks build-key client1 ja märkida see ka üldnimetuses. Kui tegite kõik õigesti, võite välja hingata! Raskeim osa on möödas. Kaustas C:\Program Files\OpenVPN\easy-rsa\keys võtame: ca.crt, dh1024.pem, server.crt, server.key ja paneme need kausta C:\Program Files\OpenVPN\config.
Loome konfiguratsioone.
Avage C:\Program Files\OpenVPN\config, looge tekstidokument, sisestage:
# Tõstke L3 tunnel üles
arendaja tune
# Protokoll
proto udp
# Port, mida VPN kuulab
port 12345
# Võtmed ja sertifikaadid
caca.crt
sert server.crt
võtmeserver.võti
dh dh1024.pem
# Jämedalt öeldes salvestame aadressid
topoloogia alamvõrk
# Aadressikogum
server 10.8.0.0 255.255.255.0
# Krüpteerimismeetod
šifr AES-128-CBC
# Kompressioon
komp-lzo
# Parandage pingi veidi
mssfix
# Klientide eluiga, kui neile ei vastata - katkeb ühendus
ellu jääma 10 120
# Silumise tase
tegusõna 3
Salvestage fail nimega server.ovpn. See on meie serveri konfiguratsioon. Proovime nüüd serverit käivitada. Töölauale ilmub otsetee OpenVPN Gui. Pärast käivitamist ilmub salve punane ikoon. Klõpsame sellel kaks korda, kui see põleb roheliselt, siis on kõik korras, kui mitte, siis vaata logi kaustast logi.
Nüüd on kliendi konfiguratsioon:
klient
arendaja tune
proto udp
# Serveri aadress ja port
kaugaadress 12345
# Võtmed peavad olema konfiguratsioonikaustas
caca.crt
sert klient.crt
võtmeklient.võti
šifr AES-128-CBC
nobind
komp-lzo
püsiklahv
püsima-tun
tegusõna 3
Salvestage see kui client.ovpn. Looge suvaline kaust ja pange sinna client.ovpn config ja ca.crt, client.crt, client.key sertifikaadid, mis asuvad kaustas C:\Program files\OpenVPN\easy-rsa. Laadige alla Windowsi jaoks mõeldud klient kliendi masin installige, teisaldage kaust koos konfiguratsiooni ja sertifikaadiga ning käivitage client.ovpn. Kui olete ühenduses, proovige sisestada käsureale ping 10.8.0.1. Kas pakid on kohale jõudnud? Palju õnne! Server on valmis! Nüüd minge juhtpaneel-haldusteenused, otsige sealt OpenVPN, tehke topeltklõps ja seadke see automaatseks. Nüüd käivitub server pärast taaskäivitamist iseseisvalt.
Lõpetame konfiguratsiooni või igaühele oma.
Nüüd räägin teile, kuidas levitada Internetti ja muid seadistamisega seotud pisiasju. Alustame pisiasjadest. Teeme kõik manipulatsioonid serveri konfiguratsiooniga.
Kui soovite, et teie kliendid üksteist “nähaksid”, s.t. saaks teavet vahetada, seejärel sisestage konfiguratsioon
kliendilt kliendile.
Kui soovite klientidele väljastada staatilisi aadresse, looge konfiguratsioonikaustas fail ip.txt ja sisestage see konfiguratsiooni kausta
ifconfig-pool-persist ip.txt
Kas te ei soovi kõigile sertifikaate luua? Siis kirjutame duplicate-cn, kuid pange tähele, et ifconfig-pool-persist selle valikuga ei tööta.
Nüüd kliendi konfiguratsioonist. Sertifikaadifaile ei saa üle kanda, vaid sisestada need otse konfiguratsiooni, kuid parem on seda teha mitte märkmikust, vaid näiteks AkelPadist või Notepad++-st. Avage ca.crt ja valige ——ALGUS SERTIFIKAATI—— kuni ——END CERTIFICATE——. Konfiguratsioon näeb välja selline:
——ALGUSE SERTIFIKAAT——
tunnistus
——LÕPUSERTIFIKAAT——
——ALGUSE SERTIFIKAAT——
tunnistus
——LÕPUSERTIFIKAAT——
——ALUSTAGE ERAVÕTI——
võti
——LÕPETA ERAVÕTI——
Me levitame Internetti
Selleks sisestage serveri konfiguratsioon:
vajuta "redirect-gateway def1"
vajuta "dhcp-option DNS 8.8.8.8"
vajuta "dhcp-option DNS 8.8.4.4"
Asendame seadetes antud DNS-aadressid. Saate seda vaadata paneeli minnes haldus-võrgu ühendused, topeltklõpsates adapteril, mis otsib Internetti. Win7 juhtpaneeli jaoks – Võrk ja Internet Võrgu- ja ühiskasutuskeskus – muutke adapteri sätteid. Järgmisena minge sama adapteri atribuutidele, juurdepääsu vahekaardile, märkige ruut "Luba teistele võrgukasutajatele..." ja ripploendist, kui see on saadaval, valige virtuaalne vpn-adapter. Seejärel minge vpn-adapteri atribuutide, ipv4 atribuutide juurde ja määrake vastuvõttev ip ja dns automaatselt. Täname tähelepanu eest!
RTU seeria ruuteritel on võimalus kasutada turvalist ühendust privaatse kaudu virtuaalne võrk, kutsus OpenVPN
Seadistamise ja seadistamise protsess sellest paketist tavakasutajale võib sellega kaasneda päris palju raskusi vajalike teadmiste puudumise tõttu.
Peaaegu kogu konfiguratsiooni saab teha selle kaudu WEB-liides, kuid mõned elemendid tuleb siiski teha konsooli kaudu!
Mis on OpenVPN ja miks seda vaja on, leiate Wikipedia artiklist: OpenVPN
Selles artiklis tutvume ettevalmistava osaga, see on sertifikaatide ja krüpteerimisvõtmete genereerimine meie edastuskanali kaitsmiseks.
1. Sertifikaatide ja võtmete genereerimine Windowsis
Sertifikaatide ja krüpteerimisvõtmete loomiseks Windows OS-is peate installima rakenduse enda OpenVPN
Pärast selle allalaadimist ja installimist teie määratud kausta sisaldab see failide loendit. Minu jaoks on see kaust C:\Program Files\OpenVPN\
Peame minema kausta lihtne-rsa
Vaja avada Windowsi konsool(Windows Vista/7/8/8.1/10 puhul peate käivitama administraatorina)
Saate teada, kuidas administraatorina käsurida (konsooli) käivitada, sisestades otsingumootorisse (Yandex, Google, Mail jne) fraasi: " Kuidas käivitada käsurida administraatorina"
Minge kausta lihtne-rsa käsuga mööda paigaldusteed CD
Näiteks:
cd C:\Program Files\OpenVPN\easy-rsa
1.1 Käivitage fail init-config.bat
C:\Program Files\OpenVPN\easy-rsa>init-config.bat
C:\Program Files\OpenVPN\easy-rsa>kopeeri vars.bat.sample vars.bat
Kopeeritud failid: 1.
Fail kuvatakse kaustas vars.bat, avage see tekstiredaktor, meid huvitavad päris lõpus olevad read, need tuleb täita
Oleme oma parameetrid määranud, teie parameetrid on erinevad.
seatud
KEY_COUNTRY= RU
määra KEY_PROVINCE= Moskva
määra KEY_CITY= Moskva
määra KEY_ORG= TELEOFIS
määra KEY_EMAIL= [e-postiga kaitstud]
määra KEY_CN= server
määra KEY_NAME= server
määra KEY_OU= server
määrake PKCS11_MODULE_PATH= server
määrake PKCS11_PIN= 12345
Kui on kirjas server, ärge puudutage seda. Salvestage fail.
Leidke rida default_days 365 ja asendage number 365 numbriga 3650. Seda tehes pikendame oma sertifikaatide eluiga 10 aasta võrra.
Salvesta ja sulge.
1.3 Võtmete genereerimine
Kirjutame konsooli käsud
vars
kõik puhas
Vastus peaks tulema
Kopeeritud failid: 1.
Kopeeritud failid: 1.
Kui me seda näeme, siis on kõik korras, jätkame...
Diffie-Hellmani võtme loomine
build-dh
Looge esmane sertifikaat
ehitada-ca
Põhisertifikaadi genereerimisel kuvatakse konsoolis küsimused. Vajutage lihtsalt sisestusklahvi, sest... Sisestasime kõik need parameetrid faili vars.bat
Vajutage sisestusklahvi, kuni kuvatakse viipa
C:\Program Files\OpenVPN\easy-rsa
build-key-server
Küsimuste korral vajutage ka Enter, kuid võtke aega, päris lõpus esitatakse kaks küsimust
Kas allkirjastada sertifikaat?
Vastame mõlemale küsimusele Y.
Nüüd loome sertifikaadi ja kliendivõtme:
ehitusvõtme klient
Samuti võtame aega vastustega niipea, kui näeme joont " Üldnimi (nt teie nimi või serveri hostinimi)"vajab vastata klient
Päris lõpus on ka kaks küsimust, vastame ka Y-le
Lisaks: iga kliendi jaoks peate looma eraldi võtmed ja neile nime andma klient1, klient2 või mõnel muul viisil, kõik sõltub teie kujutlusvõimest. Ärge unustage sisestada ka need nimed, kui teil palutakse Üldnimetus
Näiteks:
ehitusvõtme klient1
ehitusvõtmega kontor1
Kõik failid jäävad kausta C:\Program Files\OpenVPN\easy-rsa\keys\
Sellest kaustast võtame:
dh1024.pem(või dh2048.pem)
server.crt
server.key
2. Sertifikaatide ja võtmete genereerimine Linuxis
Toodame sertifikaatide ja võtmete genereerimise näite aadressil operatsioonisüsteemi Ubuntu Linux 16.04 LTS
Teiste Linuxipõhiste süsteemide puhul võivad mõned käsud erineda!
Avage operatsioonisüsteemi konsool ja installige väike pakett lihtne-rsa
sudo apt-get install easy-rsa
Minge kataloogi, kuhu sertifikaadi genereerimise pakett installiti
cd /usr/share/easy-rsa/
Ainuke hetk see kaust Kirjutada saab ainult superkasutaja, et meil tulevikus probleeme ei tekiks, vahetame omanikku (Ära jäta vahele punkti käsu lõpus!!!)
sudo chown -R teleofis:teleofis .
Nüüd konfigureerime teavet loodavate sertifikaatide kohta
nano vars
Leiame need punktid ja muudame neid enda jaoks sobivaks
eksport KEY_SIZE=1024 // Võtme pikkus
eksport CA_EXPIRE=3650 // Põhivõtme kehtivusaeg päevades
eksport KEY_EXPIRE=3650 // Sertifikaadi kehtivusaeg päevades
eksportida KEY_COUNTRY="RU" // Riik
eksport KEY_PROVINCE="Moskva" // Piirkond
eksportida KEY_CITY="Moskva" // Linn
eksport KEY_ORG="TELEOFIS" // Organisatsioon
eksportida KEY_EMAIL=" [e-postiga kaitstud]"
// Meil
eksportida KEY_OU="server" // Osakond
eksportida KEY_NAME="server"// Võtme nimi
Pärast redigeerimist salvestage fail.
Kopeerige uusim OpenSSL-i konfiguratsioon faili openssl.cnf
cp openssl-1.0.0.cnf openssl.cnf
Muutujate laadimine
allikas ./vars
Igaks juhuks koristame prügi ära.
./puhas-kõik
Looge serveri sertifikaat
./build-ca
Kõigi küsimuste korral vajutage sisestusklahvi, muutsime failis kõiki neid parameetreid eelnevalt vars
.........................................++++++
.......................................................................................++++++
uue privaatvõtme kirjutamine faili "ca.key"
-----
-----
Üldnimi (nt teie nimi või serveri hostinimi):
Nimi:
E-posti aadress:
Looge serveri võti
./build-key-server server
Vastame kõikidele küsimustele sisestusklahviga, kuid peate olema ettevaatlik, sest lõpus on mitu küsimust parooli ja valikulise nime kohta
Samuti päringuteks
Kas allkirjastada sertifikaat?
1 sertifikaaditaotlusest 1-st on kinnitatud, kas siduda?
Vastame Y
1024-bitise RSA privaatvõtme genereerimine
..............................++++++
.....................++++++
uue privaatvõtme kirjutamine serverisse "server.key"
-----
Teil palutakse sisestada lisatav teave
oma sertifikaaditaotlusesse.
Seda, mida kavatsete sisestada, nimetatakse eristavaks nimeks või keeldumiseks.
Põlde on päris palju aga sa saad jätke osa tühjaks
Mõne välja jaoks on vaikeväärtus,
Kui sisestate ".", jäetakse väli tühjaks.
-----
Riigi nimi (kahetäheline kood):
Osariigi või provintsi nimi (täisnimi):
Asukoha nimi (nt linn):
Organisatsiooni nimi (nt ettevõte) :
Organisatsiooniüksuse nimi (nt jaotis) :
Üldnimi (nt teie nimi või serveri hostinimi):
Nimi:
E-posti aadress:
Sisestage järgmised "lisa" atribuudid
saata koos teie sertifikaaditaotlusega
Väljakutse parool:
Valikuline ettevõtte nimi:
Konfiguratsiooni kasutamine failist /usr/share/easy-rsa/openssl-1.0.0.cnf
Kontrollige, kas taotlus vastab allkirjale
Allkiri ok
Subjekti eristav nimi on järgmine
countryName:PRINTABLE:"RU"
osariik või provintsinimi:PRINTABLE:"Moskva"
paikkonnanimi:PRINTABLE:"Moskva"
organisatsiooniNimi: PRINTABLE:"TELEOFIS"
OrganizationUnitName:PRINTABLE:"server"
commonName:PRINTABLE:"server"
nimi:PRINTITAB:"server"
meiliaadress:IA5STRING:" [e-postiga kaitstud]"
Sertifikaat peab olema sertifitseeritud kuni 20. detsembrini 13:25:10 2026 GMT (3650 päeva)
Kas allkirjastada sertifikaat? :y
1 sertifikaaditaotlusest 1-st on kinnitatud, kas siduda? y
Kirjutage välja andmebaas 1 uue kirjega
Andmebaasi uuendatud
Diffie-Hellmani võtme loomine
./build-dh
Tähelepanu!!! Faili saab genereerida kaua aega, ootame põlvkonna lõppu.
DH parameetrite genereerimine, 1024 biti pikkune ohutu algus, generaator 2
See võtab kaua aega
.......+................+.............+.............................................................................+................+........................+...........................................+...............................................................................................................................................+....................+........................................+...................................................................................+....................................................................................................................+.+...................................++*++*++*
Kliendivõtmeid loome samamoodi
./build-key klient1
./build-key rtu968
Kõigile küsimustele vastame sisestusklahviga, kuid olge lõpus ettevaatlik, taotlusi tuleb veelgi
Kas allkirjastada sertifikaat?
1 sertifikaaditaotlusest 1-st on kinnitatud, kas siduda?
Vastame neile Y
See lõpetab sertifikaadi ja võtmefailide loomise.
Kaustas /usr/share/easy-rsa/keys/ meie sertifikaadid ja võtmed on seal
dh1024.pem(või dh2048.pem)
server.crt
server.key
3. Lisavalikud
Ühenduse turvalisuse suurendamiseks on ka täiendavaid võtmeid ja meetodeid.
3.1 TLS-i autentimise võti
Loodud käsuga:
openvpn --genkey --salajane %KEY_DIR%\ta.key- Windows
Linuxi jaoks vajate kogu OpenVPN-i paketti, ainult paketti lihtne-rsa sellest ei piisa!
Installige täielik pakett OpenVPN-i saab teha käsuga
sudo apt-get install openvpn
openvpn --genkey --secret /usr/share/easy-rsa/keys/ta.key- Linux
3.2 Sertifikaatide kontrollimine ja kehtetuks tunnistamine
Saame ka luua lisafail crl.pem, mille kaudu sertifikaate kontrollitakse ja tühistatakse.
Te ei pea seda faili kasutama, midagi hullu ei juhtu.
Selle kasutamiseks looge kasutajasertifikaat:
build-key crlsert – Windows
./build-key crlsert – Linux
Kõigile küsimustele vastame vajutades Enter, v.a Üldnimetus Ja Nimi
Nende väljade jaoks märgime sertifikaadi enda nime.
Ja lõpuks taotluste juurde Kas allkirjastada sertifikaat? , 1 sertifikaaditaotlusest 1-st on kinnitatud, kas siduda? Vastame Y
Pärast seda käivitame käsu tühista-täis, vastutab ta sertifikaadi kehtetuks tunnistamise ja sellele järgneva faili loomise eest crl.pem
revoke-full crlsert – Windows
./revoke-full crlsert – Linux
Sertifikaadi failid ise crlsert saab kustutada. Pärast tühistamist ei eemaldata neid automaatselt kaustast.
See lõpetab võtmete loomise.
Liigume edasi järgmise artikli juurde:
Lisainfo.
OpenVPN on rakendus turvalise IP tunneli loomiseks läbi ühe UDP - ehk TCP Ports - pordi 1194. Juhtkanali ja andmevoo turvalisuse tagamiseks kasutab OpenVPN OpenSSL teeki (täpsemalt SSLv3 / TLSv1 protokolle), s.o. Kõik OpenSSL-i teegi krüpteerimis-, autentimis- ja sertifitseerimisvõimalused on saadaval (mis tahes šifr, võtme suurus). Selle tagamiseks saab kasutada ka OpenVPN-i pakettide autoriseerimise HMAC-algoritmi rohkem turvalisust, Ja riistvaraline kiirendus krüptimise jõudluse parandamiseks.
OpenVPN-i kasutatakse Solarises, OpenBSD-s, FreeBSD-s, NetBSD-s, GNU/Linuxis, Apple Mac OS X ja Microsoft Windows.
OpenVPN pakub kasutajale mitut tüüpi autentimist:
Eelseadistatud klahv on lihtsaim meetod.
Kasutades sisselogimist ja parooli, saab seda kasutada ilma kliendisertifikaati loomata ( serveri sertifikaat ikka vaja).
OpenVPN saab kasutada staatilisi, eeljagatud võtmeid või TLS-põhist dünaamilist võtmevahetust. Samuti toetab VPN-ühendused dünaamiliste kaughostidega (DHCP või sissehelistamiskliendid), tunnelitega NAT-i kaudu või täisvõrgu kaudu tulemüür(nt Linuxi iptablesi reeglid).
Kliendi konfiguratsioonifaili sätted on nii Linuxi kui ka Windowsi süntaksi ja kirjutamise osas identsed.
OpenVPN-i võrgukomponendid
Peamised OpenVPN-i võrgukomponendid ja objektid
CA sertifitseerimisasutus. Väljastab VPN-võrgu sõlmede nõudmisel sertifikaate, mis on allkirjastatud sertifitseerimisasutuse sertifikaadiga. Pakub VPN-i hostidele autentimise osapoole kontrollimiseks oma sertifikaati. Haldab CRL-i sertifikaatide tühistamise loendit.
OpenVPN server. OpenVPN-i serveritarkvara loob sees tunneli turvamata võrk, näiteks Internet. See tunnel pakub turvalist krüptitud liiklust OpenVPN-võrgu partnersõlmede vahel.
OpenVPN-i klient. OpenVPN-i klienditarkvara on installitud kõikidesse sõlmedesse, mis nõuavad OpenVPN-serveriga turvalist sidekanalit. OpenVPN-serveri sobiva konfiguratsiooniga on turvaline andmeedastus võimalik OpenVPN-i klientide vahel, mitte ainult klientide ja OpenVPN-serveri vahel.
Sertifikaadid (avalikud võtmed) X.509. X.509 sertifikaadid on avalikud võtmed, mille on sertifitseerinud CA. Neid kasutatakse andmete krüptimiseks. Tõsiasi, et sertifikaat on sertifitseeritud CA poolt, võimaldab tuvastada krüptitud andmeid edastava osapoole. Võrgusõlmedes luuakse sertifikaadipäringu fail, seejärel edastatakse see sertifitseerimisasutuse sõlme ja allkirjastatakse seal. Saadud allkirjastatud sertifikaat kantakse tagasi OpenVPN-i võrgusõlme, mis seda taotles.
Privaatsed võtmed. Privaatvõtmed on salajased. Need tuleb luua ja salvestada OpenVPN-võrgu igas sõlmes, need on mõeldud andmete dekrüpteerimiseks ja neid ei tohiks kunagi võrgu kaudu edastada. Privaatvõtmed luuakse OpenVPN-i võrgusõlmedes samaaegselt sertifikaaditaotluse failiga.
CRL-i sertifikaatide tühistamise loend. Sisaldab usalduse kaotanud sertifikaatide loendit. See luuakse ja redigeeritakse CA-sõlmes. Sõlme võrgust lahtiühendamiseks lisage lihtsalt selle sertifikaat CRL-i. Pärast loomist ja iga muudatust kantakse CRL-loend OpenVPN-i serveritesse.
Diffie-Hellmani fail. Seda kasutatakse enne vargust salvestatud liikluse dekrüpteerimist võtmevarguse korral. Loodud OpenVPN-i serveris.
Turvalisus ja krüpteerimine
OpenVPN-i turvalisust ja krüptimist pakuvad OpenSSL-i teegi kasutamine ja TLS-i (Transport Layer Security) protokoll. OpenVPN-i uute versioonide OpenSSL-i asemel saate kasutada PolarSSL-i teeki. TLS-protokoll on Secure Socket Layers kihi turvalise andmeedastusprotokolli (SSL-sertifikaadid veebisaitidele, meilidele) täiustus.
OpenSSL võib kasutada sümmeetrilist ja asümmeetrilist krüptograafiat.
Esimesel juhul on enne andmeedastuse alustamist vaja sama paigutada salajane võti. See tekitab probleemi ohutu ülekandmine seda võtit ebaturvalise Interneti kaudu.
Teisel juhul on igal andmevahetuses osalejal kaks võtit – avalik (avatud) ja privaatne (salajane).
Avalikku võtit kasutatakse andmete krüptimiseks ja privaatvõtit dekrüpteerimiseks. Krüpteerimine põhineb üsna keerulisel matemaatikal. SSL/TLS-is valitud avaliku võtmega krüpteerimisalgoritm annab võimaluse dekrüpteerida ainult privaatvõtme abil.
Privaatvõti on salajane ja peab jääma sõlme, millel see loodi. Avalik võti tuleb edastada andmevahetuses osalejatele.
Turvaliseks andmeedastuseks on vaja tuvastada andmevahetusega seotud osapooled. Vastasel juhul võite saada nn "mees-keskel rünnaku" ohvriks (Man in keskmine, MITM). Sellise rünnaku ajal loob ründaja ühenduse andmeedastuskanaliga ja kuulab seda pealt. Samuti võib see andmeid segada, kustutada või muuta.
Autentimise tagamiseks (kasutaja identiteedi kontrollimiseks) kasutab TLS-protokoll infrastruktuuri avalikud võtmed(Public Key Infrastructure, PKI) ja asümmeetriline krüptograafia.
Peate mõistma, et andmete dekrüpteerimine ilma privaatvõtmeta on võimalik ka näiteks toore jõu abil. Kuigi see meetod on arvutusmahukas, on andmete dekrüpteerimine vaid aja küsimus.
Kuigi võtme suurus mõjutab dekrüpteerimise raskust, ei taga ükski võti täielikku andmete turvalisust. Lisaks on võimalik juba dekrüptitud andmete ja võtmete vargus operatsioonisüsteemi või rakendustarkvara haavatavuste ja järjehoidjate tõttu, samuti riistvara serverid ja tööjaamad.
Andmete krüpteerimine suurendab liiklust ja aeglustab sidet. Mida pikemat võtit andmete krüpteerimiseks kasutatakse, seda keerulisem on selle leidmine, kuid seda märgatavam on andmevahetuse aeglustumine.
OpenVPN Debian Wheezy/sid
# aptitude install openvpn # mkdir /etc/openvpn/easy-rsa # cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
Sertifikaatide vaikeseadete muutmine
# nano /etc/openvpn/easy-rsa/vars ... eksport KEY_COUNTRY="US" eksport KEY_PROVINCE="CA" eksport KEY_CITY="SanFrancisco" eksport KEY_ORG="Fort-Funston" eksport KEY_EMAIL=" [e-postiga kaitstud]"
Loome keskkonnamuutujad bash , kui seda ei tehta, võetakse kliendivõtmete genereerimisel muutujad failist /etc/openvpn/easy-rsa/openssl.cnf, mitte failist vars
# cd /etc/openvpn/easy-rsa # allikas ./vars MÄRKUS. Kui käivitate faili ./clean-all, teen failis /etc/openvpn/easy-rsa/keys # ./clean- rm -rf kõik # ./build-dh
Loome serverile nimega vpnspar sertifikaadi
# ./pkitool --initca # ./pkitool --server vpnspar
Loome sertifikaadi kliendile nimega farm1c. Igale kliendile eraldi võti.
# ./pkitool farm1c # mkdir /etc/openvpn/keys # cp keys/ca.crt /etc/openvpn/keys # cp keys/dh1024.pem /etc/openvpn/keys # cp keys/vpnspar.crt /etc/openv /keys # cp keys/vpnspar.key /etc/openvpn/keys
ccd kataloog salvestab individuaalsed seaded iga kliendi jaoks. Faili nimi peab ühtima loodud kliendisertifikaadi nimega. Kliendi konfiguratsioonifailid on tekstifailid ja sisaldavad käske, mida server käivitab klientide ühenduse loomisel. Tavaliselt sisaldab kliendifail järgmisi käske:
lisab marsruudi keskkontori kliendi kohalikku alamvõrku (tõuke "marsruut 192.168.1.0 255.255.255.0")
määrab kliendi taga asuva kohaliku alamvõrgu aadressi (näiteks iroute 192.168.2.0 255.255.255.0)
sidumine staatilise IP-ga (ifconfig-push 192.168.14.21 192.168.14.22), kus ifconfig-push
server.conf
Seadistage server failis server.conf
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ # gunzip server.conf.gz # nano /etc/openvpn/server.conf server.conf local xxx.196.98.xxx # IP, millel server kuulab sissetulevaid sõnumeid port 1194 # port, mille kaudu server kuulab sissetulevaid sõnumeid proto udp dev tun # Lubage OpenVPN-i haldusliides. Juurdepääs telnet localhost 7505 kaudu haldus localhost 7505 ca võtmed/ca.crt # iseallkirjastatud usaldusväärse sertifikaadi (CA) asukoht cert keys/vpnspar.crt # serveri sertifikaadi asukoht võtmeklahvid/ vpnspar.key # serveri privaatvõtme asukoht dh võtmed/ dh1024.pem # Diffie-Halmani parameetrifaili asukoht # Serverirežiimi ja VPN-võrgu aadressi seadistamine, #, kust OpenVPN jagab klientidele aadresse. # Server võtab 192.168.14.1, # muud aadressi on klientidele saadaval. # Iga klient saab serveriga ühendust võtta numbril 192.168.14.1. server 192.168.14.0 255.255.255.0 # fail ipp.txt salvestab teabe ühenduse kohta, näiteks ühenduse tõrke korral # ja selle edasine taastamine ifconfig-pool-persist ipp.txt # marsruuti, mis saadetakse igale kliendile. # push – OpenVPN-i käsk, mis saadetakse kliendile ja mille klient täidab # (V antud juhul lisage kaks marsruuti virtuaalsesse privaatvõrku kliendi poolel) suruma "marsruut 192.168.1.0 255.255.255.0" suruma "marsruut 192.168.35.0 255.255.255.0" # Suunake vaikelüüs ümber VPN-serverisse. Kui pole vaja, kommenteerige või # lisa konkreetse kliendi jaoks ccd-le vajuta "redirect-gateway def1" # näitab, kuhu kliendi IP-aadressi seadetega failid salvestatakse client-config-dir ccd # lisage serveri-kliendi marsruut. # marsruut – lisab serveripoolsed marsruudid klientide taga asuvatesse kohalikesse alamvõrkudesse marsruut 192.168.14.0 255.255.255.252 # võimaldavad OpenVPN-serveriga ühendatud klientidel omavahel suhelda kliendilt kliendile # Tervisekontrolli direktiiv, sealhulgas saatmine # pingilaadset sõnumit edasi-tagasi kaudu # ühendus, et kumbki pool teaks, millal # teine pool kaob ootamatult (alla läinud). # Ping iga 10 sekundi järel, eeldades, et kaugjuhtimispult # sõlm on kättesaamatu, kui ei ole vastu võetud ühte pingi ajavahemiku kohta # võrdub 120 sekundiga. Keepalive 10 120 comp-lzo max-kliendid 10 kasutajat ei keegi grupp nogroup persist-key persist-tun # Kuvatakse väikese olekufaili sisu # praegust ühendust, kärbitud # ja kirjutatakse kord minutis ümber. status / var/ log/ openvpn-status.log log / var/ log/ openvpn.log tegusõna 3 # silumise tase# /etc/init.d/openvpn algus
Tühista kliendi sertifikaat
Näide. Kasutajasertifikaadi tühistamine farm1c # cd /etc/openvpn/easy-rsa # allikas ./vars # ./revoke-full farm1c Konfiguratsiooni kasutamine failist /etc/openvpn/easy-rsa/openssl.cnf Sertifikaadi tühistamine 02. Andmebaasi värskendamine
Pärast käsku revoke-full muudetakse farm1c kasutajasertifikaadile vastav rida failiks /etc/openvpn/easy-rsa/keys/index.txt.
OpenVPN + OpenVZ installimine
Paigaldamine VE (VPS, VDS)
VE Ubuntu installimine OpenVZ jaoks # cd /vz/template/cache/ # wget -c http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz # vzctl create 111 --layout simfs --ostemplate ubuntu-14.04-x86_64-minimaalne CT konfiguratsioon salvestati kausta /etc/vz/conf/111.conf
VE 111.conf konfigureerimine.
Kõik muud sätted tehakse juba installitud VE-s # vzctl sisestage 111
Võtmete loomine
Võtmete loomine Easy-RSA utiliidi abil. Varem oli see utiliit OpenVPN-i serveri distributsiooni osa, kuid nüüd on see eraldi projekt. Utiliidi uusima versiooni saab alla laadida OpenVPN-i veebisaidilt, kuid õigem on kasutada teie OS-i distributsiooniga kaasas olevat versiooni. aptitude install easy-rsa
Enne OpenVPN-deemoni käivitamist vajame OpenSSL-i konfiguratsioonifaili kataloogis /etc/openvpn/keys; server.conf - OpenVPN-i serveri konfiguratsioonifail; ca.crt - sertifitseerimisasutuse sertifikaat; vpn-server.crt – OpenVPN-i serveri sertifikaat; server.key - OpenVPN-serveri privaatvõti, salajane; crl.pem - sertifikaatide tühistamise nimekiri; dh.pem – Diffie-Hellmani fail liikluse kaitsmiseks dekrüpteerimise eest; ta.key – HMAC-võti jaoks lisakaitse DoS rünnakute ja üleujutuste eest
Kopeerige easy-rsa kataloog kohta, kus loome avaliku võtme infrastruktuuri (PKI) cp -R /usr/share/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa
Vars-failis olevate sertifikaatide vaikesätete muutmine
Ekspordi KEY_COUNTRY="USA" 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"
Loome keskkonnamuutujad.
Allikas ./vars MÄRKUS. Kui käivitate faili ./clean-all, teen failis /etc/openvpn/easy-rsa/keys faili rm -rf
Teeme eelnevatest katsetest selgeks. Loome Diffie-Hellmani võtme (võtme loomine võtab veidi aega).
./clean-all ./build-dh DH parameetrite genereerimine, 2048 biti pikkune turvaline algväärtus, generaator 2 See võtab kaua aega ...
Loome OpenVPN-i serveri privaatvõtmete salvestamiseks kataloogi. Kopeeri sinna Diffie-Hellmani fail (dh2048.pem) mkdir /etc/openvpn/keys cp keys/dh2048.pem /etc/openvpn/keys/
Loome CA sertifitseerimisasutus. luuakse ca.crt ja ca.key. Fail ca.key esindab CA privaatvõtit, it saladus, ja tema ei saa üle kanda teistele teie võrgu sõlmedele. CA-sertifikaadi fail ca.crt on seevastu avatud ja seda läheb vaja OpenVPN-i serveris ja kliendisõlmedes. ./pkitool --initca
Loome serverile sertifikaadi nimega vpnluxor ./pkitool --server vpnluxor
Kopeerige loodud failid vpnluxor.crt ja vpnluxor.key kataloogi /etc/openvpn/keys/
Koostame kliendi klient1 sertifikaadi samanimelise parameetriga CommonName. Igale kliendile eraldi võti. ./pkitool klient1
Sertifikaatide ja võtmete asukoht
Fail | Auto | Eesmärk | Juurdepääs |
ca.crt | Server ja kliendid | CA juursertifikaat | Avalik |
ca.key | Ainult serveris | Vajalik muude sertifikaatide allkirjastamiseks | Saladus |
dh(n).pem | Ainult serveris | Diffie Hellmani parameetrid | Avalik |
vpnspar.crt | Ainult serveris | Serveri sertifikaat | Avalik |
vpnspar.key | Ainult serveris | Serveri võti | Saladus |
darkfire.crt | Ainult kliendi peal | Kliendi sertifikaat | Avalik |
darkfire.key | Ainult kliendi peal | Kliendi võti | Saladus |
OpenVPN-i installimine
ccd kataloog salvestab iga kliendi jaoks individuaalsed sätted. mkdir /etc/openvpn/ccd
VPN-võrgu piiride laiendamine
VPN-i piiride laiendamine kaasamiseks lisaautod alamvõrkudest kliendi või serveri poolel. Lubage serveri poolel mitu masinat, kui kasutate marsruutitud VPN-i (dev tun)
Kuna VPN töötab ainult punktist punktini, võite soovida VPN-i ulatust laiendada, et kliendid saaksid suhelda serveri võrgus olevate muude masinatega, mitte ainult serveri endaga.
Selle illustreerimiseks näitega oletame, et in kohalik võrk serveri poolel on alamvõrk 10.66.0.0/24 ja VPN-aadresside kogumi jaoks kasutatakse 10.8.0.0/24, nagu on kirjas OpenVPN-i serveri konfiguratsioonifaili serveri direktiivis.
Esiteks peate VPN-i klientidele ütlema, et alamvõrk 10.66.0.0/24 on VPN-i kaudu juurdepääsetav. Seda saab hõlpsasti teha järgmiste juhiste abil konfiguratsioonifail serverid:
Vajutage "marsruut 10.66.0.0 255.255.255.0"
Järgmisena peate konfigureerima serverivõrgu LAN-lüüsi marsruudi, et suunata VPN-kliendi alamvõrku (10.8.0.0/24) mõeldud paketid läbi OpenVPN-serveri (see on vajalik ainult siis, kui OpenVPN-server ja LAN-lüüs on erinevad masinad).
Iptables -A SISEND -p udp --dport 1194 -j ACCEPT iptables -A SISEND -i koputus+ -j ACCEPT või iptables -A SISEND -i tun+ -j ACCEPT
OpenVPN-i haldus
PPPoE ja OpenVPN probleem
Probleem: Kui server on ühendatud ISP-ga tehnoloogia abil Kuidas PPPoE töötab, ei saa OpenVPN sel juhul seda teha juurdepääsetavad võrgudühendatud kliendi taga. Iroute käsk ei tööta. Selle põhjuseks on asjaolu, et PPP kirjutab vaikemarsruudi järgmiselt:
# netstat -rn Kerneli IP-marsruutimistabel Sihtlüüs Genmaski lipud MSS-i aken irtt Iface 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Need. liidest (ppp0) näitab vaikemarsruut, mitte IP-aadress, OpenVPN-server ei mõista sellist kirjet, õige toimimine OpenVPN-i serverid marsruut peaks välja nägema selline:
# netstat -rn Sihtlüüsi Genmaski lipud MSS-i aken irtt Iface 0.0.0.0 91.196.96.35 255.255.255.255 UGH 0 0 0 ppp0
Kliendi proto udp dev tun ca ca.crt dh dh2048.pem cert client.crt võti klient.võti kaugjuhtimispult xxx.xxx.xxx.xxx 1194 tls-auth ta.key 1 šifr AES-256 -CBC kasutaja nobody group nogroup verb 2 vaigista 20 keepalive 10 120 comp-lzo persist-key persist-tun float resolv-retry infinite nobind
OpenVPN-i logi pööramine
Faili /etc/logrotate.d/openvpn kirjutame kirjelduse sätted ja näited logrotate konfigureerimisest Linuxis, võtmeparameeter kopeerida(et mitte üle koormata OpenVPN-i ja sundida seda samasse logifaili andmeid kirjutama) openvpn etc/ openvpn/ servers/ vpnluxor/ logs/ openvpn.log ( igapäevane pööramine 8 tihendamisviivituskompresse puududes copytruncate notifempty create 640 root )