Zámek účtu versus ban adresy: kde OpenVPN skutečně počítá
Zákaz zdroje a zámek účtu počítají různé věci. Najděte úložiště, které vlastní počítadlo selhání, než zvolíte práh pro VPN postavenou na PAM.
Zablokovat adresu a uzamknout účet jsou dva různé mechanismy a selhávají opačným směrem. Ban adresy zastaví jeden zdroj a cílový účet zůstane dostupný odjinud; zámek účtu zastaví tuto identitu všude, i na vlastním notebooku uživatele.
U VPN, která ověřování deleguje na PAM, je počítadlem to, kam se dostane zásobník PAM, ne to, co zalogoval listener.
Dvě počítadla, dvě různé oběti
Omezovač rychlosti sleduje zdroj a ptá se, kolik pokusů z něj nedávno přišlo. Zámek sleduje identitu a ptá se, kolik selhání účet nasbíral. První chrání dostupnost služby, druhý přihlašovací údaje; jedno nenahrazuje druhé.
Proto věta blokujeme IP po pěti selháních není odpovědí na zprávu o doplňování přihlašovacích údajů. Útočník střídá zdroje, každý dostane málo pokusů a účet se nikdy nepočítá. Naopak zámek bez kontroly zdrojů dovolí útočníkovi držet účet uzamčený neomezeně tím, že záměrně selhává.
Obě opatření mají i různý příběh obnovy. Ban adresy vyprší podle časovače, nad kterým nikdo nemusí přemýšlet; zámek účtu může potřebovat správce, dokumentovanou čekací dobu nebo samoobslužné obnovení.
Najděte úložiště, které už počítadlo vlastní
Než něco přidáte, zjistěte, zda už úložiště selhání existuje. Místní účet Linuxu, adresářová služba a externí poskytovatel identity si každý vedou vlastní počet a modul PAM před nimi vytváří druhý, místo aby rozšířil první.
grep -rnE 'faillock|pam_tally|pam_unix' /etc/pam.d/
ls -l /etc/pam.d/ | head -20
Přečtěte soubor služby, který VPN skutečně uvádí, a sledujte jeho řádky vkládání. V mnoha distribucích služba VPN vkládá společný soubor, takže počet, který ladíte, platí i pro SSH a místní přihlášení.
Pokud adresář už zámek vynucuje, užitečná otázka je, jak se konverzace PAM k tomu rozhodnutí dostane a jak to VPN hlásí. Místní počet navrch se nestane adresářovým počítadlem a obě politiky se mohou rozejít v tom, kdy se účet odemkne.
pam_faillock má tři pozice volání, ne jednu
Modul odděluje tři operace, které jedna zkopírovaná řádka obvykle stírá: kontrolu, zda je účet už uzamčen, záznam selhání a vymazání historie po úspěchu.
Právě tady migrace ze staršího počítacího modulu obvykle chybuje. Zkopírovat řádek z funkčního příkladu pam_tally2 do zásobníku pam_faillock není přejmenování; dokumentované nastavení je jiné a volání na špatném místě může selhání zaznamenávat, aniž by je kdy zkontrolovalo.
faillock --user alice
faillock --user alice --reset
Inspekční nástroj je nejrychlejší způsob, jak zjistit, zda je počítadlo skutečné: vypíše zaznamenaná selhání účtu a umí je vymazat. Pokud kontrolované selhání tento výstup nezmění, je pozice volání špatná.
Vlastní název služby není izolace
Vlastní soubor služby PAM pro VPN zviditelní zamýšlenou politiku, ale sám účinek neomezí. Jakékoli vložení společného souboru přinese, co ten soubor dělá, včetně počítadel platných pro celý systém.
Jasně rozhodněte, zda má zámek pokrývat jen přístup přes VPN, nebo každou službu, která ověřuje stejný účet. Obě odpovědi jsou obhajitelné; chybou je věřit, že jste zvolili jedno, zatímco zásobník provádí druhé.
Pak započítejte cenu. Zámek může vyvolat útočník a trpí uživatel, kterému účet patří. Práh, čekací doba i administrativní cesta obnovy jsou součástí politiky a obnova nesmí záviset na přenastavení VPN během incidentu.
Přijměte posloupnost, ne jedno odmítnutí
Testujte s určenými identitami podle schváleného plánu a testujte řetěz, ne jednu událost: platný účet se ověří, záměrně špatné heslo posune počítadlo, nastavený zámek vstoupí v platnost a dokumentovaná obnova vrátí přístup.
faillock --user test-vpn-01
journalctl -u openvpn-server@lab -n 30 --no-pager | grep -i 'auth\|pam'
Chování při úspěchu kontrolujte stejně pečlivě jako při selhání. Pokud úspěšné přihlášení historii nevymaže, účet se uzamkne po pomalém hromadění běžných chyb. Pokud vymaže vše ze všech služeb, je počítadlo slabší, než politika tvrdí.
Nakonec zastavte klienty bez dohledu, než vyhlásíte vítězství. Uložené přihlašovací údaje, které na pozadí opakují pokusy, znovu vytvoří selhání minuty po obnově a účet znovu uzamknou. Omezení rychlosti podle zdroje může zůstat jako doplňková kontrola, ale není politikou účtu.