OpenVPN i Docker: an conradh rite a theastaíonn ó chliant íosta
Íomhá athbhreithnithe, próifíl chosanta amháin, rochtain TUN agus NET_ADMIN. Cad a fhaigheann an coimeádán, cad nár cheart dó a fháil, agus conas a chruthú go n-oibríonn an tollán.
Cuir cliant VPN i gcoimeádán agus gheobhaidh tú aon spás ainmneacha amháin a bhfuil tollán ann, ní óstach a sheolann a thrácht ar fad trí VPN. Tionscadail ar leithligh iad sin, agus is é a láimhseáil mar cheann amháin an bealach a gcríochnaíonn coimeádáin faoi phribhléid trí thimpiste. Ní chlúdaíonn an lámhleabhar seo ach an chéad cheann: íomhá athbhreithnithe amháin, próifíl chosanta amháin agus próiseas cliaint atá teoranta do a spás ainmneacha líonra féin.
Tosaigh ó dhéantán atá ceadaithe ag duine cheana. Glactar leis sna céimeanna thíos le híomhá ina bhfuil an ríomhchlár inrite openvpn agus próifíl chliaint iomlán a bhfuil a teastas agus a hábhar eochrach réitithe cheana laistigh den mhúntáil. Ní thógann siad bogearraí, ní eisíonn siad dintiúir agus ní chlúdaíonn siad timpeallachtaí gan root ná coimeádáin dhúchasacha Windows, agus athraíonn gach ceann acu an freagra.
Cad a fhaigheann an coimeádán agus cad nach bhfaigheann sé
Coinnigh an phróifíl agus gach a dtagraíonn sí dó i gcomhadlann áitiúil le ceadanna teoranta, múntáilte mar inléite amháin. Caithfear cosáin choibhneasta laistigh den phróifíl a réiteach laistigh den mhúntáil sin; is mionsonra é sin a chailleann daoine nuair a bhíonn teastas comhadlann amháin os cionn na próifíle agus nach bhfeiceann an coimeádán riamh é.
services:
vpn:
image: ${VPN_CLIENT_IMAGE:?set the reviewed image reference}
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ./vpn:/vpn:ro
working_dir: /vpn
entrypoint: ["openvpn"]
command: ["--config", "/vpn/client.ovpn"]
Tugann an comhad sin trí rud agus ní iarrann sé aon rud eile. Ba cheart tagairt na híomhá a phionnáil le digest má deir do pholasaí imlonnaithe sin, agus ba cheart gurbh í an phróifíl athbhreithnithe a bheadh ann, ní cóip a chuir duine in eagar ar an óstach.
Ciallaíonn inléite amháin anseo nach féidir leis an gcoimeádán do chuid comhad ar an óstach a athrú; ní chiallaíonn sé nach féidir leis an gcoimeádán an eochair phríobháideach a mhúntáil tú a léamh. Sin é pointe iomlán na múntála, agus is é sin an fáth a bhfuil tábhacht fós le ceadanna comhad, le húinéireacht agus leis an mbealach ar tháinig an rún chuig an óstach. Ná cuir focal faire ar an líne ordaithe riamh agus ná bácáil isteach i gciseal íomhá é, mar go maireann an dá rud in áiteanna nach féidir leat glanadh suas ina dhiaidh sin.
Cumais, entrypoint agus an gaiste eatarthu
Teastaíonn dhá shocrú agus déanann siad obair neamhghaolmhar. Ligeann NET_ADMIN d'ionramháil comhéadan agus bealaí laistigh de spás ainmneacha an choimeádáin. Ligeann iontráil an fheiste /dev/net/tun don phróiseas an fheiste tolláin a oscailt ar chor ar bith. Má thugtar ceann gan an ceann eile, cruthaítear teip shoiléir, rud atá áisiúil: teipeann feiste TUN atá ar iarraidh agus í ag oscailt, agus teipeann cumas atá ar iarraidh nuair a dhéanann an cliant iarracht an comhéadan a chumrú.
Ní dhlisteanóidh ceachtar acu privileged: true. Faigheann coimeádán faoi phribhléid gach cumas móide rochtain ar fheistí, agus is deonú i bhfad níos mó é sin ná mar a theastaíonn ón ualach oibre seo. Míníonn an tagairt do phribhléidí agus cumais an rithchomhshaoil cé chomh fada agus a shroicheann an deonú sin. Má iarrann chart nó post blag é, seiceáil ar dtús ar chosán feiste atá ar iarraidh nó cumas atá ar iarraidh a bhí sa riachtanas i ndáiríre.
Is é an t-athshocrú ar entrypoint an chuid a bhíonn ag baint. Tá glaoch díreach ar openvpn ceart d'íomhá shimplí agus mícheart d'aon íomhá táirge a n-ullmhaíonn a script tosaigh rialacha balla dóiteáin, comhaid réitithe nó dintiúir sula ndéantar an daemon a fhorghníomhú. Má sheachnaítear an script sin, seachnaítear an t-ullmhúchán agus fágtar tú ag dífhabhtú tolláin a tháinig aníos i spás ainmneacha leathchumraithe.
Rith an cliant sa réamhphlean agus lig dó a bheith ina phríomhphróiseas ag an gcoimeádán. Sceitheann próiseas a dhéanann daemonú láithreach, atosaíonn an coimeádán i lúb, agus tá na logaí a theastaíonn uait scaipthe thar atosuithe a bhfuil cuma chéanna orthu go léir.
Fíoraigh ón taobh istigh den spás ainmneacha, ní ón óstach
Ardaigh an stac, deimhnigh sa log gur shroich an cliant staid nasctha, agus ansin scrúdaigh an spás ainmneacha a choinníonn an tollán i ndáiríre.
docker compose up -d
docker compose logs --tail 40 vpn
docker compose exec vpn ip -br addr
docker compose exec vpn ip route
Ba cheart don liosta seoltaí comhéadan tolláin a thaispeáint le seoladh ón linn, agus ba cheart don tábla bealaí na cinn scríbe brúite a thaispeáint ag díriú air. Má tá an comhéadan ar iarraidh, níor shroich an cliant riamh an pointe chun é a chruthú. Má tá sé ann ach nach n-úsáideann aon bhealach é, is é an push nó na roghanna bealaí an áit le féachaint.
Ansin tástáil an ceann scríbe a bhfuil tú ag iarraidh, ón spás ainmneacha a cheaptar a úsáideann an tollán, leis an bhfeidhmchlár agus ní le ping amháin. Teip ar leithligh is ea réiteach ainmneacha ar fiú é a thástáil go sainráite: ní dhéanann seoladh DNS brúite an réiteoir de chuid coimeádáin a nuashonrú as féin, agus réiteoidh cliant neamhspleách a thugann neamhaird den push ainmneacha trí cibé rud a chumraigh an íomhá.
Tá an staid dhícheangailte ina cuid den chonradh
Teastaíonn a sheiceáil féin ó iompar athcheangail, mar cruthaíonn polasaí atosaigh go n-atosaítear an próiseas agus ní deir sé aon rud faoi cad a dhéanann an trácht eatarthu. Stop an tollán, bain triail as an gceann scríbe beartaithe agus féach an ndiúltaítear don nasc, an bhfanann sé crochta nó an n-éiríonn sé go ciúin trí ghnáthbhealach an choimeádáin. Is é an toradh deireanach an ceann a bhfuil tábhacht leis, agus tá sé dofheicthe i loga sláintiúil.
Mura gceadmhaítear don ualach oibre an ghnáthbhealach a úsáid riamh, dear an méid sin go sainráite le rialacha balla dóiteáin agus le comhartha ullaimh laistigh den spás ainmneacha. Is polasaí a scríobhann tú agus a thástálann tú é kill switch, ní airí a fhaigheann tú le hoidhreacht trí chliant a rith i gcoimeádán.
Ar deireadh, cuimhnigh ar an teorainn: maireann na bealaí seo i spás ainmneacha an choimeádáin agus ní thagann siad in ionad tábla ródaithe an óstaigh. Fanann rialacha seolta ar aghaidh, aistriúcháin agus balla dóiteáin Docker mar chuid den chosán seachtrach, agus ní comhéadan VPN é port foilsithe.