Autentifikācijas lietotne rāda jaunu sešciparu kodu, VPN to noraida, un tas pats kods nevainojami pārbaudās, kad to pārbaudāt no savas čaulas. Šī atšķirība ir viss stāsts. PAM modulis, kas nevar atvērt reģistrācijas noslēpumu, atgriež kļūdu, kas izskatās identiski nepareizam kodam, un pakalpojuma vide, kas slēpj mājas direktorijus, ir biežs iemesls. Pirms jebkuras atļaujas atslābināšanas izlemiet, kurā no trim situācijām jūs esat.

Kura no trim kļūdām tā ir?

Pirmā ir noslēpums, ko modulis nemaz nevar nolasīt. Otrā ir noslēpums, ko tas var nolasīt, bet nevar atjaunināt. Trešā ir kods, kas patiešām ir nepareizs, parasti pulksteņa novirzes vai atkārtoti izmantotas vērtības dēļ.

Atšķiriet tos, nolasot pakalpojuma žurnālu un sistēmas autentifikācijas žurnālu vienam neveiksmīgam mēģinājumam, pēc tam pārbaudiet, kuru PAM pakalpojumu ielādē spraudnis un kuru moduļa rindu šis pakalpojums izmanto. Vispārīgs autentifikācijas kļūdas ziņojums tos neatšķir, un veiksmīgs manuāls tests arī ne, jo jūsu čaula nav pakalpojuma vide.

Vienības failu sistēmas skats ir ierastais vaininieks, kad neizdodas tikai pakalpojums.

systemctl show -p ProtectHome -p ProtectSystem -p ReadWritePaths [email protected]
ls -l /var/lib/vpn-otp/*/.google_authenticator 2>/dev/null | head -n 20

A variants: pārvietot noslēpumu ārpus mājām

Kad pakalpojums slēpj /home un jūs labprātāk saglabājat šo aizsardzību, glabājiet noslēpumu tur, kur tas to var redzēt. Modulis pieņem secret= ceļu un user= kontu, kas veic failu darbības, kas ļauj centrālajai krātuvei apkalpot daudzas identitātes.

Šis ir kārtīgais variants, un tam vajadzīga vislielākā rūpība, jo koplietota krātuve vienu direktoriju padara par katras konta drošības robežu.

auth required pam_google_authenticator.so secret=/var/lib/vpn-otp/${USER}/.google_authenticator user=vpn-otp

Pirms paļaujaties, pārbaudiet trīs lietas: konts pastāv, moduļa darba process var pārslēgties uz to, un faili tam pieder ar ierobežojošiem režīmiem. Neizmantojiet ~ vai ceļu ar mājas mainīgo kopā ar user=, un neizslēdziet moduļa īpašumtiesību pārbaudes, lai ceļš darbotos. Saglabājiet paroles posmu un pārējo steku neskartu.

B variants: atstāt failu un atvērt ceļu

Ja noslēpumam jāpaliek lietotāja mājas direktorijā, vienībai nepieciešams skats, kas ietver šo vienu direktoriju, neatsedzot visas mājas uz resursdatora. Drop-in var pievienot šauri ierobežotu bind mount zem sandboxotas mājas.

Tas saglabā īpašumtiesības uz lietotāju kā modeli, par cenu vienības izmaiņām, kas jāpārskata ikreiz, kad mainās sandbox.

Divas robežas ir viegli nepamanīt. Tikai lasāms ceļš, kas pievienots zem direktorijas, kuru sandbox slēpj, to neatklāj, jo vecākdirektorija vienkārši nav. Un montāžai jābūt rakstāmai, ja modulim jāatjaunina stāvoklis, kas spēlē iesaista nākamo variantu. Rakstiet drop-in kā atsevišķu failu, nevis rediģējiet iepakoto vienību zem /usr/lib, lai pakotnes atjauninājums to klusi neatceltu.

C variants: saglabāt sandbox un salabot stāvokļa rakstīšanu

Noslēpuma lasīšana ir tikai puse autentifikācijas. Modulis var pārrakstīt laika nobīdes informāciju, atkārtošanas aizsardzību vai skaitītāju, un fails, kas iztur lasīšanas pārbaudi, joprojām var neizdoties rakstīšanā.

Šī kļūda izskatās kā slikts kods nākamajā mēģinājumā, nevis šajā, tāpēc to sajauc ar pulksteņa novirzi.

Dodiet tam savu rakstāmu direktoriju un virziet noslēpuma ceļu uz turieni, nevis padariet rakstāmas visas mājas. Apstipriniet direktorijas īpašnieku, failu sistēmas brīvo vietu un to, vai vienība ierobežo rakstīšanu citur. Pēc tam pārbaudiet divas secīgas pieteikšanās, jo otrā pierāda rakstīšanas ceļu, bet pirmā tikai lasīšanu.

Pārbaudiet kā pakalpojums, nevis kā jūs pats

Katrai svarīgai pārbaudei jānotiek vienības sandboxā ar vienības identitāti.

Komanda, kas izdodas kā root, pasaka, ka fails pastāv, un neko vairāk. Pieteikšanās caur īsto pakalpojumu pasaka, vai modulis var nolasīt noslēpumu, to izmantot un pierakstīt atpakaļ nepieciešamo.

Visbeidzot, saglabājiet prasību neskartu. Nulles paroles varianta pievienošana, tikai lasīšanas kļūdu pieņemšana vai sandbox noņemšana visas novērstu simptomu, mainot politiku. Lietotājam, kuram jāuzrāda kods, joprojām jābūt noraidītam, kad noslēpums nav sasniedzams.

Saistītie raksti