KĂ€ivitame OpenVPN'i Docker'is kahe sekundi jooksul

Tere, habrovanid! Kas olete kunagi sattunud olukorda, kus on vĂ€ga soov olnud viibida virtuaalselt teises linnas, riigis vĂ”i isegi teisel kontinentil? Mul tekib see vajadus piisavalt sageli, seega VPN-serveri olemasolu, mida saaks igalpool kiiresti kĂ€ivitada, on minu jaoks olnud vĂ€ga oluline. Selle artikli eesmĂ€rk on rÀÀkida oma projektist, mille ma mĂ”tlesin vĂ€lja, otsides valmis lahendust, antud juhul Docker-ima, mis vĂ”imaldaks kiiresti ĂŒles seadistada OpenVPN-serveri minimaalse seadistuse ja vastuvĂ”etava turvalisuse tasemega.

KĂ€ivitame OpenVPN'i Docker'is kahe sekundi jooksul

Eellugu

VĂ”imalus kĂ€ivitada teenust mis tahes seadmes: olgu see fĂŒĂŒsiline server, virtuaalne privaatserver vĂ”i isegi konteineriruum teises konteinerite haldustarkvaras — oli kriitiliselt oluline. Minu tĂ€helepanu köitis kohe Docker. Esiteks, see teenus omandab jĂ€rjest enam populaarsust, mistĂ”ttu ĂŒha rohkem teenusepakkujaid pakuvad ettevalmistatud lahendusi selle eelinstalleerimisega; teiseks — on olemas keskne pildihoidla, kust saab alla laadida ja teenust ĂŒhe kĂ€suga terminalis kĂ€ivitada. MĂ”te, et midagi sellist projekti peaks juba olemas olema, kĂ€is mul peast lĂ€bi ja ma otsisin jĂ€rjekindlalt. Kuid enamik projekte, mida leidsin, olid kas liiga keerulised (pidi looma konteineri andmete pĂŒsivaks salvestamiseks ja mitu korda kĂ€ivitama rakenduse konteineri erinevate parameetritega) vĂ”i ilma mĂ”istliku dokumentatsioonita, vĂ”i lausa hĂŒlgatud. Kuna ma ei leidnud midagi vastuvĂ”etavat, alustasin oma projekti loomist. Ees ootasid unetud ööd dokumentatsioonis uurimise, koodikirjutamise ja silumisega, kuid lĂ”puks nĂ€gi minu teenus pĂ€evavalgust ja mĂ€ngis kĂ”ikides monokroomse LED-paneeli vĂ€rvitoonides. Nii et palun tervitage ja armastage — Docker-OpenVPN. Olen isegi logotĂŒĂŒbi vĂ€lja mĂ”elnud (ĂŒleval, enne katti), kuid Ă€rge olge selle suhtes liiga kriitilised, kuna ma ei ole (enam) disainer. Kui ma seda projekti rakendasin, seadsin ma esikohale kĂ€ivituskiirus, minimaalsete seadistuste ja vastuvĂ”etava turvalisuse taseme. Katse-eksituse meetodil leidsin ma nende kriteeriumide vahel optimaalse tasakaalu, kuigi kohati tuli turvalisuse nimel ohverdada kĂ€ivituskiirus, ja minimaalsed seadistused nĂ”udsid kannatlikkust: praeguses konfiguratsioonis ei saa ĂŒhtegi korda loodud konteinerit ĂŒhest serverist teise ĂŒle viia ja kĂ€ivitada. NĂ€iteks luuakse kĂ”ik kliendi ja serveri sertifikaadid teenuse kĂ€ivitamisel ning see vĂ”tab aega umbes 2 sekundit. Kuid Defi Hellmani faili genereerimine tuli vĂ€lja viia ehitamise ajaks: see luuakse dokkeri pildi koostamise kĂ€igus ja vĂ”ib kesta kuni 10 minutit. Ma sooviksin vĂ€ga saada sellest lahendusest turvaauditit austatud kogukonnalt.

KĂ€ivitamine

Teenuse kÀivitamiseks on meil vaja mitmeid asju:

  1. Server: fĂŒĂŒsiline vĂ”i virtuaalne. Teoreetiliselt vĂ”ib kĂ€ivitada Docker-in-Docker reĆŸiimis, kuid ma ei ole selle variandi ulatuslikku testimist teinud;
  2. Tegelikult Docker. Paljud hostimise pakkujad pakuvad valmis lahendusi Dockeriga "ĂŒles";
  3. Avalik IP-aadress.

Kui kÔik andmed on kohal, jÀÀb meil kÀivitada jÀrgmine kÀsk serveri konsoolis:

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Àpne lugeja on vÔinud mÀrkida, et serveri IP-aadress mÀÀratakse automaatselt ipify.org. Kui mingil pÔhjusel see ei toimi, siis vÔib aadressi kÀsitsi mÀÀrata. Kui kÔik eelnevad sammud on Ôigesti tehtud, siis peaksime nÀgema konsoolis midagi sellist:

PĂŒhapĂ€ev Juuni 9 08:56:11 2019 Algatamise seeria on lĂ”petatud
PĂŒhapĂ€ev Juuni 9 08:56:12 2019 Client.ovpn faili on genereeritud
PĂŒhapĂ€ev Juuni 9 08:56:12 2019 Serveri konfiguratsioon on kĂ€ivitunud, laadige alla oma client.ovpn konfiguratsioon http://example.com/
PĂŒhapĂ€ev Juuni 9 08:56:12 2019 MÄRKUS: PĂ€rast oma kliendi konfiguratsiooni allalaadimist lĂŒlitatakse http-server vĂ€lja!

Olemegi sihini lĂ€hedal: nĂŒĂŒd peame kopeerima example.com (teie puhul on see teie serveri aadress) ja kleepige see brauseri aadressiriba. PĂ€rast Enter'i vajutamist laaditakse alla client.ovpn fail ja http server kaob olematusse. Kui see lahendus tekitab kahtlusi, vĂ”ite proovida jĂ€rgmist trikki: kĂ€ivitage eelmine kĂ€sk ja lisage lipud zp ja parool. NĂŒĂŒd, kui kleepite genereeritud lingi brauseri aknasse — saate parooliga zip-aruande. Kui teil on klientide konfiguratsioonifail, vĂ”ite kasutada mĂ”nda sobivat klienti. Mina kasutan Tunnelblicki Macis.

Videotutvustus

See videotutvustus sisaldab pÔhjalikku juhendit teenuse kÀivitamiseks DigitalOceanil.

MĂ€ngi videot
P.S. Kui arvate, et see projekt on kasulik, palun andke sellele staar GitHubis, tehke fork ja rÀÀkige sÔpradele. Kaasaegsed arendajad ja turvauditid on samuti teretulnud.P.P.S. Kui see artikkel jÔuab Habrisse, kavatsen kirjutada jÀrgmise selle kohta, kuidas ma jooksin Dockerit Dockeris ja Dockerit Dockeris Dockeris, milleks ma seda tegin ja mis sellest vÀlja tuli.
EDIT1:
  1. Parandasin vigasid avaldamisel,
  2. Kommentaaridele vastates otsustasin selle informatsiooni siia viia: lipp —privileged on vajalik iptables'iga töötamiseks

EDIT2:

  1. Parandasin pildi kĂ€ivitamise kĂ€sku: nĂŒĂŒd ei vaja see lippu —privileged
  2. Lisatud link vene keeles videot ĂŒlevaatusele: youtu.be/A8zvrHsT9A0

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster