Ræstu OpenVPN í Docker eftir 2 sekúndur

Halló, íbúar Khabrovsk! Hefur þú einhvern tíma lent í aðstæðum þar sem þú vildir raunverulega vera fluttur til annarrar borgar, lands eða heimsálfu? Ég hef þessa þörf nokkuð oft, svo tækifærið til að hafa minn eigin VPN netþjón, sem hægt er að ræsa hvar sem er, á nokkrum sekúndum, var brýnt. Í þessari grein vil ég tala um verkefnið mitt, sem ég hugsaði þegar ég var að leita að tilbúinni lausn, í þessu tilviki Docker mynd sem myndi gera þér kleift að setja upp OpenVPN netþjón fljótt, með lágmarks stillingum og ásættanlegu öryggisstigi.

Ræstu OpenVPN í Docker eftir 2 sekúndur

Forsaga

Getan til að keyra þjónustuna á hvaða vél sem er - hvort sem það er líkamlegur netþjónn, eða sýndar einkaþjónn, eða jafnvel gámarými inni í öðru gámastjórnunarkerfi - var mikilvægt. Augnaráð mitt féll strax á Docker. Í fyrsta lagi nýtur þessi þjónusta vinsældum og því bjóða æ fleiri veitendur tilbúnar lausnir með foruppsetningu hennar; í öðru lagi er miðlæg myndgeymsla þaðan sem þú getur hlaðið niður og keyrt þjónustuna með einni skipun í flugstöðinni. Sú hugmynd að slíkt verkefni ætti nú þegar að vera til kviknaði í mér og ég leitaði mikið. En flest verkefnin sem ég fann voru annað hvort of fyrirferðarmikil (þú þurftir að búa til gám fyrir varanlega gagnageymslu og ræsa gáminn með forritinu nokkrum sinnum með mismunandi breytum), eða án skynsamlegra skjala, eða algjörlega yfirgefin. Fannst ekkert ásættanlegt , Ég byrjaði að vinna að verkefninu þínu. Það voru svefnlausar nætur á undan að læra skjöl, skrifa kóða og villuleit, en á endanum leit þjónustan mín dagsins ljós og byrjaði að glitra af öllum litum einlita LED spjaldsins í beininum. Svo ég bið þig um að elska og hylla - Docker-OpenVPN. Ég kom meira að segja með lógó (fyrir ofan, fyrir klippingu), en ekki dæma það strangt, því ég er ekki hönnuður (lengur).Þegar ég innleiddi þetta verkefni setti ég hraða dreifingar í forgang, a.m.k. stillingar og ásættanlegt öryggisstig. Með tilraunum og mistökum fann ég ákjósanlegasta jafnvægi þessara viðmiðana, en sums staðar þurfti ég að fórna dreifingarhraða vegna öryggis og ég þurfti að borga fyrir færanleika fyrir lágmarks stillingar: í núverandi uppsetningu, a ekki er hægt að flytja og ræsa ílát þegar búið er til á einum netþjóni á öðrum. Til dæmis eru öll biðlara- og netþjónaskírteini búin til þegar þjónustan byrjar og þetta mun taka um 2 sekúndur. Hins vegar þurfti að taka kynslóð Hellman Defi skránnar inn í byggingartíma: hún er búin til við smíði Docker myndarinnar og getur varað í allt að 10 mínútur. Mér þætti mjög vænt um að fá öryggisúttekt á slíkri lausn frá hinu virta samfélagi.

Ræstu

Til að hefja þjónustuna þurfum við nokkra hluti:

  1. Server: líkamlegur eða sýndarmaður. Það er fræðilega mögulegt að keyra í docker-innan-docker ham, en ég hef ekki prófað þennan möguleika mikið;
  2. Reyndar Docker. Margir hýsingaraðilar bjóða upp á tilbúnar lausnir með Docker um borð;
  3. Almennt IP-tala.

Ef allar upplýsingar eru til staðar, þá þurfum við bara að keyra eftirfarandi skipun í stjórnborðinu á netþjóninum þínum:

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

Athugull lesandi gæti hafa tekið eftir því að IP-tala netþjónsins er ákvarðað sjálfkrafa með því að nota ipify.org. Ef þetta virkar ekki af einhverjum ástæðum, þá geturðu tilgreint heimilisfangið handvirkt. Ef öll fyrri skref voru unnin á réttan hátt ættum við að sjá eitthvað svipað í stjórnborðinu:

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!

Við erum nálægt markmiðinu: nú þurfum við að afrita example.com (í þínu tilviki verður það heimilisfang netþjónsins þíns) og límdu það inn í veffangastikuna í vafranum þínum. Eftir að þú ýtir á Enter verður client.ovpn skránni hlaðið niður og http þjónninn sjálfur hverfur í gleymsku. Ef þessi lausn er í vafa geturðu notað eftirfarandi bragð: keyrðu fyrri skipunina og bættu við fánum zp og lykilorð. Nú, ef þú límir myndaða hlekkinn inn í vafraglugga færðu zip-skjalasafn með lykilorði. Þegar þú ert með stillingarskrá fyrir biðlara geturðu notað hvaða viðskiptavin sem hentar. Ég nota Tunnelblick fyrir Mac.

Kennslumyndband

Þetta kennslumyndband inniheldur ítarlegar leiðbeiningar um uppsetningu þjónustunnar á DigitalOcean.

PS Ef þér finnst þetta verkefni gagnlegt, vinsamlegast gefðu því stjörnu á GitHub, gafflaðu því og segðu vinum þínum frá. Þátttakendur og öryggisúttektir eru einnig vel þegnar.Pps Ef þessi grein endar á Habr, þá ætla ég að skrifa næstu um hvernig ég setti af stað docker-in-docker og docker-in-docker-in-docker, hvers vegna ég gerði það og hvað kom út úr því.
EDIT1:

  1. Leiðrétta villur í útgáfunni,
  2. Til að bregðast við athugasemdum ákvað ég að setja þessar upplýsingar hér: — forréttindafáninn þarf til að vinna með iptables

EDIT2:

  1. Bætti myndaræsingarskipunina: nú þarf hún ekki –forréttindafánann
  2. Bætti við tengli á myndbandshandbókina á rússnesku: youtu.be/A8zvrHsT9A0

Heimild: www.habr.com

Bæta við athugasemd