Lansio OpenVPN yn Docker mewn 2 eiliad

Helo, trigolion Khabrovsk! Ydych chi erioed wedi dod ar draws sefyllfa pan oeddech chi wir eisiau cael eich cludo fwy neu lai i ddinas, gwlad neu gyfandir arall? Mae gen i'r angen hwn yn eithaf aml, felly roedd y cyfle i gael fy gweinydd VPN fy hun, y gellir ei lansio yn unrhyw le, mewn ychydig eiliadau, yn eithaf brys.Yn yr erthygl hon rwyf am siarad am fy mhrosiect, a genhedlais pan oeddwn i'n yn chwilio am ateb parod, yn yr achos hwn Docker delwedd a fyddai'n caniatΓ‘u ichi sefydlu gweinydd OpenVPN yn gyflym, gyda lleiafswm o osodiadau a lefel dderbyniol o ddiogelwch.

Lansio OpenVPN yn Docker mewn 2 eiliad

cynhanes

Roedd y gallu i redeg y gwasanaeth ar unrhyw beiriant - boed yn weinydd corfforol, neu'n weinydd preifat rhithwir, neu hyd yn oed yn ofod cynhwysydd y tu mewn i system rheoli cynhwysydd arall - yn hollbwysig. Syrthiodd fy syllu ar Docker ar unwaith. Yn gyntaf, mae'r gwasanaeth hwn yn dod yn fwy poblogaidd, ac felly mae mwy a mwy o ddarparwyr yn darparu atebion parod gyda'i ragosod; yn ail, mae storfa ganolog o ddelweddau lle gallwch chi lawrlwytho a rhedeg y gwasanaeth gan ddefnyddio un gorchymyn yn y derfynell. Daeth y syniad y dylai prosiect o'r fath fodoli eisoes i mi a chwiliais yn galed. Ond roedd y rhan fwyaf o'r prosiectau a ddarganfyddais naill ai'n rhy feichus (roedd yn rhaid i chi greu cynhwysydd ar gyfer storio data parhaol a lansio'r cynhwysydd gyda'r cais sawl gwaith gyda gwahanol baramedrau), neu heb ddogfennaeth gall, neu wedi'i adael yn llwyr. Heb ddod o hyd i unrhyw beth derbyniol. , Dechreuais weithio ar eich prosiect. Roedd nosweithiau digwsg cyn astudio dogfennaeth, ysgrifennu cod a dadfygio, ond yn y pen draw gwelodd fy ngwasanaeth olau dydd a dechreuodd ddisgleirio gyda holl liwiau panel LED monocrom y llwybrydd. Felly, gofynnaf ichi garu a ffafrio - Dociwr-OpenVPN. Fe wnes i hyd yn oed greu logo (uchod, cyn y toriad), ond peidiwch Γ’'i farnu'n llym, oherwydd nid wyf yn ddylunydd (mwyach) Pan weithredais y prosiect hwn, rhoddais flaenoriaeth i gyflymder y defnydd, o leiaf gosodiadau a lefel dderbyniol o ddiogelwch. Trwy brawf a chamgymeriad, darganfyddais y cydbwysedd gorau posibl o'r meini prawf hyn, fodd bynnag, mewn rhai mannau roedd yn rhaid i mi aberthu cyflymder lleoli er mwyn diogelwch, ac roedd yn rhaid i mi dalu am hygludedd ar gyfer lleiafswm o leoliadau: yn y ffurfweddiad presennol, a ni ellir trosglwyddo cynhwysydd ar Γ΄l ei greu ar un gweinydd a'i lansio ar un arall. Er enghraifft, cynhyrchir pob tystysgrif cleient a gweinydd pan fydd y gwasanaeth yn cychwyn a bydd hyn yn cymryd tua 2 eiliad. Fodd bynnag, roedd yn rhaid cymryd y broses o gynhyrchu ffeil Hellman Defi i mewn i amser adeiladu: caiff ei chreu yn ystod adeiladu delwedd y docwr a gall bara hyd at 10 munud. Hoffwn mewn gwirionedd gael archwiliad diogelwch o ateb o'r fath gan y gymuned uchel ei pharch.

Запуск

I gychwyn y gwasanaeth mae angen sawl peth arnom:

  1. Gweinydd: corfforol neu rithwir. Yn ddamcaniaethol, mae'n bosibl rhedeg yn y modd docwr o fewn y dociwr, ond nid wyf wedi profi'r opsiwn hwn yn helaeth;
  2. A dweud y gwir Docker. Mae llawer o ddarparwyr cynnal yn darparu atebion parod gyda Docker ar fwrdd;
  3. Cyfeiriad IP cyhoeddus.

Os yw'r holl fanylion yn eu lle, yna'r cyfan sy'n rhaid i ni ei wneud yw rhedeg y gorchymyn canlynol yng nghonsol eich gweinydd:

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

Efallai y bydd darllenydd sylwgar wedi sylwi bod cyfeiriad IP y gweinydd yn cael ei bennu'n awtomatig gan ddefnyddio ipify.org. Os nad yw hyn yn gweithio am ryw reswm, yna gallwch chi nodi'r cyfeiriad Γ’ llaw. Pe bai'r holl gamau blaenorol wedi'u cwblhau'n gywir, yna dylem weld rhywbeth tebyg yn y consol:

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!

Rydyn ni'n agos at y nod: nawr mae angen i ni gopΓ―o example.com (yn eich achos chi, cyfeiriad eich gweinydd fydd hwn) a'i gludo i mewn i far cyfeiriad eich porwr. Ar Γ΄l i chi bwyso Enter, bydd y ffeil client.ovpn yn cael ei lawrlwytho, a bydd y gweinydd http ei hun yn diflannu i ebargofiant. Os oes amheuaeth ynghylch yr ateb hwn, gallwch ddefnyddio'r tric canlynol: rhedeg y gorchymyn blaenorol ac ychwanegu baneri zp a chyfrinair. Nawr, os byddwch chi'n gludo'r ddolen a gynhyrchir i ffenestr porwr, byddwch yn derbyn archif sip gyda chyfrinair. Unwaith y bydd gennych ffeil ffurfweddu cleient, gallwch ddefnyddio unrhyw gleient addas. Rwy'n defnyddio Tunnelblick ar gyfer Mac.

Tiwtorial fideo

Mae'r tiwtorial fideo hwn yn cynnwys cyfarwyddiadau manwl ar gyfer defnyddio'r gwasanaeth ar DigitalOcean.

PS Os bydd y prosiect hwn yn ddefnyddiol i chi, rhowch seren iddo ar GitHub, fforchiwch hi a dywedwch wrth eich ffrindiau. Mae croeso mawr hefyd i gyfranwyr ac archwiliadau diogelwch.Pps Os yw'r erthygl hon yn dod i ben ar Habr, yna rwy'n bwriadu ysgrifennu'r un nesaf am sut y gwnes i lansio docwr-mewn-docer a docwr-mewn-docer, pam wnes i hynny a beth ddaeth allan ohono.
EDIT1:

  1. Gwallau wedi'u cywiro yn y cyhoeddiad,
  2. Gan ymateb i sylwadau, penderfynais roi’r wybodaeth hon yma: mae angen y faner freintiedig i weithio gydag iptables

EDIT2:

  1. Wedi gwella'r gorchymyn lansio delwedd: nawr nid oes angen y faner -breintiedig arno
  2. Ychwanegwyd dolen i'r canllaw fideo iaith Rwsieg: youtu.be/A8zvrHsT9A0

Ffynhonnell: hab.com

Ychwanegu sylw