Tnedija OpenVPN f'Docker f'2 sekondi

Hello, residenti Khabrovsk! Qatt iltqajt ma' sitwazzjoni meta int verament ridt li tkun virtwalment ittrasportat lejn belt, pajjiż jew kontinent ieħor? Għandi din il-ħtieġa spiss, għalhekk l-opportunità li jkolli s-server VPN tiegħi stess, li jista 'jiġi mniedi kullimkien, fi ftit sekondi, kienet pjuttost urġenti.F'dan l-artikolu nixtieq nitkellem dwar il-proġett tiegħi, li kkonċepejt meta kont tfittex soluzzjoni lesta, f'dan il-każ Docker immaġni li tippermettilek li twaqqaf malajr server OpenVPN, b'minimu ta 'settings u livell aċċettabbli ta' sigurtà.

Tnedija OpenVPN f'Docker f'2 sekondi

preistorja

Il-ħila li tħaddem is-servizz fuq kwalunkwe magna - kemm jekk server fiżiku, jew server privat virtwali, jew saħansitra spazju ta 'kontejner ġewwa sistema oħra ta' ġestjoni ta 'kontenitur - kienet kritika. Ħarsa tiegħi immedjatament waqgħet fuq Docker. L-ewwelnett, dan is-servizz qed jikseb popolarità, u għalhekk aktar u aktar fornituri qed jipprovdu soluzzjonijiet lesti bil-pre-installazzjoni tiegħu; it-tieni, hemm ħażna ċentralizzata ta 'immaġini minn fejn tista' tniżżel u tħaddem is-servizz billi tuża kmand wieħed fit-terminal. L-idea li proġett bħal dan għandu diġà jeżisti ġietni u fittixt ħafna. Iżda l-biċċa l-kbira tal-proġetti li sibt jew kienu ingombranti wisq (kellt toħloq kontenitur għall-ħażna permanenti tad-dejta u tniedi l-kontenitur bl-applikazzjoni diversi drabi b'parametri differenti), jew mingħajr dokumentazzjoni sensibbli, jew kompletament abbandunat. Ma ssibx xi ħaġa aċċettabbli , bdejt naħdem fuq il-proġett tiegħek. Kien hemm iljieli bla rqad qabel l-istudju tad-dokumentazzjoni, il-kitba tal-kodiċi u d-debugging, iżda fl-aħħar is-servizz tiegħi ra d-dawl tal-ġurnata u beda jixgħel bil-kuluri kollha tal-pannell LED monokromu tar-router. Allura, nitlobkom tħobbu u tiffavorixxu - Docker-OpenVPN. Saħansitra ħriġt b’logo (fuq, qabel il-qatgħa), imma tiġġudikahx b’mod strett, għax m’iniex disinjatur (aktar) Meta implimentajt dan il-proġett, ipprijoritizzajt il-veloċità tal-iskjerament, minimu ta’ settings u livell aċċettabbli ta' sigurtà. Permezz ta 'prova u żball, sibt l-aħjar bilanċ ta' dawn il-kriterji, madankollu, f'xi postijiet kelli nissagrifika l-veloċità tal-iskjerament għall-fini tas-sigurtà, u kelli nħallas għall-portabbiltà għal minimu ta 'settings: fil-konfigurazzjoni attwali, a kontenitur darba maħluq fuq server wieħed ma jistax jiġi trasferit u mniedi fuq ieħor. Pereżempju, iċ-ċertifikati kollha tal-klijent u tas-server jiġu ġġenerati meta jibda s-servizz u dan jieħu madwar 2 sekondi. Madankollu, il-ġenerazzjoni tal-fajl Hellman Defi kellha tittieħed fil-ħin tal-bini: hija maħluqa matul il-bini tal-immaġni docker u tista 'ddum sa 10 minuti. Nixtieq verament nirċievi verifika tas-sigurtà ta 'soluzzjoni bħal din mill-komunità rispettata.

Tnedija

Biex nibdew is-servizz neħtieġu diversi affarijiet:

  1. Server: fiżiku jew virtwali. Huwa teoretikament possibbli li taħdem fil-modalità docker-in-docker, iżda ma ttestjajtx b'mod estensiv din l-għażla;
  2. Attwalment Docker. Ħafna fornituri ta 'hosting jipprovdu soluzzjonijiet lesti b'Docker abbord;
  3. Indirizz IP pubbliku.

Jekk id-dettalji kollha huma f'posthom, allura kull ma rridu nagħmlu hu li nħaddmu l-kmand li ġej fil-console tas-server tiegħek:

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/openvpn

Qarrej attent jista 'jkun innotat li l-indirizz IP tas-server huwa determinat awtomatikament bl-użu ipify.org. Jekk għal xi raġuni dan ma jaħdimx, allura tista 'tispeċifika l-indirizz manwalment.Jekk il-passi kollha preċedenti tlestew b'mod korrett, allura għandna naraw xi ħaġa simili fil-console:

Sun Jun  9 08:56:11 2019 Initialization Sequence Completed
Sun Jun  9 08:56:12 2019 Client.ovpn file has been generated
Sun Jun  9 08:56:12 2019 Config server started, download your client.ovpn config at http://example.com/
Sun Jun  9 08:56:12 2019 NOTE: After you download you client config, http server will be shut down!

Aħna qrib l-għan: issa għandna bżonn nikkopjaw example.com (fil-każ tiegħek se jkun l-indirizz tas-server tiegħek) u waħħalha fil-bar tal-indirizz tal-browser tiegħek. Wara li tagħfas Enter, il-fajl client.ovpn jitniżżlu, u s-server http innifsu se jisparixxi fl-oblivion. Jekk din is-soluzzjoni tkun fid-dubju, tista 'tuża l-trick li ġej: mexxi l-kmand preċedenti u żid bnadar zp u password. Issa, jekk tippejstja l-link iġġenerat f'tieqa tal-browser, tirċievi arkivju zip b'password.Ladarba jkollok fajl tal-konfigurazzjoni tal-klijent, tista' tuża kwalunkwe klijent xieraq. Jien nuża Tunnelblick għall-Mac.

Tutorja bil-vidjo

Dan il-video tutorial fih istruzzjonijiet dettaljati għall-iskjerament tas-servizz fuq DigitalOcean.

PS Jekk issib dan il-proġett utli, jekk jogħġbok agħtih stilla fuq GitHub, għidlu u għid lil sħabek. Il-kontributuri u l-verifiki tas-sigurtà huma wkoll milqugħa ħafna.PPS Jekk dan l-artiklu jispiċċa fuq Habr, allura nippjana li nikteb dak li jmiss dwar kif nediet docker-in-docker u docker-in-docker-in-docker, għaliex għamilt dan u x'ħarġu minnu.
EDIT1:

  1. Żbalji kkoreġuti fil-pubblikazzjoni,
  2. B'risposta għall-kummenti, iddeċidejt li npoġġi din l-informazzjoni hawn: il-bandiera —privileged hija meħtieġa biex taħdem ma' iptables

EDIT2:

  1. Imtejjeb il-kmand tat-tnedija tal-immaġni: issa ma jeħtieġx il-bandiera –privileged
  2. Żieda link għall-gwida tal-vidjo bil-lingwa Russa: youtu.be/A8zvrHsT9A0

Sors: www.habr.com

Żid kumment