Awọn nkan mẹta ni o pinnu orisun ẹri wo ni o yẹ ki o lo: boya eniyan kan joko ni console, boya aṣiri le gbe lori disiki, ati boya ilana miiran gbọdọ dahun ibeere naa. Ti o ba yan aṣiṣe, alabara yoo royin iṣoro stdin lakoko ti ọrọ igbaniwọle wulo patapata, ati eyi n fi ọpọlọpọ ranṣẹ si olupin laisi idi. Yan ọna ni akọkọ; awọn ifiranṣẹ aṣiṣe ni o ni itumọ nikan nigbati o ba mọ ọna ti o ṣẹda wọn.

Awọn ofin mẹta ti o pinnu rẹ

Ibeere console ni ọna kan ṣoṣo ti o nilo eniyan, nitorina o jẹ ọkan ṣoṣo ti o kuna ni idakẹjẹ ninu ẹyọ systemd tabi eiyan. Ti eniyan kan ba bẹrẹ alabara ki o tẹ ọrọ igbaniwọle, ko si faili ti o kopa ati pe ko si ohun pipẹ ti o de sori disiki. Ti alabara ba bẹrẹ ni akoko boot, ibeere kanna di diduro, ati akoko ipari maa n farahan bi ikuna asopọ gbogbogbo dipo aṣiṣe ẹri.

Faili ẹri ni idahun to tọ nigbati ilana bẹrẹ laisi abojuto ati pe aṣiri le ye lori disiki labẹ eto awọn igbanilaaye ti a ṣakoso. Nigbati aṣiri ko gbọdọ kọ rara - ilana ile ifipamọ nikan, tokini igba diẹ - o nilo ṣiṣan ti alabara le ṣii, eyi ti o tumọ si ni iṣe rirọpo ilana tabi oluranlọwọ ti o kọ sinu apejuwe faili. Wiwo iṣakoso bo iru kẹrin: oludari ti o ti n ṣakoso igbesi aye tunnel tẹlẹ ati pe o le dahun awọn ibeere nipasẹ soketi.

  • Eniyan ni console, ko si adaṣe: ibeere ibaraenisepo.
  • Ibẹrẹ laisi abojuto, aṣiri le wa ni ipamọ: faili ẹri pẹlu ipo 0600.
  • Ibẹrẹ laisi abojuto, aṣiri ko le wa ni ipamọ: rirọpo ilana tabi fd ti aṣoju aṣiri kọ sinu.
  • Ilana miiran ni o ni alabara: wiwo iṣakoso.

Nigbati awọn idahun meji ba baamu, yan eyi ti o tọju aṣiri ni ita argv ati ita itan shell. Ọrọ igbaniwọle ti a fi funni gẹgẹbi ariyanjiyan eto le jẹ kika nipasẹ olumulo agbegbe eyikeyi nipasẹ atokọ awọn ilana, ati pe ifihan yẹn ṣoro lati yi pada.

Ohun ti ọna igbewọle kọọkan n ṣe nitootọ

--auth-user-pass nikan beere orukọ olumulo ati ọrọ igbaniwọle ni console. Ti a ba fun ni orukọ faili, alabara yoo gba ila akọkọ gẹgẹbi orukọ olumulo ati ila keji gẹgẹbi ọrọ igbaniwọle; ko si ohun ti o ṣe atilẹyin awọn agbasọ, awọn asọye tabi sintasi bọtini-iye. Iyẹn ni gbogbo ọna kika, nitorina ẹnikẹni ti o ba ṣatunkọ rẹ ni ireti faili INI yoo ba a jẹ. Bulọọki <auth-user-pass> inu ila n tọju awọn ila meji kanna sinu profaili, eyi ti o sọ profaili funrarẹ di aṣiri ati fi si kilasi itọju kanna bi bọtini ikọkọ.

Awọn ọna meji to ku ni ṣiṣan ati soketi. OpenVPN nilo nikan apejuwe faili ti o le ka, nitorina yoo gba rirọpo ilana, titẹsi /dev/fd ti a ṣe atilẹyin nipasẹ paipu tabi orukọ faili ti o jẹ FIFO nitootọ. Wiwo iṣakoso yatọ nipa iseda: alabara beere lọwọ ilana abojuto fun awọn iye dipo kika wọn funrararẹ. Iyatọ yẹn ṣe pataki nigbati o tun sopọ: faili ẹri, FIFO ti oluranlọwọ aṣiri le kọ si lẹẹkansi ati wiwo iṣakoso le pese lẹẹkansi laisi eniyan; rirọpo ilana ko le, nitori apejuwe naa maa n lo ni kika akọkọ.

