Ilunsad ang OpenVPN sa Docker sa 2 segundos

Kumusta, mga residente sa Khabrovsk! Nakasugat ka na ba og sitwasyon nga gusto gyud nimo nga madala sa laing siyudad, nasud o kontinente? Kanunay kong adunay kini nga panginahanglan, mao nga ang oportunidad nga makabaton sa akong kaugalingon nga VPN server, nga mahimong ilunsad bisan asa, sa pipila ka mga segundo, dinalian kaayo. Niini nga artikulo gusto nakong hisgutan ang akong proyekto, nga akong gipanamkon sa dihang nangita alang sa usa ka andam nga solusyon, sa kini nga kaso Docker usa ka imahe nga magtugot kanimo nga dali nga mag-set up sa usa ka OpenVPN server, nga adunay labing gamay nga mga setting ug usa ka madawat nga lebel sa seguridad.

Ilunsad ang OpenVPN sa Docker sa 2 segundos

sa naunang kasaysayan

Ang katakus sa pagpadagan sa serbisyo sa bisan unsang makina - kini usa ka pisikal nga server, o usa ka virtual nga pribado nga server, o bisan usa ka wanang sa sulud sa sulod sa lain nga sistema sa pagdumala sa sulud - kritikal. Nahulog dayon ang akong panan-aw kang Docker. Una, kini nga serbisyo nagkapopular, ug busa nagkadaghan ang mga provider nga naghatag mga andam nga solusyon sa pre-install niini; ikaduha, adunay usa ka sentralisado nga pagtipig sa mga imahe gikan diin mahimo nimo i-download ug ipadagan ang serbisyo gamit ang usa ka mando sa terminal. Ang ideya nga ang ingon nga proyekto kinahanglan nga naglungtad na miabut kanako ug ako nangita pag-ayo. Apan kadaghanan sa mga proyekto nga akong nakit-an sobra ra ka hago (kinahanglan ka nga maghimo usa ka sudlanan alang sa permanente nga pagtipig sa datos ug ilunsad ang sudlanan nga adunay aplikasyon sa daghang beses nga adunay lainlaing mga parameter), o wala’y maayong dokumentasyon, o hingpit nga gibiyaan. , Nagsugod ko sa pagtrabaho sa imong proyekto. Adunay walay tulog nga mga gabii sa unahan sa pagtuon sa dokumentasyon, pagsulat sa code ug pag-debug, apan sa katapusan ang akong serbisyo nakakita sa kahayag sa adlaw ug nagsugod sa pagkidlap sa tanang mga kolor sa monochrome LED panel sa router. Busa, gihangyo ko ikaw nga higugmaon ug pabor - Docker-OpenVPN. Nagbuhat pa gani ko ug logo (sa ibabaw, sa wala pa ang pagputol), apan ayaw kini hukmi nga estrikto, tungod kay dili ako usa ka tigdesinyo (na). mga setting ug usa ka madawat nga lebel sa seguridad. Pinaagi sa pagsulay ug kasaypanan, nakit-an nako ang kamalaumon nga balanse sa kini nga mga pamatasan, bisan pa, sa pipila ka mga lugar kinahanglan nako nga isakripisyo ang katulin sa pag-deploy alang sa seguridad, ug alang sa labing gamay nga mga setting nga kinahanglan nakong bayran alang sa pagdala: sa karon nga pagsumpo, usa ka Ang sudlanan nga gihimo sa usa ka server dili mabalhin ug ilunsad sa lain. Pananglitan, ang tanan nga mga sertipiko sa kliyente ug server nahimo kung magsugod ang serbisyo ug molungtad kini mga 2 segundos. Bisan pa, ang henerasyon sa Hellman Defi nga file kinahanglan nga himuon sa oras sa pagtukod: kini gihimo sa panahon sa pagtukod sa imahe sa docker ug mahimong molungtad hangtod sa 10 minuto. Gusto gyud nako nga makadawat usa ka pag-audit sa seguridad sa ingon nga solusyon gikan sa respetado nga komunidad.

Lansad

Aron masugdan ang serbisyo kinahanglan namon ang daghang mga butang:

  1. Server: pisikal o virtual. Sa teoriya posible nga modagan sa docker-within-docker mode, apan wala pa nako masulayan kini nga opsyon;
  2. Sa tinuod Docker. Daghang mga hosting provider ang naghatag og andam nga mga solusyon sa Docker sakay;
  3. Pampublikong IP adres.

Kung ang tanan nga mga detalye naa sa lugar, nan ang kinahanglan namon buhaton mao ang pagpadagan sa mosunud nga mando sa console sa imong server:

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

Ang usa ka matinagdanon nga magbabasa tingali nakamatikod nga ang server IP address gitino nga awtomatiko nga gigamit ipify.org. Kung sa usa ka hinungdan dili kini molihok, nan mahimo nimong ipiho ang adres nga mano-mano. Kung ang tanan nga nangaging mga lakang nahuman sa husto, nan kinahanglan naton makita ang usa ka butang nga parehas sa 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!

Duol na kami sa tumong: karon kinahanglan namong kopyahon example.com (sa imong kaso kini ang adres sa imong server) ug idikit kini sa address bar sa imong browser. Human nimo pindota ang Enter, ang client.ovpn file ma-download, ug ang http server mismo mawala sa kalimot. Kung kini nga solusyon adunay pagduhaduha, mahimo nimong gamiton ang mosunod nga limbong: pagdagan ang miaging mando ug pagdugang mga bandila zp ug password. Karon, kung imong i-paste ang nahimo nga link sa usa ka window sa browser, makadawat ka usa ka zip archive nga adunay password. Sa higayon nga adunay ka file sa pag-configure sa kliyente, mahimo nimong gamiton ang bisan unsang angay nga kliyente. Gigamit nako ang Tunnelblick alang sa Mac.

Video tutorial

Kini nga video tutorial adunay mga detalyado nga panudlo alang sa pag-deploy sa serbisyo sa DigitalOcean.

PS Kung nakita nimo nga mapuslanon kini nga proyekto, palihug hatagi kini usa ka bituon sa GitHub, i-fork kini ug isulti sa imong mga higala. Ang mga kontribyutor ug mga pag-audit sa seguridad kay kaylap nga gidawat.PPS Kung kini nga artikulo matapos sa Habr, nan nagplano ako nga isulat ang sunod kung giunsa nako paglansad ang docker-in-docker ug docker-in-docker-in-docker, ngano nga gibuhat ko kini ug kung unsa ang migawas niini.
EDIT1:

  1. Gitul-id nga mga sayup sa publikasyon,
  2. Sa pagtubag sa mga komento, nakahukom ko nga ibutang kini nga impormasyon dinhi: ang β€”pribilehiyo nga bandila gikinahanglan sa pagtrabaho uban sa iptables

EDIT2:

  1. Gipauswag ang mando sa paglansad sa imahe: karon wala na kinahanglana ang -privileged nga bandila
  2. Nagdugang ug link sa Russian-language nga video guide: youtu.be/A8zvrHsT9A0

Source: www.habr.com

Idugang sa usa ka comment