Autentija näitab värsket kuuekohalist koodi, VPN keeldub sellest, ja sama kood kontrollitakse veatult, kui seda oma kestast testite. See vahe ongi kogu lugu. PAM-moodul, mis ei saa registreerimissaladust avada, tagastab vea, mis näeb välja täpselt nagu vale kood, ja kodukatalooge peitev teenusekeskkond on selle tavaline põhjus. Enne mis tahes õiguse lõdvendamist otsustage, millises kolmest olukorrast te olete.

Milline kolmest ebaõnnestumisest see on?

Esimene on saladus, mida moodul üldse lugeda ei saa. Teine on saladus, mida ta saab lugeda, kuid mitte uuendada. Kolmas on kood, mis on tõesti vale, tavaliselt kella triivi või korduskasutatud väärtuse tõttu.

Eristage neid, lugedes ühe ebaõnnestunud katse kohta teenuse logi ja süsteemi autentimislogi, seejärel kinnitage, millise PAM-teenuse pistikprogramm laadib ja millist moduulirida see teenus kasutab. Üldine autentimisvea teade neid ei erista, samuti mitte edukas käsitsi test, sest teie kest ei ole teenuse keskkond.

Üksuse failisüsteemi vaade on tavaline süüdlane, kui ebaõnnestub ainult teenus.

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

Valik A: viige saladus kodust välja

Kui teenus peidab /home ja te eelistate seda kaitset säilitada, hoidke saladust kohas, kus see selle näha saab. Moodul aktsepteerib secret= rada ja user= kontot, mis teeb failitoiminguid, mis lubab keskhoidlal teenindada paljusid identiteete.

See on korralik valik ja nõuab kõige rohkem hoolt, sest jagatud hoidla muudab ühe kataloogi iga konto turvapiiriks.

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

Kontrollige kolme asja enne selle usaldamist: konto on olemas, mooduli tööprotsess saab sellele üle minna ja failid kuuluvad sellele piiravate režiimidega. Ärge kasutage ~ ega kodumuutujaga rada koos user=-ga ja ärge lülitage välja mooduli omandi kontrolle, et rada tööle saada. Hoidke paroolietapp ja ülejäänud virn puutumatuna.

Valik B: jätke fail alles ja avage rada

Kui saladus peab jääma kasutaja kodukataloogi, vajab üksus vaadet, mis hõlmab seda ühte kataloogi, paljastamata hosti kõiki kodukatalooge. Drop-in saab lisada kitsalt piiratud sidumismontaaži sandboxitud kodu alla.

See säilitab kasutajapõhise omandi mudelina, kuid nõuab üksuse muudatust, mida tuleb sandboxi muutumisel alati üle vaadata.

Kaks piiri on kergesti märkamata. Ainult lugemiseks mõeldud rada, mis lisatakse kataloogi alla, mille sandbox peidab, ei paljasta seda, sest vanemkataloogi lihtsalt pole. Ja montaaž peab olema kirjutatav, kui moodul peab olekut uuendama, mis toob mängu järgmise valiku. Kirjutage drop-in eraldi failina, mitte ärge muutke /usr/lib all olevat pakendatud üksust, et paketi uuendus ei tühistaks seda vaikselt.

Valik C: hoidke sandbox ja parandage olekukirjutused

Saladuse lugemine on ainult pool autentimisest. Moodul võib ümber kirjutada ajanihe teabe, korduskaitse või loenduri, ja fail, mis läbib lugemiskontrolli, võib ikkagi kirjutamisel ebaõnnestuda.

See ebaõnnestumine näeb järgmisel katsel välja nagu halb kood, mitte sellel, mistõttu aetakse see segi kella triiviga.

Andke sellele oma kirjutatav kataloog ja suunake saladuse rada sinna, mitte ärge tehke kogu kodu kirjutatavaks. Kinnitage kataloogi omanik, failisüsteemi vaba ruum ja kas üksus piirab kirjutusi mujal. Seejärel testige kahte järjestikust sisselogimist, sest teine tõestab kirjutamisrada ja esimene ainult lugemist.

Kontrollige teenusena, mitte iseendana

Iga oluline kontroll peab jooksma üksuse sandboxis üksuse identiteediga.

Käsk, mis õnnestub rootina, ütleb teile, et fail on olemas, ja mitte midagi muud. Sisselogimine tegeliku teenuse kaudu ütleb, kas moodul saab saladust lugeda, kasutada ja vajaliku tagasi kirjutada.

Lõpuks hoidke nõue puutumatuna. Nullparooli valiku lisamine, ainult lugemise vigade aktsepteerimine või sandboxi eemaldamine kõrvaldaks kõik sümptomi poliitikat muutes. Kasutaja, kes peab koodi esitama, tuleb ikkagi tagasi lükata, kui saladus on kättesaamatu.

Seotud artiklid