Abu uku ne ke ƙayyade wace tushen shaida za ka yi amfani da ita: ko mutum yana zaune a na'ura, ko sirrin zai iya zama a faifai, da ko wani tsari dole ya amsa tambayar. Idan ka zaɓa ba daidai ba, abokin ciniki zai ba da rahoton matsalar stdin alhali kalmar sirri tana da inganci sarai, wanda ke tura yawancin mutane zuwa uwar garke ba tare da dalili ba. Zaɓi hanyar farko; saƙonnin kuskure suna da ma'ana ne kawai da zarar ka san wace hanya ce ta haife su.

Sharuɗɗa uku da ke ƙayyade hakan

Tambayar na'ura ita ce hanya ɗaya tilo da ke buƙatar mutum, don haka ita ce kaɗai da ke kasawa a shiru a cikin naúrar systemd ko kwantena. Idan mutum ya fara abokin ciniki ya rubuta kalmar sirri, babu fayil da ke da hannu kuma babu wani abu mai muhimmanci da ya isa faifai. Idan abokin ciniki ya fara lokacin tashi, wannan tambayar za ta zama tsayawa, kuma ƙarewar lokaci yawanci yana bayyana a matsayin gazawar haɗi ta gama gari maimakon kuskuren shaida.

Fayil ɗin shaida shi ne amsar da ta dace lokacin da tsarin ke farawa ba tare da kulawa ba kuma sirrin zai iya rayuwa a faifai ƙarƙashin tsarin izini da aka sarrafa. Lokacin da ba za a rubuta sirrin kwata-kwata ba - manufar ajiya kawai, alama ta ɗan lokaci - kana buƙatar rafi da abokin ciniki zai iya buɗewa, wanda a aikace ke nufin musanyar tsari ko mataimaki da ke rubuta cikin mai bayanin fayil. Mu'amalar gudanarwa tana rufe yanayi na huɗu: mai sarrafawa wanda ya riga ya sarrafa zagayowar rayuwar rami kuma zai iya amsa tambayoyi ta soket.

  • Mutum a na'ura, babu sarrafa kai: tambaya mai mu'amala.
  • Farawa ba tare da kulawa ba, ana iya ajiye sirrin: fayil ɗin shaida mai yanayi 0600.
  • Farawa ba tare da kulawa ba, ba za a iya ajiye sirrin ba: musanyar tsari ko fd da wakilin sirri ke rubutawa.
  • Wani tsari ne ya mallaki abokin ciniki: mu'amalar gudanarwa.

Lokacin da amsoshi biyu suka dace, zaɓi wanda ke riƙe sirrin a wajen argv da wajen tarihin shell. Kalmar sirrin da aka bayar a matsayin hujjar shiri kowane mai amfani na gida zai iya karantawa ta jerin tsari, kuma da wuya a soke wannan fallasa.

Abin da kowace hanyar shigarwa ke yi a zahiri

--auth-user-pass ita kaɗai tana neman sunan mai amfani da kalmar sirri a na'ura. Idan an ba da sunan fayil, abokin ciniki yana ɗaukar layi na farko a matsayin sunan mai amfani da layi na biyu a matsayin kalmar sirri; babu abin da ke goyon bayan ambato, sharhi ko tsarin maɓalli-daraja. Wannan shi ne dukan tsarin, don haka duk wanda ya gyara shi yana tsammanin fayil ɗin INI yana karye shi. Toshewar <auth-user-pass> ta ciki tana riƙe waɗannan layuka biyu a cikin bayanin martaba, wanda ke mai da bayanin martaba kansa sirri kuma ya sanya shi cikin aji ɗaya na kulawa da maɓallin sirri.

Sauran hanyoyin biyu su ne rafi da soket. OpenVPN tana buƙatar mai bayanin fayil da ake iya karantawa kawai, don haka za ta karɓi musanyar tsari, shigarwar /dev/fd da bututu ke goyon baya, ko sunan fayil wanda a zahiri FIFO ne. Mu'amalar gudanarwa ta bambanta a yanayi: abokin ciniki yana tambayar tsarin kulawa game da ƙimar maimakon ya karanta su da kansa. Wannan bambanci yana da muhimmanci yayin sake haɗawa: fayil ɗin shaida, FIFO da mataimakin sirri zai iya sake rubutawa, da mu'amalar gudanarwa na iya sake bayarwa ba tare da mutum ba; musanyar tsari ba za ta iya ba, domin ana cinye mai bayanin a karatun farko.