Faili gbọdọ jẹ ila meji gangan

Awọn ipo ikuna meji bo ọpọlọpọ awọn faili ẹri ti o bajẹ. Olootu Windows n fi awọn ipari CRLF silẹ, ipadabọ kẹkẹ di apakan ti ọrọ igbaniwọle, ati olupin kọ iye ti o dabi ẹni pe o tọ loju iboju. Ila keji ti o ṣofo - ila ṣofo nibiti ọrọ igbaniwọle yẹ ki o wa - fi alabara silẹ pẹlu ọrọ igbaniwọle ṣofo, eyi ti olupin kọ paapaa ti iye loju iboju ba dabi ẹni pe o tọ. Ila tuntun afikun lẹhin ọrọ igbaniwọle ko lewu. Kọ faili naa lati shell, kii ṣe lati olootu, ki o si ṣayẹwo awọn baiti:

install -m 600 /dev/null /etc/openvpn/client.creds
printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS" > /etc/openvpn/client.creds
od -c /etc/openvpn/client.creds | head -3

Ọna ṣe pataki bi akoonu. Ọna ibaramu ni a yanju ni ibatan si ilana ilosiwaju ti ilana, eyi ti fun iṣẹ kan ṣọwọn jẹ ilana ti o ṣe idanwo. Lo ọna pipe, jẹ ki faili jẹ ohun ini akọọlẹ ti o nṣe alabara, ki o si tọju ipo 0600 ki ẹgbẹ ati awọn miiran le ma ka a. Iwe afọwọkọ OpenVPN 2.6 ṣe atokọ awọn ọna ti a gba ti itọsọna naa; ṣayẹwo rẹ ṣaaju ki o to ṣẹda ẹkẹta.

Dan faili naa ṣaaju ki o to da olupin lẹbi. Ṣiṣe openvpn --config client.ovpn --auth-user-pass /etc/openvpn/client.creds --verb 4 yoo tẹjade boya faili naa ṣii ati nigbamii boya a gba ẹri naa, eyi ti o sọ fun ọ iru Layer lati yi nigbamii.

Awọn ṣiṣan, stdin ati awọn aṣiṣe ti wọn nmu jade

