Comhad dintiúirí nó soicéad bainistíochta OpenVPN: cé acu a scriptiú
Clúdaíonn auth-user-pass leid an chuntais; clúdaíonn an soicéad bainistíochta an ceathrar. Déan comparáid idir an nochtadh, costas na scripte agus conas a theipeann gach ceann i seirbhís.
Is iondúil nach fadhb líonra í script a thosaíonn OpenVPN agus nach ndéanann ceangal riamh: tá an cliant ina shuí ag leid gan teirminéal chun é a tharraingt. Tá dhá bhealach thacaithe go beacht ag OpenVPN chun an leid sin a fhreagairt gan duine, comhad dintiúirí taobh thiar de auth-user-pass agus an soicéad bainistíochta, agus ní féidir iad a mhalartú. Cosnaíonn an comhad treoir amháin agus freagraíonn sé leid amháin; freagraíonn an soicéad gach leid agus tugann sé cainéal rialaithe neamhfhíordheimnithe do rud ar bith is féidir le port loopback a oscailt. Braitheann cé acu a bhaineann le do imscaradh ar an leid atá ag blocáil i ndáiríre, agus ar an rún ar féidir leat é a ligean i do thost.
Ainmnigh an leid sula roghnaíonn tú meicníocht
Breathnaíonn ceithre leid mar an gcéanna ar theirminéal. Tagann an péire cuntais ó shocrú PAM nó auth-user-pass-verify an fhreastalaí agus freagraíonn auth-user-pass é. Baineann pasfhrása eochrach príobháidí le comhad na heochrach agus léitear í trí --askpass nó clóscríobhtar de láimh. Iarrann beartán PKCS#12 a phasfhocal féin. Úsáideann fíordheimhniú seachfhreastalaí an comhad auth a thógann --http-proxy, ní dintiúirí an chuntais.
Nuair a ritheann OpenVPN mar leanbh de systemd, PHP nó Node níl aon teirminéal ann, mar sin blocálann aon cheann díobh go ciúin. Suíonn an próiseas ann, stopann an loga tar éis líne an tsifir, agus téann an t-aonad thar am sa deireadh; is é an ciúnas sin an fáth a gcuireann daoine lúb athiarrachta nó sleep leis in ionad féachaint cé acu leid atá ar feitheamh. Ní féidir ach leis an soicéad bainistíochta freagra a thabhairt ar an gceithre cinn. Freagraíonn an comhad dintiúirí an chéad cheann agus faic eile.
auth-user-pass: comhad amháin, leid amháin
Coinníonn an comhad an t-ainm úsáideora ar líne a haon agus an pasfhocal ar líne a dó, agus faic eile: gan chomharthaí athfhriotail, gan ainmneacha eochrach, gan trácht. Socraigh mód 600 agus déan an t-úinéir den chuntas a ritheann openvpn, rud atá do sheirbhís go minic ina úsáideoir tiomnaithe seach do logáil isteach. Is é comhad atá faoi úinéireacht root faoi /root an difríocht idir ordú a oibríonn i do bhlaosc agus aonad a theipeann ag an tosú.
Athraíonn dhá shonra comhad ceart ina leid. Fágann eagarthóir a shábhálann CRLF aisfhillteach carráiste greamaithe den phasfhocal, mar sin diúltaíonn an freastalaí do phasfhocal a bhféachann sé ceart sa chomhad; seiceáil le cat -A nó od -c seach le do shúil. Agus ciallaíonn auth-user-pass gan argóint laistigh den phróifíl «fiafraigh den úsáideoir» de réir dearaidh, rud nach féidir le dara treoir ar an líne ordaithe a shárú b'fhéidir, toisc go ndéantar an phróifíl a pharsáil san áit a bhfuil sí.
Is é ord na roghanna an tríú gaiste, agus baineann sé leis an leagan. Déanann roinnt tógála OpenVPN 2.4 neamhaird de --auth-user-pass nuair a thagann sé roimh --config, mar sin ceanglaíonn an dá rogha chéanna san ord eile. Cuir an treoir sa phróifíl, nó tar éis --config ar an líne ordaithe, agus grep an phróifíl do gach tarlú sula n-athraíonn tú aon rud eile.
Baineann auth-nocache leis an meicníocht seo ach ní sholáthraíonn sé faic. Cuireann sé teorainn le cé chomh fada a choinníonn an cliant an dintiúr sa chuimhne, rud a chabhraíonn tar éis tuairte agus nach gcabhraíonn ar chor ar bith nuair a bhíonn an comhad ar iarraidh. Athléann athcheangal tar éis am normal ón bhfreastalaí an comhad, mar sin is féidir le dintiúr a d'oibrigh ag an tosú dul in éag i lár an lae.
An soicéad bainistíochta: gach leid, níos mó dromchla
Tosaigh an cliant le héisteoir agus abair go sainráite go dtuairisceofar leideanna air, ag baint úsáide as na treoracha atá doiciméadaithe sa lámhleabhar OpenVPN 2.6:
management 127.0.0.1 3030
management-query-passwords
Ó bash, coinnigh an ceangal ar thuairisceoir comhaid spártha agus freagair de réir ainm an leide seach de réir suíomh, toisc gur féidir le hathcheangal fiafraí in ord eile:
exec 3<>/dev/tcp/127.0.0.1/3030
while read -r -u 3 line; do
case "$line" in
*"Need 'Auth' username/password"*)
echo 'username "Auth" alice' >&3
echo 'password "Auth" secret' >&3 ;;
*"Need 'Private Key' password"*)
echo 'password "Private Key" secret' >&3 ;;
esac
done
Is é an t-iompar an teorainn. Tá prótacal na bainistíochta ina ghlantéacs thar TCP ar loopback, mar sin ní féidir an t-éisteoir a fhoilsiú ar sheoladh LAN nó tolláin chun go sroichfeadh rialtóir cianda é; ciallaíonn rialtóir cianda aistriú SSH, ní ceangal níos leithne. Ní ghlacann an daemon pobail ach le cliant bainistíochta amháin ag an am, mar sin ní féidir le GUI ná monatóir an soicéad a roinnt le do script. Diúltaítear don dara ceangal, ní chuirtear sa scuaine é, agus breathnaíonn an teip mar script atá éirithe bodhar.
Is cainéal rialaithe é an soicéad sin freisin. Gan pasfhocal bainistíochta, is féidir le haon rud is féidir ceangal le 127.0.0.1:3030 stádas a léamh, an tollán a mharú nó leid a fhreagairt é féin. Is den aicme chéanna rún iad pasfhocal na bainistíochta agus an comhad dintiúirí, agus tá an chúram céanna tuillte ag an dá cheann.
Cé acu a fheileann don imscaradh
Roghnaigh an comhad dintiúirí nuair arb é an péire cuntais an t-aon leid, nuair a ritheann an cliant mar sheirbhís le húinéir cobhsaí, agus nuair is féidir leat comhad 600 a choinneáil amach ó chúltacaí nach rialaíonn tú. Roghnaigh an soicéad bainistíochta nuair a bhíonn pasfhrása eochrach nó pasfhocal PKCS#12 i gceist, nuair a dhéanann an timfhilleadh maoirseacht ar an bpróiseas cheana, nó nuair is gá duit stádas agus leideanna a fheiceáil agus athcheangal á dhífhabhtú agat.
Bogann dhá choinníoll an cinneadh. Más é /bin/sh an timfhilleadh, aonad systemd a ghlaonn an dénár go díreach, nó coimeádán íosta, níl an gliú soicéid do bash amháin ar fáil agus is é an comhad an freagra is saoire. Má rothaíonn an rún go minic, ní baile maith é ceachtar comhad dó: fiafraigh de fháinne eochracha ó thimfhilleadh beag agus lig don aonad an timfhilleadh a ghlaoch, rud a choinníonn an rothlú in aon áit amháin agus an pasfhocal as stair na blaoisce.
Seasann ionadú próisis idir an dá rud agus ní bhaineann sé le ceachtar. Oibríonn an t-aonlíne thíos toisc go leathnaíonn bash é sula dtosaíonn openvpn, ní toisc go dtuigeann an cliant an chomhréir:
openvpn --config client.ovpn --auth-user-pass <(printf "%s
%s
" "$USER" "$PASS")
Briseann sé faoi /bin/sh, in aonad a sheachnaíonn an bhlaosc, agus in íomhánna gan bash ná /dev/fd. Coinnigh é le haghaidh tástála idirghníomhaí, riamh mar an conradh a bhfuil seirbhís ag brath air.
Cosain an rún, ansin fíoraigh ón loga
Fágann an dá mheicníocht rún atá inléite ag próiseas OpenVPN. Ná cuir an pasfhocal ar an líne ordaithe ná i gcomhad an aonaid, áit a dtaispeánann ps agus systemctl do gach úsáideoir áitiúil é; cuir an cosán chuig an gcomhad, ní an luach atá ann. Áit ar féidir le teastais ionad an phéire cuntais a ghlacadh, baineann sé sin an aicme leide amach in ionad í a cheilt.
Taispeánann rith cheart an seicheamh leideanna ag críochnú agus an seisiún ag sroicheadh «Initialization Sequence Completed». Má stopann an cliant ag an leid chéanna, theip ar an meaitseáil: priontáil na línte beachta a sheol an soicéad, seiceáil na comharthaí athfhriotail agus ainm an leide, agus deisigh an patrún in ionad sleep a chur leis. Is fadhb ródaithe nó push é tollán a thuairiscíonn rath agus nach n-iompraíonn faic, ní ceann dintiúirí.
Ansin tástáil an t-athcheangal, ní hamháin an chéad tosú. Scaoil seisiún an fhreastalaí nó fan lena am normal; fiafraíonn an cliant arís, agus is ansin a thaispeánann comhad a bhféach sé ceart ag an tosú an bhfuil sé fós inléite ag an gcuntas a athcheanglaíonn.