Fayil ɗin dole ya zama layi biyu daidai

Yanayi biyu na kasawa sun rufe yawancin fashe-fashen fayilolin shaida. Editan Windows yana barin ƙarshen CRLF, komawar karusa ta zama wani ɓangare na kalmar sirri, kuma uwar garke tana ƙin ƙimar da ta yi kama da daidai a kan allo. Layi na biyu mara komai - layi mara komai a inda kalmar sirri ya kamata ta kasance - yana barin abokin ciniki da kalmar sirri mara komai, wadda uwar garke ke ƙin ko da ƙimar a kan allo ta yi kama da daidai. Ƙarin sabon layi bayan kalmar sirri ba shi da lahani. Rubuta fayil ɗin daga shell, ba daga edita ba, kuma duba 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

Hanyar tana da muhimmanci kamar abun ciki. Ana warware hanyar dangi bisa ga jagorar aiki na tsari, wadda ga sabis ba kasafai take zama jagorar da ka gwada a cikinta ba. Yi amfani da hanyar cikakkiya, mayar da fayil ɗin mallakar asusun da ke tafiyar da abokin ciniki, kuma riƙe yanayi 0600 don gungu da wasu ba za su iya karanta shi ba. Littafin jagora na OpenVPN 2.6 ya lissafa siffofin da aka karɓa na umarnin; duba shi kafin ka ƙirƙira na uku.

Gwada fayil ɗin kafin ka zargi uwar garke. Gudanar da openvpn --config client.ovpn --auth-user-pass /etc/openvpn/client.creds --verb 4 yana buga ko an buɗe fayil ɗin kuma, daga baya, ko an karɓi shaidun, wanda ke gaya maka wace Layer za ka canza na gaba.

Rafuka, stdin da kurakuran da suke haifarwa

