Lanse OpenVPN nan Docker nan 2 segonn

Bonjou, rezidan Khabrovsk! Èske w te janm rankontre yon sitiyasyon lè ou reyèlman te vle yo nòmalman transpòte nan yon lòt vil, peyi oswa kontinan? Mwen gen bezwen sa a byen souvan, kidonk opòtinite pou gen pwòp sèvè VPN mwen an, ki ka lanse nenpòt kote, nan yon koup de segonn, te byen ijan.Nan atik sa a mwen vle pale sou pwojè mwen an, ke mwen vin ansent lè mwen te kap chèche yon solisyon pare, nan ka sa a Docker yon imaj ki ta pèmèt ou byen vit mete kanpe yon sèvè OpenVPN, ak yon minimòm de anviwònman ak yon nivo akseptab nan sekirite.

Lanse OpenVPN nan Docker nan 2 segonn

pre-istwa

Kapasite nan kouri sèvis la sou nenpòt machin - ke se yon sèvè fizik, oswa yon sèvè prive vityèl, oswa menm yon espas veso andedan yon lòt sistèm jesyon veso - te kritik. Regard mwen imedyatman tonbe sou Docker. Premyèman, sèvis sa a ap pran popilarite, ak Se poutèt sa pi plis ak plis founisè yo bay solisyon pare-fè ak pre-enstalasyon li yo; Dezyèmman, gen yon depo santralize nan imaj ki soti nan kote ou ka telechaje epi kouri sèvis la lè l sèvi avèk yon sèl lòd nan tèminal la. Lide a ke yon pwojè konsa ta dwe deja egziste te vin jwenn mwen epi mwen fouye anpil. Men, pifò nan pwojè yo ke mwen te jwenn yo te swa twò ankonbran (ou te oblije kreye yon veso pou depo done pèmanan epi lanse veso a ak aplikasyon an plizyè fwa ak paramèt diferan), oswa san dokimantasyon lisid, oswa konplètman abandone. Pa jwenn anyen akseptab. , Mwen te kòmanse travay sou pwojè ou a. Te gen nwit san dòmi anvan yo etidye dokiman, ekri kòd ak debogaj, men finalman sèvis mwen an te wè limyè a nan jounen an epi yo te kòmanse klere ak tout koulè yo nan panèl monokrom dirije routeur la. Se konsa, mwen mande ou renmen ak favè - Docker-OpenVPN. Mwen menm te vini ak yon logo (anwo a, anvan koupe a), men pa jije li strik, paske mwen pa yon designer (ankò). anviwònman ak yon nivo sekirite akseptab. Atravè esè ak erè, mwen te jwenn balans ki pi bon nan kritè sa yo, sepandan, nan kèk kote mwen te oblije sakrifye vitès deplwaman pou dedomajman pou sekirite, ak pou minimòm nan nan anviwònman mwen te oblije peye pou portabilite: nan konfigirasyon aktyèl la, yon veso yon fwa kreye sou yon sèvè pa ka transfere ak lanse sou yon lòt. Pou egzanp, tout sètifika kliyan ak sèvè yo pwodwi lè sèvis la kòmanse epi sa a pral pran apeprè 2 segonn. Sepandan, jenerasyon fichye Hellman Defi a te dwe pran nan tan konstriksyon: li se kreye pandan bati a nan imaj la Docker epi li ka dire jiska 10 minit. Mwen ta vrèman renmen resevwa yon odit sekirite nan yon solisyon konsa nan men kominote respekte a.

Lanse

Pou kòmanse sèvis la nou bezwen plizyè bagay:

  1. Sèvè: fizik oswa vityèl. Li se teyorikman posib yo kouri nan mòd docker-within-docker, men mwen pa te anpil teste opsyon sa a;
  2. Aktyèlman Docker. Anpil founisè hosting bay solisyon pare yo ak Docker abò;
  3. Adrès IP piblik.

Si tout detay yo an plas, Lè sa a, tout sa nou dwe fè se kouri lòd sa a nan konsole sèvè ou a:

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

Yon lektè atantif ta ka remake ke adrès IP sèvè a detèmine otomatikman lè l sèvi avèk ipify.org. Si pou kèk rezon sa a pa travay, Lè sa a, ou ka presize adrès la manyèlman.Si tout etap anvan yo te konplete kòrèkteman, Lè sa a, nou ta dwe wè yon bagay ki sanble nan konsole a:

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!

Nou pre objektif la: kounye a nou bezwen kopye example.com (nan ka w li pral adrès sèvè w la) epi kole l nan ba adrès navigatè w la. Apre ou fin peze Enter, yo pral telechaje fichye client.ovpn la, epi sèvè http la li menm pral disparèt nan oubli. Si solisyon sa a gen dout, ou ka itilize trik sa a: kouri lòd anvan an epi ajoute drapo zp ak modpas. Koulye a, si ou kole lyen ki te pwodwi a nan yon fenèt navigatè, ou pral resevwa yon achiv postal ak yon modpas.Yon fwa ou gen yon dosye konfigirasyon kliyan, ou ka itilize nenpòt kliyan apwopriye. Mwen sèvi ak Tunnelblick pou Mac.

Tutorial videyo

Tutorial videyo sa a gen enstriksyon detaye pou deplwaye sèvis la sou DigitalOcean.

PS Si ou jwenn pwojè sa a itil, tanpri bay li yon etwal sou GitHub, fouchèt li epi di zanmi ou yo. Kontribye yo ak odit sekirite yo tou lajman akeyi.P Si atik sa a fini sou Habr, Lè sa a, mwen planifye yo ekri pwochen an sou fason mwen te lanse docker-in-docker ak docker-in-docker-in-docker, poukisa mwen te fè li ak sa ki soti nan li.
EDIT1:

  1. Korije erè nan piblikasyon an,
  2. Lè m reponn kòmantè yo, mwen deside mete enfòmasyon sa yo isit la: drapo privilèj la nesesè pou travay avèk iptables.

EDIT2:

  1. Amelyore lòd lanse imaj la: kounye a li pa mande pou drapo a -privileged
  2. Te ajoute yon lyen nan gid videyo a nan lang Ris: youtu.be/A8zvrHsT9A0

Sous: www.habr.com

Add nouvo kòmantè