Գործարկեք OpenVPN-ը Docker-ում 2 վայրկյանում

Բարև, Խաբրովսկի բնակիչներ: Երբևէ բախվե՞լ եք մի իրավիճակի, երբ իսկապես ցանկանաք վիրտուալ կերպով ձեզ տեղափոխել մեկ այլ քաղաք, երկիր կամ մայրցամաք: Ես բավականին հաճախ եմ ունենում այս կարիքը, ուստի հնարավորություն ընձեռվեց ունենալ իմ սեփական VPN սերվերը, որը կարող է գործարկվել ցանկացած վայրում, մի քանի վայրկյանում, բավականին հրատապ էր: Այս հոդվածում ես ուզում եմ խոսել իմ նախագծի մասին, որը ես մտահղացել էի, երբ ես փնտրում է պատրաստի լուծում, այս դեպքում՝ Docker պատկեր, որը թույլ կտա արագ կարգավորել OpenVPN սերվերը՝ նվազագույն պարամետրերով և անվտանգության ընդունելի մակարդակով։

Գործարկեք OpenVPN-ը Docker-ում 2 վայրկյանում

նախապատմությանը

Ծառայությունը ցանկացած մեքենայի վրա գործարկելու կարողությունը՝ լինի դա ֆիզիկական սերվեր, թե վիրտուալ մասնավոր սերվեր, կամ նույնիսկ կոնտեյներային տարածք մեկ այլ կոնտեյների կառավարման համակարգի ներսում, կարևոր էր: Իմ հայացքն անմիջապես ընկավ Դոկերին։ Նախ, այս ծառայությունը դառնում է ժողովրդականություն, և, հետևաբար, ավելի ու ավելի շատ մատակարարներ պատրաստի լուծումներ են տրամադրում դրա նախնական տեղադրմամբ. երկրորդը, կա պատկերների կենտրոնացված պահեստավորում, որտեղից կարող եք ներբեռնել և գործարկել ծառայությունը՝ օգտագործելով մեկ հրաման տերմինալում: Գաղափարը, որ նման նախագիծ արդեն պետք է լինի, ինձ մոտ առաջացավ, և ես շատ փնտրեցի։ Բայց իմ գտած նախագծերի մեծ մասը կա՛մ չափազանց ծանրաբեռնված էր (դուք պետք է ստեղծեիք տվյալների մշտական ​​պահպանման համար նախատեսված կոնտեյներ և մի քանի անգամ գործարկեք կոնտեյները հավելվածի հետ՝ տարբեր պարամետրերով), կա՛մ առանց ողջամիտ փաստաթղթերի, կա՛մ ամբողջովին լքված: Ընդունելի ոչինչ չգտնելով: , ես սկսեցի աշխատել ձեր նախագծի վրա։ Փաստաթղթերի ուսումնասիրման, կոդ գրելու և վրիպազերծմանն ընդառաջ անքուն գիշերներ կային, բայց ի վերջո իմ ծառայությունը տեսավ օրվա լույսը և սկսեց փայլել երթուղիչի մոնոխրոմ LED վահանակի բոլոր գույներով: Այսպիսով, ես խնդրում եմ ձեզ սիրել և բարեհաճել, Docker-OpenVPN. Ես նույնիսկ լոգոն եմ մշակել (վերևում, նախքան կտրվածքը), բայց խստորեն մի դատեք դրա մասին, քանի որ ես դիզայներ չեմ (այլևս): Երբ ես իրագործեցի այս նախագիծը, ես առաջնահերթություն տվեցի տեղակայման արագությանը, նվազագույնը. կարգավորումներ և անվտանգության ընդունելի մակարդակ: Փորձի և սխալի միջոցով ես գտա այս չափանիշների օպտիմալ հավասարակշռությունը, այնուամենայնիվ, որոշ տեղերում ես ստիպված էի զոհաբերել տեղակայման արագությունը հանուն անվտանգության, և ես ստիպված էի վճարել շարժականության համար նվազագույն պարամետրերի համար. ընթացիկ կազմաձևում. Մեկ սերվերի վրա ստեղծված կոնտեյները չի կարող փոխանցվել և գործարկվել մյուսի վրա: Օրինակ, բոլոր հաճախորդի և սերվերի վկայականները ստեղծվում են ծառայության մեկնարկի ժամանակ, և դա կտևի մոտ 2 վայրկյան: Այնուամենայնիվ, Hellman Defi ֆայլի սերունդը պետք է հաշվի առնվեր կառուցման ժամանակի մեջ. այն ստեղծվում է դոկերի պատկերի կառուցման ժամանակ և կարող է տևել մինչև 10 րոպե: Ես իսկապես կցանկանայի հարգարժան համայնքից ստանալ նման լուծման անվտանգության աուդիտ:

