Openvpn-sertifikaat ja võtmefailid. Lõpetame konfiguratsiooni või igaühele oma. OpenVPN-i võrgukomponendid

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 . Valitud IP-aadresside paarid peavad esiteks olema kordumatud, teiseks peavad nad olema osa järjestikustest alamvõrkudest, mida piirab /30 mask (255.255.255.252), ja kolmandaks peavad need olema IP-aadresside kogumis, mis on pühendatud virtuaalne privaatvõrk(määratud serveri parameeter OpenVPN-serveri konfiguratsioonifail).

# mkdir /etc/openvpn/ccd # nano ccd/farm1c push "marsruut 192.168.1.0 255.255.255.0" #push "marsruut 192.168.35.0 255.255.255.0" # staatiline IP.1.1.9 68. 14.22 #iroute 192.168. 2,0 255 255 255,0

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.crtServer ja kliendidCA juursertifikaatAvalik
ca.keyAinult serverisVajalik muude sertifikaatide allkirjastamiseksSaladus
dh(n).pemAinult serverisDiffie Hellmani parameetridAvalik
vpnspar.crtAinult serverisServeri sertifikaatAvalik
vpnspar.keyAinult serverisServeri võtiSaladus
darkfire.crtAinult kliendi pealKliendi sertifikaatAvalik
darkfire.keyAinult kliendi pealKliendi võtiSaladus

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 )