Fifun ọrọ igbaniwọle sinu paipu ni ohun akọkọ ti ọpọlọpọ eniyan gbiyanju ati ọna ti o ni iyalẹnu julọ. Rirọpo ilana n ṣiṣẹ nitori alabara nilo nikan apejuwe ti o le ka: openvpn --config client.ovpn --verb 3 --auth-user-pass <(printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS"). Gbigbe /dev/stdin n ṣiṣẹ nikan nigbati stdin tun ṣii ati pe o le ka ni akoko ti alabara beere, eyi ti kii ṣe otitọ ninu paipu ti o ti lo o tẹlẹ.

ERROR: could not read Auth username from stdin ni awọn idi meji ti o yatọ. Ni diẹ ninu awọn alabara 2.3.x ifiranṣẹ naa wa lati abawọn itọju stdin ti awọn idasilẹ 2.3 nigbamii tọju, nitorina alabara ti o dagba bẹẹ n dara nikan nipasẹ igbega. Ni alabara lọwọlọwọ ọrọ kanna tumọ si pe alabara beere igbewọle console ati pe stdin kii ṣe ebute - gangan ipo ti o wa ninu ẹyọ systemd, iṣẹ cron tabi eiyan ti o bẹrẹ laisi -t.

auth-nocache n ṣafikun lupu kẹta ti o dabi ọrọ igbaniwọle ti o bajẹ. O sọ ẹri naa nù kuro ninu iranti lẹhin lilo, nitorina isopọmọra ti o ṣẹlẹ nipasẹ iyipada nẹtiwọki ko ni ohun lati tun ṣe ati ibeere naa pada. Iyẹn ni itọsọna ti o n ṣiṣẹ bi a ti ṣe apẹrẹ. auth-nocache yi ohun ti alabara tọju ninu iranti pada, kii ṣe ohun ti olupin tabi olupese idanimọ ro nipa akọọlẹ naa, nitorina gbogbo atunṣe ni lati pese faili kanna lẹẹkansi, ti a ka lẹẹkansi ni atunbẹrẹ - ati fun asopọ ti a ṣakoso ipese yẹn gbọdọ wa lati ile ifipamọ aṣiri ti a fọwọsi, kii ṣe ọrọ igbaniwọle ninu iwe afọwọkọ.

Wiwo iṣakoso nigbati ilana miiran ni ibeere naa

Oludari ti o ti n ṣabojuto tunnel le tun dahun awọn ibeere rẹ. Bẹrẹ alabara pẹlu --management 127.0.0.1 7505, ka awọn ila ipo, ki o si wo >PASSWORD:Need 'Auth' username/password. Oludari dahun pẹlu username "Auth" alice ti o tẹle pẹlu password "Auth" ... lori awọn ila aṣẹ lọtọ. Tokini 'Auth' tun idamo lati ibeere naa ki o si gbọdọ baramu, bibẹẹkọ a gbin idahun naa ati alabara nduro.

Iye ni ẹrọ ipo ti o jẹ tirẹ ni bayi: ilana awọn asopọ, atunbẹrẹ alabara ati soketi agbegbe ti awọn olumulo miiran lori agbalejo ko gbọdọ de. Ohun ti o ra ni ẹri ti a pese ni akoko ṣiṣe, laisi faili lori disiki ati laisi ibeere ti o le duro. Ti ko ba si ohun miiran ninu akopọ rẹ ti o ti n sọ ilana yii, ọna yii n ṣafikun paati ti o nilo itọju.

Awọn ikuna ti o dabi awọn iṣoro ẹri

Ifọwọsi TLS ti ko pari rara, tabi VERIFY ERROR: depth=0, error=certificate signature failure, jẹ iṣoro igbẹkẹle ati pe o ṣẹlẹ ṣaaju ki a to ka orukọ olumulo eyikeyi. Alabara proto tcp ti o tọka si olutẹtisi UDP kuna ni aaye kanna: awọn apo ko de opin ipele ijẹrisi rara, nitorina ọrọ igbaniwọle kọọkan dabi aṣiṣe nitori ibatan. Jẹ ki ijẹrisi ijẹrisi wa ni titan ṣaaju ki a fi ẹri ranṣẹ; ibeere ti o mọ ko sọ nkankan nipa tani ngba ọrọ igbaniwọle. Ṣayẹwo ẹwọn ijẹrisi, orukọ ti o wọpọ ati gbigbe ṣaaju ki o to fi ọwọ kan ẹri naa.

Awọn aṣiṣe shell ninu iwe afọwọkọ ti o n ṣajọ profaili ni ami eke miiran. Aaye ti o sonu ninu [ ! -f "$file" ] nmu command not found jade, iwe afọwọkọ naa duro ni kutukutu, a ko tun kọ profaili naa rara ati alabara bẹrẹ pẹlu ti iṣaaju. Aṣiṣe yẹn jẹ ti shell, kii ṣe ti ijẹrisi, ati pe bi o ti tẹ ọrọ igbaniwọle lẹẹkansi ni iye igba, ko ni pa a rẹ.

Kii ṣe gbogbo ibeere ninu ṣiṣan yii ni ẹri yii. Ọrọ aṣina bọtini ikọkọ, iwọle proxy HTTP ati ọrọ igbaniwọle iṣẹ jẹ awọn aṣiri mẹta ti o yatọ ti a beere ni awọn ipele oriṣiriṣi, ati pe ọrọ aṣina bọtini ni a maa n ṣakoso nipasẹ alabara tabi aṣoju dipo auth-user-pass. Ti ibeere naa ba farahan ṣaaju ki igba TLS to duro, o n dahun ibeere ti ko tọ ati pe ko si atunto akọọlẹ ti yoo ran ọ lọwọ. Nigbati a ti yọ ibeere ti ko tọ kuro, awọn ayẹwo to ku bẹrẹ lati Layer ti o tete julọ:

  • Ka aṣiṣe ilana akọkọ, kii ṣe ila ẹri ti o kẹhin: TLS, lẹhinna ijẹrisi, lẹhinna push.
  • Jẹrisi pe faili naa jẹ ila meji, ko ni awọn ipadabọ kẹkẹ ati pe a tọka si pẹlu ọna pipe.
  • Jẹrisi pe profaili ati ila aṣẹ ko tako ara wọn nipa itọsọna naa.
  • Ya "ẹri ti gba" kuro ninu "ijabọ n ṣàn" - ipa-ọna ati DNS jẹ Layer nigbamii.

Nigbati alabara ba de ipele push, da wiwo ẹri naa duro ki o si bẹrẹ kika awọn ipa-ọna ati awọn olupin DNS ti olupin naa fi ranṣẹ. Iyẹn ni iṣoro ti o tẹle, ati pe ko ni nkankan lati ṣe pẹlu ọrọ igbaniwọle ti o ṣẹṣẹ tọju.

Àwọn àpilẹ̀kọ tó jọra