Գործարկել

Ծառայությունը սկսելու համար մեզ անհրաժեշտ է մի քանի բան.

  1. Սերվեր՝ ֆիզիկական կամ վիրտուալ: Տեսականորեն հնարավոր է գործարկել docker-in-docker ռեժիմում, բայց ես այս տարբերակը լայնորեն չեմ փորձարկել.
  2. Իրականում Դոկեր. Հոսթինգի շատ պրովայդերներ պատրաստի լուծումներ են տրամադրում Docker-ի հետ միասին.
  3. Հանրային IP հասցե.

Եթե ​​բոլոր մանրամասները տեղում են, ապա մեզ մնում է միայն գործարկել հետևյալ հրամանը ձեր սերվերի վահանակում.

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

Ուշադիր ընթերցողը կարող էր նկատել, որ սերվերի IP հասցեն որոշվում է ավտոմատ կերպով՝ օգտագործելով ipify.org. Եթե ​​ինչ-ինչ պատճառներով դա չի աշխատում, ապա կարող եք ձեռքով նշել հասցեն: Եթե բոլոր նախորդ քայլերը ճիշտ են կատարվել, ապա մենք պետք է տեսնենք նման բան վահանակում.

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!

Մենք մոտ ենք նպատակին. հիմա պետք է պատճենել example.com (ձեր դեպքում դա կլինի ձեր սերվերի հասցեն) և տեղադրեք այն ձեր բրաուզերի հասցեագոտում: Enter սեղմելուց հետո client.ovpn ֆայլը կներբեռնվի, իսկ http սերվերն ինքը կվերանա մոռացության: Եթե ​​այս լուծումը կասկածի տակ է, կարող եք օգտագործել հետևյալ հնարքը՝ գործարկել նախորդ հրամանը և ավելացնել դրոշներ zp և գաղտնաբառը: Այժմ, եթե ստեղծված հղումը տեղադրեք դիտարկիչի պատուհանում, դուք կստանաք գաղտնաբառով zip արխիվ: Հաճախորդի կազմաձևման ֆայլ ունենալուց հետո կարող եք օգտագործել ցանկացած հարմար հաճախորդ: Ես օգտագործում եմ Tunnelblick-ը Mac-ի համար:

Վիդեո ձեռնարկ

Այս վիդեո ձեռնարկը պարունակում է մանրամասն հրահանգներ՝ ծառայությունը DigitalOcean-ում տեղակայելու համար:

PS Եթե ​​կարծում եք, որ այս նախագիծը օգտակար է, խնդրում ենք աստղ տալ GitHub-ում, պատառաքաղել այն և պատմել ձեր ընկերներին: Աջակցողները և անվտանգության աուդիտները նույնպես լայնորեն ողջունվում են:PPS Եթե ​​այս հոդվածը ավարտվի Habr-ում, ապա ես նախատեսում եմ գրել հաջորդը այն մասին, թե ինչպես գործարկեցի docker-in-docker-ը և docker-in-docker-in-docker-ը, ինչու ես դա արեցի և ինչ ստացվեց դրանից:
EDIT1- ը `

  1. Հրապարակման մեջ շտկված սխալները,
  2. Պատասխանելով մեկնաբանություններին՝ ես որոշեցի տեղադրել այս տեղեկատվությունը այստեղ՝ «արտոնյալ դրոշն անհրաժեշտ է iptables-ի հետ աշխատելու համար»:

EDIT2- ը `

  1. Բարելավվել է պատկերի գործարկման հրամանը. այժմ այն ​​չի պահանջում –արտոնյալ դրոշակ
  2. Ավելացրել է հղում ռուսալեզու վիդեո ուղեցույցին. youtu.be/A8zvrHsT9A0

Source: www.habr.com

Добавить комментарий