Den Authenticator weist en neie sechstellige Code, d’VPN refuséiert en, an dee selwechte Code verifizéiert sech gutt, wann Dir en aus Ärer eegener Shell testt. Dee Gruef ass déi ganz Geschicht. En PAM-Modul, deen de Registratiounsgeheimnis net kann opmaachen, gëtt e Feeler zréck, deen identesch mat engem falsche Code ausgesäit, an d’Déngschtëmfeld, dat Heemverzeechnisser verstoppt, ass eng heefeg Ursaach. Ier Dir eng Berächtigung lockert, entscheet, a wéi enger vun dräi Situatiounen Dir sidd.

Wat fir ee vun den dräi Feele ass dat?

Den éischten ass e Geheimnis, deen de Modul iwwerhaapt net ka liesen. Den zweeten ass e Geheimnis, deen en ka liesen, awer net aktualiséieren. Den drëtten ass e Code, dee wierklech falsch ass, meeschtens wéinst Auerdrift oder engem erëmbenotzte Wäert.

Trennt se, andeems Dir de Servicejournal an de System-Authentifikatiounslog fir een feelgeschloen Versuch liest, a bestätegt dann, wéi ee PAM-Service de Plugin lued a wéi eng Modullinn dee Service benotzt. Eng allgemeng Authentifikatiounsfeeler-Meldung ënnerscheet se net, an en erfollegräichen manuelle Test och net, well Är Shell net d’Ëmfeld vum Service ass.

D’Dateisystem-Siicht vun der Unit ass de gewéinleche Schëllege wann nëmmen de Service feelgeet.

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

Optioun A: de Geheimnis aus dem Heem beweegen

Wann de Service /home verstoppt an Dir léiwer dëse Schutz behält, späichert de Geheimnis do, wou en en ka gesinn. De Modul akzeptéiert e secret=-Pad an e user=-Konto, deen d’Dateioperatiounen ausféiert, wat engem zentrale Späicher erlaabt, vill Identitéite ze zerwéieren.

Dëst ass déi uerdentlech Optioun, an et ass déi, déi am meeschte Suerg brauch, well e gedeelte Späicher een eenzegen Verzeechnis zur Sécherheetsgrenz fir all Konto mécht.

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

Préift dräi Saachen, ier Dir et vertraut: de Konto existéiert, den Aarbechtsprozess vum Modul kann dohinner wiesselen, an d’Dateie gehéieren him mat restriktive Modus. Benotzt net ~ oder e Pad mat Heemvariabel zesumme mat user=, an deaktivéiert net dem Modul seng Eegentumspréifungen, fir e Pad ze funktionéieren. Halt d’Passwuertstuf an de Rescht vum Stack intakt.

Optioun B: d’Datei loossen an e Pad opmaachen

Wann de Geheimnis am Heem vum Benotzer musst bleiwen, brauch d’Unit eng Siicht, déi deen een Verzeechnis enthält, ouni all Heem um Host ze entdecken. En drop-in kann e schmuel begrenzten Bind-Mount ënner engem sandboxte Heem bäisetzen.

Dëst behält d’Eegentum pro Benotzer als Modell, op Käschte vun enger Unit-Ännerung, déi all Kéier iwwerpréift muss ginn, wann d’Sandbox sech ännert.

Zwou Grenze si liicht ze iwwersinn. En nëmme-Lies-Pad, deen ënner engem Verzeechnis bäigesat gëtt, dat d’Sandbox verstoppt, entdeckt et net, well den Elterendeel einfach net do ass. An de Mount muss schreifbar sinn, wann de Modul den Zoustand muss aktualiséieren, wat déi nächst Optioun an d’Spill bréngt. Schreift den drop-in als eng separat Datei, amplaz d’gepackt Unit ënner /usr/lib ze änneren, sou datt e Pak-Upgrade en net stille réckgängeg mécht.

Optioun C: d’Sandbox behalen an d’Zoustands-Schreifungen reparéieren

De Geheimnis liesen ass nëmmen d’Halschent vun der Authentifikatioun. De Modul kann Zäitdifferenz-Informatiounen, Replay-Schutz oder en Zähler nei schreiwen, an eng Datei, déi d’Liesprüfung besteet, kann nach ëmmer um Schreiwes feelen.

Dee Feeler gesäit beim nächste Versuch aus wéi e schlechte Code an net bei dësem, dofir gëtt en mat Auerdrift verwiesselt.

Gitt him en eegene schreifbaren Verzeechnis a riicht de Geheimnis-Pad dohinner, amplaz d’ganzt Heem schreifbar ze maachen. Bestätegt den Eegentümer vum Verzeechnis, de fräie Späicher vum Dateisystem an ob d’Unit d’Schreifungen anzwousch anescht limitéiert. Testt dann zwee openeenfolgend Loginen, well déi zweet de Schreifpad beweist an déi éischt nëmmen d’Liesen.

Verifizéiert als de Service, net als Iech selwer

All wichteg Kontroll muss an der Sandbox vun der Unit mat der Identitéit vun der Unit lafen.

E Kommando, deen als root geléngt, seet Iech, datt d’Datei existéiert, an soss näischt. Eng Umeldung iwwer de richtege Service seet Iech, ob de Modul de Geheimnis liesen, benotzen a schreiwen kann, wat e brauch.

Zum Schluss, haalt d’Ufuerderung intakt. Eng Null-Passwuert-Optioun bäisetzen, nëmme-Lies-Feeler akzeptéieren oder d’Sandbox ewechhuelen, all géife se d’Symptom verschwannen, andeems d’Politik geännert gëtt. E Benotzer, dee muss e Code virleeën, soll nach ëmmer refuséiert ginn, wann de Geheimnis net erreechbar ass.

Ähnlech Artikelen