Fiókzár kontra címletiltás: hol számol valójában az OpenVPN
A forrástiltás és a fiókzár más dolgokat számol. Találja meg a hibaszámlálót birtokló tárolót, mielőtt küszöböt választ egy PAM-alapú VPN-hez.
Egy cím blokkolása és egy fiók zárolása két különböző mechanizmus, és ellentétes irányban hibáznak. A címletiltás egy forrást állít meg, és a célfiók más helyről elérhető marad; a fiókzár mindenhol megállítja ezt az identitást, még a felhasználó saját laptopján is.
Egy PAM-ra bízó VPN esetében a számláló az, amit a PAM-verem elér, nem az, amit a figyelő naplózott.
Két számláló, két különböző áldozat
A sebességkorlátozó egy forrást néz, és azt kérdezi, hány kísérlet érkezett onnan nemrég. A zár egy identitást néz, és azt kérdezi, hány hibát halmozott fel a fiók. Az első az elérhetőséget védi, a második a hitelesítő adatot; egyik sem helyettesíti a másikat.
Ezért az öt hiba után blokkoljuk az IP-t mondat nem válasz egy hitelesítő adatok feltöltéséről szóló jelentésre. A támadó forrásokat váltogat, mindegyik kevés kísérletet kap, és a fiók soha nem számolódik. Fordítva, forráskontroll nélküli zár esetén a támadó szándékos hibázással korlátlanul zárolva tarthatja a fiókot.
A két kontroll helyreállítási története is különbözik. A címletiltás lejár egy időzítővel, amelyre senkinek nem kell gondolnia; a fiókzárhoz adminisztrátor, dokumentált várakozási idő vagy önkiszolgáló visszaállítás kellhet.
Találja meg a számlálót már birtokló tárolót
Mielőtt bármit hozzáadna, derítse ki, létezik-e már hibát tároló hely. A helyi Linux-fiók, a címtárszolgáltatás és a külső identitásszolgáltató külön számlálót tart, és az eléjük tett PAM-modul másodikat hoz létre ahelyett, hogy az elsőt bővítené.
grep -rnE 'faillock|pam_tally|pam_unix' /etc/pam.d/
ls -l /etc/pam.d/ | head -20
Olvassa el azt a szolgáltatásfájlt, amelyet a VPN valóban megnevez, és kövesse a belefoglaló sorokat. Sok disztribúcióban a VPN szolgáltatás közös fájlt foglal bele, ami azt jelenti, hogy a beállított számláló az SSH-ra és a helyi bejelentkezésekre is vonatkozik.
Ha a címtár már kényszerít zárat, a hasznos kérdés az, hogyan jut el a PAM-beszélgetés ehhez a döntéshez, és hogyan jelenti ezt a VPN. A fölé tett helyi számláló nem lesz a címtár számlálója, és a két szabályzat eltérhet abban, mikor nyílik ki a fiók.
A pam_faillocknak három hívási helye van, nem egy
A modul három műveletet választ szét, amelyeket egy másolt sor általában elmos: annak ellenőrzése, hogy a fiók már zárolt-e, a hiba rögzítése és az előzmények törlése siker után.
Itt szokott elhibázódni a régebbi számlálómodulról való átállás. Egy működő pam_tally2 példából származó sor átmásolása egy pam_faillock verembe nem átnevezés; a dokumentált beállítás más, és a rossz helyre tett hívás rögzíthet hibákat anélkül, hogy valaha ellenőrizné őket.
faillock --user alice
faillock --user alice --reset
Az ellenőrző eszköz a leggyorsabb módja annak megállapítására, hogy valós-e a számláló: kiírja egy fiók rögzített hibáit, és törölheti is őket. Ha egy ellenőrzött hiba nem változtatja meg ezt a kimenetet, a hívás helye rossz.
A saját szolgáltatásnév nem izoláció
Ha a VPN saját PAM-szolgáltatásfájlt kap, láthatóvá válik a szándékolt szabályzat, de a hatás nem korlátozódik. Egy közös fájl bármely belefoglalása behozza, amit az a fájl tesz, beleértve a rendszerszintű számlálókat is.
Döntse el kifejezetten, hogy a zár csak a VPN-hozzáférést fedje-e, vagy minden szolgáltatást, amely ugyanazt a fiókot hitelesíti. Mindkét válasz védhető; a hiba az, ha azt hiszi, az egyiket választotta, miközben a verem a másikat valósítja meg.
Ezután vegye figyelembe a költséget. A zárat egy támadó is kiválthatja, és a szenvedő felhasználó a fiók tulajdonosa. A küszöb, a várakozási idő és az adminisztratív helyreállítási útvonal a szabályzat része, és a helyreállítás nem függhet attól, hogy egy incidens alatt újrakonfigurálják a VPN-t.
Fogadja el a sorrendet, ne egyetlen elutasítást
Teszteljen kijelölt identitásokkal jóváhagyott terv szerint, és láncot teszteljen egyetlen esemény helyett: egy érvényes fiók hitelesít, egy szándékosan rossz jelszó elmozdítja a számlálót, a beállított zár életbe lép, és a dokumentált helyreállítás visszaadja a hozzáférést.
faillock --user test-vpn-01
journalctl -u openvpn-server@lab -n 30 --no-pager | grep -i 'auth\|pam'
A siker viselkedését ugyanolyan gondosan vizsgálja, mint a hibáét. Ha egy sikeres bejelentkezés nem törli az előzményeket, a fiók a szokásos hibák lassú felhalmozódása után záródik. Ha mindent töröl minden szolgáltatásból, a számláló gyengébb, mint amit a szabályzat állít.
Végül állítsa le a felügyelet nélküli klienseket, mielőtt győzelmet hirdet. A háttérben újrapróbálkozó mentett hitelesítő adat percekkel a helyreállítás után újra létrehozza a hibákat, és újra zárolja a fiókot. A forrásalapú sebességkorlátozás maradhat kiegészítő kontrollként, de nem a fiók szabályzata.