Konto lukustamine versus aadressi keeld: kus OpenVPN tegelikult loeb
Allika keeld ja konto lukk loevad erinevaid asju. Leidke hoidla, millel on ebaõnnestumiste loendur, enne kui valite PAM-il põhineva VPN-i jaoks lävendi.
Aadressi blokeerimine ja konto lukustamine on kaks erinevat mehhanismi ning need ebaõnnestuvad vastassuundades. Aadressi keeld peatab ühe allika ja jätab sihtkonto mujalt kättesaadavaks; konto lukk peatab selle identiteedi kõikjal, ka kasutaja enda sülearvutis.
VPN-i puhul, mis delegeerib autentimise PAM-ile, on loendur see, kuhu PAM-i virn jõuab, mitte see, mida kuulaja logis.
Kaks loendurit, kaks erinevat ohvrit
Kiirusepiiraja vaatab allikat ja küsib, kui palju katseid on sealt hiljuti tulnud. Lukk vaatab identiteeti ja küsib, kui palju ebaõnnestumisi on konto kogunud. Esimene kaitseb teenuse kättesaadavust, teine mandaati; kumbki ei asenda teist.
Seetõttu ei ole lause blokeerime IP pärast viit ebaõnnestumist vastus mandaatide täitmise aruandele. Ründaja vahetab allikaid, igaüks saab vähe katseid ja kontot ei loeta kunagi. Vastupidi, lukk ilma allika kontrollita lubab ründajal hoida kontot tahtlikult ebaõnnestudes määramatult lukus.
Kahel kontrollil on ka erinevad taastamislood. Aadressi keeld aegub taimeril, mille peale ei pea keegi mõtlema; konto lukk võib vajada administraatorit, dokumenteeritud ooteaega või iseteeninduslikku lähtestamist.
Leidke hoidla, millel on juba loendur
Enne millegi lisamist tehke kindlaks, kas ebaõnnestumiste hoidla on juba olemas. Kohalik Linuxi konto, kataloogiteenus ja väline identiteedipakkuja peavad igaüks oma loendit ning nende ette pandud PAM-moodul loob teise, mitte ei laienda esimest.
grep -rnE 'faillock|pam_tally|pam_unix' /etc/pam.d/
ls -l /etc/pam.d/ | head -20
Lugege teenusefaili, mille VPN tegelikult nimetab, ja järgige selle kaasamise ridu. Paljudes distributsioonides kaasab VPN-i teenus ühise faili, mis tähendab, et loendur, mida reguleerite, kehtib ka SSH ja kohalike sisselogimiste kohta.
Kui kataloog juba lukku rakendab, on kasulik küsimus, kuidas PAM-i vestlus selle otsuseni jõuab ja kuidas VPN sellest teatab. Peale lisatud kohalik loendur ei muutu kataloogi loenduriks ning kaks poliitikat võivad lahkneda selles, millal konto avaneb.
pam_faillockil on kolm kutsepositsiooni, mitte üks
Moodul eraldab kolm toimingut, mida üks kopeeritud rida tavaliselt hägustab: kontroll, kas konto on juba lukus, ebaõnnestumise kirjendamine ja ajaloo kustutamine pärast õnnestumist.
Siin eksib vanemast loendurmoodulist migreerimine tavaliselt. Töötava pam_tally2 näite rea kopeerimine pam_faillock virna ei ole ümbernimetamine; dokumenteeritud seadistus erineb ning valesse kohta pandud kutse võib ebaõnnestumisi kirjendada ilma neid kunagi kontrollimata.
faillock --user alice
faillock --user alice --reset
Kontrollitööriist on kiireim viis näha, kas loendur on tegelik: see näitab konto kirjendatud ebaõnnestumisi ja suudab need kustutada. Kui kontrollitud ebaõnnestumine seda väljundit ei muuda, on kutse asukoht vale.
Eraldi teenusenimi ei ole isolatsioon
VPN-ile oma PAM-i teenusefaili andmine teeb kavandatud poliitika nähtavaks, kuid ei piira mõju. Ühise faili kaasamine toob sisse kõik, mida see fail teeb, sealhulgas süsteemiülesed loendurid.
Otsustage selgelt, kas lukk katab ainult VPN-i juurdepääsu või iga teenust, mis autendib sama kontot. Mõlemad vastused on kaitstavad; viga on uskuda, et valisite ühe, samal ajal kui virn rakendab teist.
Seejärel arvestage kuluga. Lukku võib vallandada ründaja ja kannatab konto omanik. Lävend, ooteaeg ja administratiivne taastamistee on poliitika osa ning taastamine ei tohi sõltuda VPN-i ümberseadistamisest intsidendi ajal.
Nõustuge järjestusega, mitte ühe tagasilükkamisega
Testige määratud identiteetidega heakskiidetud plaani järgi ja testige ahelat, mitte üksikjuhtumit: kehtiv konto autendib, tahtlikult vale parool liigutab loendurit, seadistatud lukk jõustub ja dokumenteeritud taastamine annab juurdepääsu tagasi.
faillock --user test-vpn-01
journalctl -u openvpn-server@lab -n 30 --no-pager | grep -i 'auth\|pam'
Vaadake õnnestumise käitumist sama hoolikalt kui ebaõnnestumise oma. Kui edukas sisselogimine ajalugu ei kustuta, lukustub konto tavaliste vigade aeglase kuhjumise järel. Kui see kustutab kõik igast teenusest, on loendur nõrgem, kui poliitika väidab.
Lõpuks peatage järelevalveta kliendid, enne kui võidu välja kuulutate. Salvestatud mandaat, mis proovib taustal uuesti, loob taastamisest minutite pärast ebaõnnestumised uuesti ja lukustab konto taas. Allikapõhine kiiruse piiramine võib jääda lisakontrolliks, kuid see ei ole konto poliitika.