Përshëndetje, të gjithë! A keni hasur ndonjëherë në situatën kur do të dëshironit të transportoheshit virtualisht në një qytet tjetër, një vend tjetër ose në një kontinent tjetër? Kjo nevojë më ndodh shpesh, prandaj mundësia për të pasur një server VPN timin, që mund të aktivizohet kudo, në disa sekonda, ishte shumë e rëndësishme për mua. Në këtë artikull, do të flas për projektin tim, të cilin e kam menduar kur kërkoja një zgjidhje të gatshme, në këtë rast një imazh docker-i, i cili do të lejonte ngritjen e shpejtë të një serveri OpenVPN, me minimumin e konfigurimeve dhe një nivel të pranueshëm sigurie.
Pas historia
MundĂ«sia pĂ«r tĂ« drejtuar shĂ«rbimin nĂ« çdo makinĂ«: qoftĂ« njĂ« server fizik, njĂ« server virtual privat, apo edhe hapĂ«sira ndihmĂ«se brenda njĂ« sistemi tjetĂ«r tĂ« menaxhimit tĂ« kontejnerĂ«ve â ishte kritikisht e rĂ«ndĂ«sishme. VĂ«mendja ime menjĂ«herĂ« iu drejtua Docker. SĂ« pari, ky shĂ«rbim po bĂ«het gjithnjĂ« e mĂ« i njohur, dhe pĂ«r pasojĂ«, gjithnjĂ« e mĂ« shumĂ« ofrues ofrojnĂ« zgjidhje tĂ« gatshme me tĂ« instaluar; sĂ« dyti â ekziston njĂ« depo qendrore imazhe, nga e cila mund tĂ« shkarkoni dhe tĂ« nisni shĂ«rbimin me njĂ« komandĂ« nĂ« terminal. Mendimi se njĂ« projekt i tillĂ« duhet tĂ« ekzistonte tashmĂ« mĂ« kalonte pĂ«r kokĂ« dhe unĂ« kĂ«rkoja me ngulm. Por, shumica e projekteve qĂ« gjeta ishin ose shumĂ« tĂ« komplikuara (duhej tĂ« krijoja njĂ« kontejner pĂ«r ruajtje tĂ« pĂ«rhershme tĂ« tĂ« dhĂ«nave dhe disa herĂ« tĂ« niste kontejnerin me aplikacionin me parametra tĂ« ndryshĂ«m), ose pa dokumentacion tĂ« arsyeshĂ«m, ose tĂ« braktisura plotĂ«sisht. PasiqĂ« nuk gjeta asgjĂ« tĂ« pranueshme, fillova punĂ«n nĂ« projektin tim. PashĂ« para vetes net tĂ« pa gjumĂ« pĂ«r tĂ« studiuar dokumentacionin, pĂ«r tĂ« shkruar kodin dhe pĂ«r tĂ« debug-uar, por nĂ« fund tĂ« fundit, shĂ«rbimi im pa dritĂ« dhe filloi tĂ« ndriçojĂ« me tĂ« gjitha ngjyrat e panelit tĂ« LED-ve monokromatik tĂ« router-it. Pra, lutem, mirĂ«priteni â . Kam kam ndihmĂ«n dhe zhvillova njĂ« logo (mbi, para rĂ«nditjes), por mos e gjykoni ashpĂ«r, pasi nuk jam dizajner (ende). Kur e realizova kĂ«tĂ« projekt, e vendosa nĂ« pikĂ«pamje shpejtĂ«sinĂ« e vendosjes, minimumin e konfigurimeve dhe njĂ« nivel tĂ« pranueshĂ«m tĂ« sigurisĂ«. Me metoda provash dhe gabimesh, gjeta njĂ« ekuilibĂ«r optimal mes kĂ«tyre kritereve, megjithatĂ«, ndonjĂ«herĂ« duhej tĂ« sakrifikoja shpejtĂ«sinĂ« e vendosjes pĂ«r sigurinĂ«, dhe pĂ«r minimumin e konfigurimeve duhej tĂ« paguaja me portabilitet: nĂ« konfigurimin aktual, njĂ« herĂ« i krijuar kontejneri nĂ« njĂ« server nuk mund tĂ« transferohet dhe tĂ« niset nĂ« njĂ« tjetĂ«r. PĂ«r shembull, tĂ« gjitha certifikatat e klientĂ«ve dhe serverĂ«ve gjenerohen gjatĂ« nisjes sĂ« shĂ«rbimit dhe kjo merr rreth 2 sekonda. MegjithatĂ«, gjenerimi i skedarit tĂ« Difi Hellman duhej tĂ« ndodhte nĂ« kohĂ«n e ndĂ«rtimit: ai krijohet gjatĂ« ndĂ«rtimit tĂ« imazhit docker dhe mund tĂ« zgjasĂ« deri nĂ« 10 minuta. Do tĂ« doja shumĂ« tĂ« merrja njĂ« audt tĂ« sigurisĂ« pĂ«r njĂ« zgjidhje tĂ« tillĂ« nga komuniteti shumĂ« tĂ« respektuar.
Fillimi
Për të nisur shërbimin, na duhen disa gjëra:
- Serveri: fizik ose virtual. Teoretikisht është e mundur të ekzekutohet në modalitetin docker në docker, por nuk kam kryer testim të gjerë të kësaj opsioni;
- I vërtetë Docker. Shumë ofrues të hostimit ofrojnë zgjidhje gati me Docker "në bord";
- Adresa IP publike.
Nëse të gjitha detajet janë në vend, atëherë na mbetet të ekzekutojmë komandën e mëposhtme në konsolën e serverit tuaj:
docker run --cap-add=NET_ADMIN
-it -p 1194:1194/udp -p 80:8080/tcp
-e HOST_ADDR=$(curl -s https://api.ipify.org)
alekslitvinenk/openvpnLexuesi i vëmendshëm mund të ketë vënë re se adresa IP e serverit përcaktohet automatikisht me anë të ipify.org. Nëse për ndonjë arsye kjo nuk funksionon, mund të specifikoni adresën manualisht. Nëse të gjitha hapat e mëparshëm janë kryer saktë, atëherë duhej të shihni në konsolë diçka të ngjashme me:
Sun Jun 9 08:56:11 2019 Iniciimi i sekuencës përfundoi
Sun Jun 9 08:56:12 2019 Skedari Client.ovpn është gjeneruar
Sun Jun 9 08:56:12 2019 Serveri i konfigurimit nisi, shkarkoni konfigurimin tuaj client.ovpn në http://example.com/
Sun Jun 9 08:56:12 2019 VĂREJTJE: Pas shkarkimit tĂ« konfigurimit tuaj, serveri http do tĂ« mbyllet!Jemi afĂ«r qĂ«llimit: tani na nevojitet tĂ« kopjojmĂ« (nĂ« rastin tuaj, do tĂ« jetĂ« adresa e serverit tuaj) dhe vendoseni nĂ« shiritin e adresĂ«s sĂ« shfletuesit. Pasi tĂ« klikoni Enter, skedari client.ovpn do tĂ« shkarkohet, dhe serveri http do tĂ« shuhet. NĂ«se ky zgjidhje shkakton dyshime, mund tĂ« pĂ«rdorni hile tĂ« mĂ«poshtme: ekzekutoni komandĂ«n e mĂ«parshme dhe shtoni flamujt zp dhe fjalĂ«kalimin. Tani, nĂ«se vendosni lidhjen e gjeneruar nĂ« dritaren e shfletuesit - do tĂ« merrni njĂ« arkiv zip me fjalĂ«kalimin. Kur keni skedarin e konfigurimit tĂ« klientit, mund tĂ« pĂ«rdorni çdo klient pĂ«rkatĂ«s. UnĂ« pĂ«rdor Tunnelblick pĂ«r Mac.
Video tutorial
Ky video tutorial përmban një udhëzim të detajuar për të vendosur shërbimin në DigitalOcean.

EDIT1:
- Rregullova gabimet në publikim,
- Duke pĂ«rgjigjesh pĂ«r komentet, vendosa ta sjell kĂ«tĂ« informacion kĂ«tu: flag âprivileged Ă«shtĂ« i nevojshĂ«m pĂ«r tĂ« punuar me iptables
EDIT2:
- PĂ«rmirĂ«sova komandĂ«n e nisjes sĂ« imazhit: tani nuk kĂ«rkon flag âprivileged
- Shtova një lidhje për udhëzuesin në video në gjuhën ruse:
Burimi: habr.com
