Ainmneacha cliant OpenVPN i dnsmasq: script nó iontrálacha statacha?
Athraíonn seoltaí cliant, ní athraíonn ainmneacha seirbhísí. Gin ainmneacha cliant ón seisiún VPN, pinn ainmneacha seirbhísí i gcomhad drop-in, ansin cuir na cliaint ag úsáid é.
Tagann dhá fhadhb ainmneacha chun cinn ar beagnach gach geata beag OpenVPN. Ní féidir leat ríomhaire glúine ceangailte a shroicheadh leis an ainm ar a dheimhniú, agus níl aon ainmneacha ar na seirbhísí taobh thiar den tollán. Breathnaíonn siad cosúil le fadhb amháin agus teastaíonn cóireálacha contrártha uathu, mar aistríonn seoladh amháin le gach seisiún agus ní aistríonn an ceann eile. Socraigh cén cineál ainm atá á chur agat leis sula ndéanann tú aon rud a chur in eagar.
Socraigh de réir ainm, ní de réir geata
Tá an tástáil simplí: an n-athraíonn an seoladh seo nuair a athcheanglaíonn cliant? Más ea, caithfear an t-ainm a ghiniúint ón seisiún VPN. Mura ea, baineann sé le hiontráil statach is féidir leat a léamh agus a athbhreithniú.
| Name kind | Source of truth | Where it lives |
|---|---|---|
| Connected client | The address OpenVPN just assigned | Generated hosts file, rewritten per session |
| Service behind the tunnel | A fixed address you chose | Static address= drop-in |
| Anything with a certificate name | The certificate, not the pool | Either, but the name must match the certificate |
Is é a meascadh an teip is gnáthaí. Imíonn seirbhís atá pinnáilte sa chomhad ginte an chéad uair a athscríobhann an script é, agus díríonn cliant atá scríofa in iontráil statach ar an té a raibh an seoladh sin aige ar deireadh. Fanann an dá earráid dofheicthe go dtí go réitítear ainm chuig an meaisín mícheart. Faoin am sin glacann an duine atá á dhífhabhtú go bhfuil DNS briste seachas an comhad.
An cosán dinimiciúil: learn-address agus an linn
Tá an sannadh ar eolas ag OpenVPN, mar sin lig dó é a insint duit. Déanann na roghanna freastalaí seo an sannadh buan agus scripteáilte:
client-config-dir /etc/openvpn/ccd
ifconfig-pool-persist /etc/openvpn/ip-pool 60
script-security 2
learn-address /etc/openvpn/learn-address.sh
Ritheann learn-address do script gach uair a chuirtear seoladh leis, a nuashonraítear nó a scriostar, agus cuireann sé an oibríocht, an seoladh agus an t-ainm coitianta ar aghaidh. Cuireann script íosta líne amháin in aghaidh an chliaint leis agus baineann sé amach nuair a scriostar é:
#!/bin/sh
HOSTS=/etc/openvpn/hosts.lan
case "$1" in
add|update) echo "$2 $3" >> "$HOSTS" ;;
delete) sed -i "/^$2 /d" "$HOSTS" ;;
esac
kill -HUP $(cat /var/run/dnsmasq.pid)
Ar ghléas tun is é an dara hargóint seoladh tolláin an chliaint, mar sin is féidir an líne a úsáid go díreach. Ar ghléas tap cuireann OpenVPN seoladh MAC an chliaint ar aghaidh ina ionad, toisc gur féidir le deighleog tap prótacail seachas IPv4 a iompar, agus ansin caithfidh tú an seoladh a chuardach sa chomhad linne de réir an ainm choitianta sula scríobhann tú aon rud.
Bí soiléir faoi cad é an comhad ginte: pictiúr de cé atá ceangailte anois. Imíonn ainmneacha nuair a dhícheanglaítear, rud atá go díreach a theastaíonn uait do ríomhairí glúine a ghluaiseann idir líonraí agus go díreach nach dteastaíonn uait do fhreastalaí a bhíonn ar siúl ar feadh na hoíche.
An cosán statach: address= agus leathnú fearainn
Treoraigh dnsmasq chuig an gcomhad ginte in ionad chomhad hosts an chórais, agus tabhair fearann dó ionas go leathnaítear ainmneacha gearra go hainmneacha láncháilithe:
domain=corp.example
no-hosts
addn-hosts=/etc/openvpn/hosts.lan
listen-address=127.0.0.1,10.8.0.1
bind-interfaces
Nuair a bhíonn domain socraithe, freagraíonn líne mar 10.8.0.6 alice do alice agus do alice.corp.example araon. Coinnigh listen-address ag geata an tolláin agus ag loopback, mar is seirbhís é réiteoir a fhoilsítear ar chomhéadan LAN trí thimpiste nach raibh sé ar intinn agat a thairiscint.
Faigheann seirbhísí nach dtagann ón linn riamh a n-iontrálacha féin. Cuir iad i gcomhad drop-in ar leith i bhfillteán cumraíochta an dáileacháin ionas nach féidir le huasghrádú pacáiste iad a fhorscríobh:
address=/files.corp.example/10.8.0.20
address=/db.corp.example/10.9.0.5
Tabhair an réiteoir ar láimh nó ní tharlóidh aon rud
Ní athraíonn réiteoir nach bhfiafraíonn aon duine de aon rud. Caithfidh an freastalaí é a fhógairt:
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"
Cuireann cliaint Windows an dá rogha i bhfeidhm iad féin. Ní dhéanann formhór na gcliant Linux amhlaidh: teastaíonn comhtháthú réiteora tacaithe uathu, ar nós crúca update-resolv-conf an dáileacháin nó láimhseáil DNS NetworkManager, nó fearann cuardaigh agus freastalaí ainmneacha de láimh. Seiceáil réiteoir iarbhír an chliaint in ionad glacadh leis gur urramaíodh an push, mar breathnaíonn push a ndéantar neamhaird de go díreach cosúil le freastalaí nach bhfreagraíonn.
Fíoraigh ar thrí shraith
Fiafraigh den fhreastalaí go díreach ar dtús, ansin de chliant, ansin den fheidhmchlár:
dig +short @10.8.0.1 alice.corp.example
getent hosts files.corp.example
Má fhreagraíonn fiosrúcháin dhíreacha agus nach ndéanann an feidhmchlár, is é an t-aistriú chuig an gcliant an locht seachas an chrios. Má réitítear an t-ainm agus má theipeann ar an gceangal fós, tá an t-ainm ceart agus is é an bealach nó an balla dóiteáin an chéad rud eile le breathnú air.
Scríobh an dá chatagóir in aice na cumraíochta: cé na hainmneacha a ghintear, cé acu atá pinnáilte agus cén deimhniú a chaithfidh gach ceann a mheaitseáil. Cóipeálfaidh an chéad duine eile a chuireann freastalaí leis an bpatrún is túisce a fhaigheann sé.