Përshëndetje, habrovianë! A keni përjetuar ndonjëherë situatën kur dëshironit me të vërtetë të transportoheshit virtualisht në një qytet tjetër, vend tjetër apo kontinent tjetër? Mua më ndodh mjaft shpesh, prandaj nevoja për të patur një server VPN timin, që mund ta nisja kudo, brenda pak sekondash, ka qenë mjaft e rëndësishme. Në këtë artikull, dëshiroj të flas për projektin tim, që e kam menduar kur kërkoja një zgjidhje gati, në këtë rast një imazh docker, që do të lejonte ngritjen e shpejtë të një serveri OpenVPN, me minimum të konfigurimeve dhe një nivel të pranueshëm sigurie.
Historia e mëparshme
MundĂ«sia pĂ«r tĂ« nisur shĂ«rbimin nĂ« çdo makinĂ«: qoftĂ« server fizik, apo server virtual privat, apo madje njĂ« hapĂ«sirĂ« konteinerike brenda njĂ« sistemi tjetĂ«r tĂ« menaxhimit tĂ« konteinerĂ«veâishte kritikisht e rĂ«ndĂ«sishme. VĂ«mendja ime ra menjĂ«herĂ« nĂ« Docker. SĂ« pari, ky shĂ«rbim po fiton popullaritet, dhe si rezultat, gjithnjĂ« e mĂ« shumĂ« ofrues ofrojnĂ« zgjidhje gati me instalimin e tij; sĂ« dytiâka njĂ« depo tĂ« centralizuar imazhesh, nga e cila mund tĂ« shkarkoni dhe nisni shĂ«rbimin me njĂ« komandĂ« nĂ« terminal. Mendimi qĂ« njĂ« projekt i tillĂ« duhet tĂ« ekzistonte tashmĂ« mĂ« vizitoi, dhe unĂ« vazhdimisht kĂ«rkoja. Por, shumica e projekteve qĂ« gjeja ishin ose tepĂ«r tĂ« ngatĂ«rruara (duhej tĂ« krijohej njĂ« konteiner pĂ«r ruajtjen e pĂ«rhershme tĂ« tĂ« dhĂ«nave dhe disa herĂ« tĂ« nistej konteineri me aplikacionin me parametra tĂ« ndryshĂ«m), ose pa dokumentacion tĂ« arsyeshĂ«m, ose krejtĂ«sisht tĂ« braktisura. Pasi nuk gjeta asgjĂ« tĂ« pranueshme, fillova punĂ«n nĂ« projektin tim. Para meje ishin net pa gjumĂ« studimi i dokumentacionit, shkrimi i kodit dhe debugimi, por nĂ« fund, shĂ«rbimi im pa dritĂ« dhe filloi tĂ« shkĂ«lqejĂ« me tĂ« gjitha ngjyrat e panelit LED monokrom tĂ« router-it. Pra, ju lutem, prisni me dashuriâ . Kam e shpikur njĂ« logo (mĂ« sipĂ«r, para ndarjes), por mos e gjykoni rĂ«ndĂ«, sepse unĂ« nuk jam dizajner (mĂ« parĂ«). Kur e realizova kĂ«tĂ« projekt, vendosa nĂ« krye shpejtĂ«sinĂ« e vendosjes, minimumin e konfigurimeve dhe njĂ« nivel tĂ« pranueshĂ«m sigurie. Me metoda provĂ«-dhe-gabim, gjeta njĂ« balanc tĂ« optimizuar tĂ« kĂ«tyre kritereve, megjithatĂ«, diku mĂ« duhej tĂ« sakrifikoj shpejtĂ«sinĂ« e vendosjes pĂ«r shkak tĂ« sigurisĂ«, dhe pĂ«r minimumin e konfigurimeve mĂ« duhej tĂ« paguaj pĂ«r portabilitet: nĂ« konfigurimin aktual, njĂ«herĂ« e krijuar, kontenieri nĂ« njĂ« server nuk mund tĂ« transferohet dhe tĂ« nisĂ« nĂ« njĂ« tjetĂ«r. PĂ«r shembull, tĂ« gjitha certifikatat klient dhe server krijohen gjatĂ« nisjes sĂ« shĂ«rbimit dhe kjo zgjat rreth 2 sekonda. MegjithatĂ«, gjenerimi i skedarit tĂ« Difi Hellman duhej tĂ« ishte bĂ«rĂ« gjatĂ« ndĂ«rtimit: krijohet gjatĂ« ndĂ«rtimit tĂ« imazhit docker dhe mund tĂ« zgjasĂ« deri nĂ« 10 minuta. Do tĂ« doja shumĂ« tĂ« merrja njĂ« audit tĂ« sigurisĂ« pĂ«r njĂ« zgjidhje tĂ« tillĂ« nga komuniteti i nderuar.
Nisja
Për të nisur shërbimin, na nevojiten disa gjëra:
- Server: fizik ose virtual. Teoretikisht, mund të niset në modalitetin docker-in-docker, por nuk kam kryer testime të mëdha mbi këtë opsion;
- Docker-i vetĂ«. ShumĂ« ofrues shĂ«rbimesh hostimi ofrojnĂ« zgjidhje tĂ« gatshme me Docker ânĂ« bordâ;
- Një adresë IP publike.
Nëse të gjitha detajet janë në rregull, atëherë na mbetet të nisim komandën e mëposhtme në terminalin 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 kujdesshëm mund të ketë vërejtur se adresa IP e serverit përcaktohet automatikisht me anë të ipify.org. Nëse për ndonjë arsye kjo nuk funksionon, mund të jepni adresën manualisht. Nëse të gjitha hapat e mëparshëm janë kryer siç duhet, duhet të shohim në terminal diçka të ngjashme:
Diel 9 Qershor 2019 08:56:11 Sezoni i Inizializimit përfundoi
Diel 9 Qershor 2019 08:56:12 Skedari Client.ovpn është krijuar
Diel 9 Qershor 2019 08:56:12 Serveri i konfigurimit filloi, shkarkoni konfigurimin tuaj client.ovpn në http://example.com/
Diel 9 Qershor 2019 08:56:12 VĂREJTJE: Pas shkarkimit tĂ« konfigurimit tuaj client, shĂ«rbimi http do tĂ« mbyllet!Jemi afĂ«r qĂ«llimit: tani duhet tĂ« kopjojmĂ« (nĂ« rastin tuaj do tĂ« jetĂ« adresa e serverit tuaj) dhe ta vendosni nĂ« shiritin e adresĂ«s sĂ« shfletuesit. Pasi tĂ« klikoni Enter, skedari client.ovpn do tĂ« shkarkohet dhe serveri http do tĂ« shkojĂ« nĂ« harresĂ«. NĂ«se ky zgjidhje shkakton dyshime, mund tĂ« pĂ«rdorni trukun tjetĂ«r: tĂ« nisni komandĂ«n e mĂ«parshme dhe tĂ« shtoni flag-at zp dhe fjalĂ«kalimin. Tani, nĂ«se e vendosni lidhjen e gjeneruar nĂ« dritaren e shfletuesit â do tĂ« merrni njĂ« arkiv zip me fjalĂ«kalimin. Kur keni skedarin me konfigurimin e klientit, mund tĂ« pĂ«rdorni çdo klient tĂ« pĂ«rshtatshĂ«m. UnĂ« pĂ«rdor Tunnelblick pĂ«r Mac.
Video tutorial
Ky video tutorial përmban një udhëzim të detajuar për vendosjen e shërbimit në DigitalOcean.

EDIT1:
- Korrigjova gabimet në publikim,
- Duke iu pĂ«rgjigjur komenteve, vendosa tĂ« nxjerr 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 në udhëzimin video në gjuhën ruse:
Burimi: habr.com