Bututar da kalmar sirri shine abu na farko da yawancin mutane ke gwadawa kuma hanya mafi yawan abubuwan mamaki. Musanyar tsari tana aiki domin abokin ciniki yana buƙatar mai bayanin da ake iya karantawa kawai: openvpn --config client.ovpn --verb 3 --auth-user-pass <(printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS"). Aiwatar da /dev/stdin yana aiki ne kawai lokacin da stdin har yanzu a buɗe kuma ana iya karantawa a lokacin da abokin ciniki ke tambaya, wanda ba gaskiya ba ne a cikin bututu da ya riga ya cinye shi.

ERROR: could not read Auth username from stdin tana da dalilai biyu dabam. A wasu abokan ciniki na 2.3.x saƙon ya fito ne daga lahani na kula da stdin wanda fitattun 2.3 na baya suka gyara, don haka irin wannan tsohon abokin ciniki yana inganta ne kawai ta hanyar haɓakawa. A abokin ciniki na yanzu wannan lafazin yana nufin abokin ciniki ya nemi shigarwar na'ura kuma stdin ba tashar ba ce - daidai yanayin da ke cikin naúrar systemd, aikin cron, ko kwantena da aka fara ba tare da -t ba.

auth-nocache tana ƙara karo na uku wanda ya yi kama da karyayyen kalmar sirri. Tana watsar da shaidun daga ƙwaƙwalwa bayan amfani, don haka sake haɗawa da canjin cibiyar sadarwa ya jawo ba shi da abin da zai sake kunnawa kuma tambayar tana komawa. Wannan ita ce umarnin da ke aiki kamar yadda aka tsara. auth-nocache tana canza abin da abokin ciniki ke riƙewa a ƙwaƙwalwa, ba abin da uwar garke ko mai ba da asali ke tunani game da asusun ba, don haka dukan gyaran shine sake bayar da fayil ɗin guda, wanda aka sake karantawa a lokacin sake kunnawa - kuma ga haɗin da ake sarrafawa wannan bayarwa ya kamata ya fito daga ajiyar sirri da aka amince da ita, ba kalmar sirri a cikin rubutun ba.

Mu'amalar gudanarwa lokacin da wani tsari ya mallaki tambayar

Mai sarrafawa wanda ya riga ya kula da ramin zai iya amsa tambayoyinsa kuma. Fara abokin ciniki da --management 127.0.0.1 7505, karanta layukan yanayi, kuma ka lura da >PASSWORD:Need 'Auth' username/password. Mai sarrafawa yana amsawa da username "Auth" alice sannan password "Auth" ... a kan layukan umarni dabam. Alamar 'Auth' tana maimaita mai ganowa daga buƙatar kuma dole ta dace, in ba haka ba za a yi watsi da amsar kuma abokin ciniki yana jira.

Kuɗin shine injin yanayi da ka mallaka yanzu: odar haɗi, sake kunnawa na abokin ciniki, da soket na gida wanda sauran masu amfani a kan mai masaukin ba za su isa ba. Abin da ka saya shine shaidar da aka bayar a lokacin aiki, ba tare da fayil a faifai ba kuma ba tare da tambayar da za ta iya tsayawa ba. Idan babu wani abu a cikin tarin fasaharka da ya riga ya yi magana da ka'idar, wannan hanya tana ƙara ɓangaren da za a kula da shi.

Kasawa da suka yi kama da matsalolin shaida

Musafaha na TLS wanda ba zai taɓa ƙarewa ba, ko VERIFY ERROR: depth=0, error=certificate signature failure, matsala ce ta amana kuma tana faruwa kafin a karanta kowane sunan mai amfani. Abokin ciniki na proto tcp da aka nufa zuwa mai sauraron UDP yana kasawa a wuri ɗaya: fakitin ba sa taɓa isa matakin tabbatarwa, don haka kowace kalmar sirri tana kama da ba daidai ba ta hanyar alaƙa. Riƙe tabbatar da takardar shaida a kunne kafin a aika shaidar; sanannen tambaya ba ta faɗi kome game da wanda ke karɓar kalmar sirri ba. Duba sarkar takardar shaida, sunan gama gari da jigilar kafin ka taɓa shaidar.

Kurakuran shell a cikin rubutun da ke haɗa bayanin martaba sune ɗayan ƙarya. Rashin sarari a cikin [ ! -f "$file" ] yana haifar da command not found, rubutun yana tsayawa da wuri, ba a sake gina bayanin martaba ba, kuma abokin ciniki yana farawa da na baya. Wannan kuskuren na shell ne, ba na tabbatarwa ba, kuma komai sake rubuta kalmar sirri ba zai share shi ba.

Ba kowace tambaya a cikin wannan rafi ba ce wannan shaidar. Kalmar sirri ta maɓallin sirri, shiga ta hanyar wakilin HTTP da kalmar sirri ta sabis sirri uku ne daban waɗanda ake tambaya a matakai daban, kuma kalmar sirri ta maɓalli yawanci abokin ciniki ko wakili ke kula da ita maimakon auth-user-pass. Idan tambayar ta bayyana kafin zaman TLS ya tsaya, kana amsa tambayar da ba daidai ba kuma babu sake saita asusu da zai taimaka. Da zarar an cire tambayar da ba daidai ba, sauran binciken suna farawa daga Layer na farko:

  • Karanta kuskuren ka'idar farko, ba layin shaidar ƙarshe ba: TLS, sannan tabbatarwa, sannan turawa.
  • Tabbatar fayil ɗin layi biyu ne, ba shi da komawar karusa, kuma an ambace shi da cikakkiyar hanya.
  • Tabbatar bayanin martaba da layin umarni ba su sabawa game da umarnin.
  • Raba "an karɓi shaidu" daga "kaya na gudana" - turawa da DNS Layer ne na baya.

Da zarar abokin ciniki ya isa matakin push, daina kallon shaidu ka fara karanta hanyoyi da sabar DNS da uwar garke ta aika. Wannan ita ce matsala ta gaba, kuma ba ta da wata alaƙa da kalmar sirrin da ka gyara yanzu.

Labarai masu alaƙa