Käivitage OpenVPN Dockeris 2 sekundiga

Tere, Habrovski elanikud! Kas olete kunagi kokku puutunud olukorraga, kus oleksite tõesti soovinud, et teid transporditaks teise linna, riiki või kontinendile? Mul on seda vajadust üsna sageli, nii et võimalus omada oma VPN-serverit, mille saab igal pool paari sekundiga käivitada, oli üsna kiire. Selles artiklis tahan rääkida oma projektist, mille ma välja mõtlesin, kui ma olin otsin valmislahendust, antud juhul Docker pilti, mis võimaldaks minimaalsete seadistuste ja vastuvõetava turvatasemega kiiresti seadistada OpenVPN-i serveri.

Käivitage OpenVPN Dockeris 2 sekundiga

eelajalugu

Võimalus teenust käitada mis tahes masinas – olgu selleks füüsiline server või virtuaalne privaatserver või isegi konteinerruum mõnes muus konteinerihaldussüsteemis – oli kriitilise tähtsusega. Minu pilk langes kohe Dockerile. Esiteks on see teenus kogumas populaarsust ja seetõttu pakuvad üha enam pakkujaid selle eelinstalleerimisega valmislahendusi; teiseks on piltide tsentraliseeritud salvestusruum, kust saate teenust terminalis ühe käsuga alla laadida ja käivitada. Mul tekkis mõte, et selline projekt peaks juba olemas olema ja otsisin kõvasti. Kuid enamik projekte, mis ma leidsin, olid kas liiga tülikad (püsi andmete salvestamiseks tuli luua konteiner ja konteiner koos rakendusega mitu korda erinevate parameetritega käivitada) või ilma mõistliku dokumentatsioonita või täiesti mahajäetud. Ei leidnud midagi vastuvõetavat , alustasin tööd teie projektiga. Dokumentatsiooni uurimise, koodi kirjutamise ja silumise ees ootasid magamata ööd, kuid lõpuks nägi minu teenus ilmavalgust ja hakkas särama kõigis ruuteri ühevärvilise LED-paneeli värvides. Niisiis, ma palun teil armastada ja soosida - Docker-OpenVPN. Mõtlesin isegi logo välja (ülal, enne lõiget), aga ära hinda seda rangelt, sest ma pole (enam) disainer.. Selle projekti elluviimisel seadsin esikohale juurutamise kiiruse, minimaalselt seaded ja vastuvõetav turvatase. Katse-eksituse meetodil leidsin nende kriteeriumide vahel optimaalse tasakaalu, kuid mõnes kohas pidin turvalisuse huvides ohverdama kasutuselevõtu kiiruse ja minimaalsete seadistuste eest pidin kaasaskantavuse eest maksma: praeguses konfiguratsioonis ühes serveris loodud konteinerit ei saa teises serveris üle kanda ega käivitada. Näiteks kõik kliendi ja serveri sertifikaadid genereeritakse teenuse käivitumisel ja selleks kulub umbes 2 sekundit. Hellman Defi faili genereerimine tuli aga arvestada ehitusaega: see luuakse dokipildi ehitamise ajal ja võib kesta kuni 10 minutit. Tahaks väga lugupeetud kogukonnalt sellise lahenduse turvaauditit saada.

Käivita

Teenuse käivitamiseks vajame mitut asja:

  1. Server: füüsiline või virtuaalne. Teoreetiliselt on võimalik töötada režiimis docker-in-docker, kuid ma pole seda võimalust laialdaselt testinud;
  2. Tegelikult Docker. Paljud hostingu pakkujad pakuvad valmislahendusi koos Dockeriga;
  3. Avalik IP-aadress.

Kui kõik üksikasjad on paigas, peame teie serveri konsoolis käivitama järgmise käsu:

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

Tähelepanelik lugeja võis märgata, et serveri IP-aadress määratakse automaatselt kasutades ipify.org. Kui see mingil põhjusel ei tööta, saate aadressi käsitsi määrata. Kui kõik eelnevad toimingud olid õigesti tehtud, peaksime konsoolis nägema midagi sarnast:

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!

Oleme eesmärgile lähedal: nüüd on vaja kopeerida example.com (teie puhul on see teie serveri aadress) ja kleepige see oma brauseri aadressiribale. Pärast sisestusklahvi vajutamist laaditakse fail client.ovpn alla ja http-server ise kaob unustuse hõlma. Kui selles lahenduses on kahtlusi, võite kasutada järgmist nippi: käivitage eelmine käsk ja lisage lipud zp ja parool. Nüüd, kui kleepite loodud lingi brauseriaknasse, saate parooliga ZIP-arhiivi. Kui teil on kliendi konfiguratsioonifail, saate kasutada mis tahes sobivat klienti. Ma kasutan Tunnelblicki Maci jaoks.

Videoõpetus

See videoõpetus sisaldab üksikasjalikke juhiseid teenuse DigitalOceanis juurutamiseks.

PS Kui leiate, et see projekt on kasulik, pange sellele GitHubis tärn, ühendage see ja rääkige sellest oma sõpradele. Kaastöötajad ja turvaauditid on samuti laialdaselt teretulnud.PPS Kui see artikkel jõuab Habrile, siis kavatsen järgmise kirjutada sellest, kuidas ma käivitasin docker-in-doccker ja docker-in-docker-in-docker, miks ma seda tegin ja mis sellest välja tuli.
EDIT1:

  1. Väljaandes parandatud vead,
  2. Kommentaaridele vastates otsustasin selle teabe siia panna: iptablesiga töötamiseks on vaja lipu privilegeeritud

EDIT2:

  1. Täiustatud pildikäivituskäsk: nüüd ei vaja see privilegeeritud lippu
  2. Lisatud link venekeelsele videojuhendile: youtu.be/A8zvrHsT9A0

Allikas: www.habr.com

Lisa kommentaar