2 saniyəyə Docker-də OpenVPN-i işə salın

Salam, Xabrovsk sakinləri! Həqiqətən başqa bir şəhərə, ölkəyə və ya qitəyə daşınmaq istədiyiniz bir vəziyyətlə qarşılaşmısınızmı? Mənə tez-tez belə ehtiyac var, ona görə də hər yerdə, bir neçə saniyə ərzində işə salına bilən öz VPN serverimə sahib olmaq fürsəti olduqca təcili idi. hazır həll axtarır, bu halda Docker minimum parametrlər və məqbul təhlükəsizlik səviyyəsi ilə OpenVPN serverini tez bir zamanda qurmağa imkan verəcək bir görüntüdür.

2 saniyəyə Docker-də OpenVPN-i işə salın

Prehistorya

İstənilən maşında xidməti işlətmək bacarığı - istər fiziki server, istər virtual şəxsi server, istərsə də başqa konteyner idarəetmə sistemindəki konteyner sahəsi - çox vacib idi. Baxışlarım dərhal Dokerə düşdü. Birincisi, bu xidmət populyarlıq qazanır və buna görə də getdikcə daha çox provayder əvvəlcədən quraşdırma ilə hazır həllər təqdim edir; ikincisi, terminalda bir əmrdən istifadə edərək xidməti yükləyə və işə sala biləcəyiniz şəkillərin mərkəzləşdirilmiş saxlanması var. Belə bir layihənin artıq olması fikri ağlıma gəldi və çox axtardım. Ancaq tapdığım layihələrin əksəriyyəti ya çox çətin idi (daimi məlumatların saxlanması üçün konteyner yaratmalı və konteyneri müxtəlif parametrlərlə bir neçə dəfə işə salmalı idiniz) və ya sağlam sənədlər olmadan və ya tamamilə tərk edildi. Məqbul heç nə tapılmadı. , layihəniz üzərində işə başladım. Sənədləri öyrənmək, kod yazmaq və sazlamaqdan əvvəl yuxusuz gecələr var idi, lakin nəticədə xidmətim günün işığını gördü və marşrutlaşdırıcının monoxrom LED panelinin bütün rəngləri ilə parıldamağa başladı. Beləliklə, sizdən sevməyinizi və lütf etməyinizi xahiş edirəm - Docker-OpenVPN. Mən hətta bir loqo ilə gəldim (yuxarıda, kəsilməmişdən əvvəl), amma onu ciddi şəkildə mühakimə etməyin, çünki mən dizayner deyiləm (artıq).Bu layihəni həyata keçirəndə mən yerləşdirmə sürətini, minimum parametrlər və məqbul təhlükəsizlik səviyyəsi. Sınaq və səhv yolu ilə mən bu meyarların optimal balansını tapdım, lakin bəzi yerlərdə təhlükəsizlik naminə yerləşdirmə sürətini qurban verməli oldum və minimum parametrlər üçün daşınma qabiliyyətini ödəməli oldum: hazırkı konfiqurasiyada, bir serverdə yaradılan konteyner başqasına ötürülə və işə salına bilməz. Məsələn, xidmət başlayanda bütün müştəri və server sertifikatları yaradılır və bu, təxminən 2 saniyə çəkəcək. Bununla belə, Hellman Defi faylının nəslini qurma vaxtı nəzərə alınmalı idi: o, docker təsvirinin qurulması zamanı yaradılır və 10 dəqiqəyə qədər davam edə bilər. Mən hörmətli icmadan belə bir həllin təhlükəsizlik auditini almaq istərdim.

Başlanğıc

Xidmətə başlamaq üçün bizə bir neçə şey lazımdır:

  1. Server: fiziki və ya virtual. Docker-within-docker rejimində işləmək nəzəri cəhətdən mümkündür, lakin mən bu seçimi geniş şəkildə sınaqdan keçirməmişəm;
  2. Əslində Docker. Bir çox hosting provayderləri bortda Docker ilə hazır həllər təqdim edir;
  3. İctimai IP ünvanı.

Bütün təfərrüatlar yerindədirsə, o zaman etməli olduğumuz yeganə şey serverinizin konsolunda aşağıdakı əmri yerinə yetirməkdir:

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

Diqqətli oxucu serverin IP ünvanının avtomatik olaraq təyin olunduğunu fərq etmiş ola bilər ipify.org. Əgər nədənsə bu işləmirsə, o zaman ünvanı əl ilə təyin edə bilərsiniz.Əgər bütün əvvəlki addımlar düzgün yerinə yetirilibsə, konsolda oxşar bir şey görməliyik:

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!

Məqsədimizə yaxınıq: indi kopyalamalıyıq example.com (sizin vəziyyətinizdə bu, serverinizin ünvanı olacaq) və onu brauzerinizin ünvan çubuğuna yapışdırın. Siz Enter düyməsini basdıqdan sonra client.ovpn faylı endiriləcək və http serverinin özü unudulacaq. Bu həll şübhə doğurursa, aşağıdakı hiylədən istifadə edə bilərsiniz: əvvəlki əmri yerinə yetirin və bayraqlar əlavə edin zp və parol. İndi yaradılan linki brauzer pəncərəsinə yerləşdirsəniz, parol ilə zip arxivi alacaqsınız.Müştəri konfiqurasiya faylınız olduqdan sonra istənilən uyğun müştəridən istifadə edə bilərsiniz. Mən Mac üçün Tunnelblick istifadə edirəm.

Video dərslik

Bu video dərslikdə xidmətin DigitalOcean-da yerləşdirilməsi üçün ətraflı təlimatlar var.

PS Bu layihəni faydalı hesab edirsinizsə, lütfən, GitHub-da ona bir ulduz verin, onu bağlayın və dostlarınıza deyin. İştirakçılar və təhlükəsizlik auditləri də geniş şəkildə qarşılanır.PPS Əgər bu məqalə Habr-da bitərsə, onda mən docker-in-docker və docker-in-docker-in-docker-i necə işə saldığım, niyə bunu etdiyim və ondan nə çıxdığı haqqında növbəti məqaləni yazmağı planlaşdırıram.
EDIT1:

  1. Nəşrdə düzəldilmiş səhvlər,
  2. Şərhlərə cavab olaraq bu məlumatı bura yerləşdirmək qərarına gəldim: iptables ilə işləmək üçün —imtiyazlı bayraq lazımdır.

EDIT2:

  1. Təsvirin işə salınması əmri təkmilləşdirildi: indi o, imtiyazlı bayrağı tələb etmir
  2. Rusdilli video bələdçiyə keçid əlavə edildi: youtu.be/A8zvrHsT9A0

Mənbə: www.habr.com

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