Блакаванне ўліковага запісу супраць забароны адрасу: дзе OpenVPN сапраўды лічыць
Забарона крыніцы і блакаванне ўліковага запісу лічаць розныя рэчы. Знайдзіце сховішча, якое валодае лічыльнікам няўдач, перш чым выбіраць парог для VPN на базе PAM.
Заблакаваць адрас і заблакаваць уліковы запіс — два розныя механізмы процідзеяння, і яны адмаўляюць у процілеглых кірунках. Забарона адрасу спыняе адну крыніцу і пакідае мэтавы запіс дасяжным з іншага месца; блакаванне запісу спыняе гэтую асобу ўсюды, у тым ліку на ўласным ноўтбуку карыстальніка.
Для VPN, які перадае аўтэнтыфікацыю ў PAM, лічыльнікам з’яўляецца тое, да чаго даходзіць стек PAM, а не тое, што запісаў слухач.
Два лічыльнікі, дзве розныя ахвяры
Абмежавальнік хуткасці назірае за крыніцай і пытае, колькі спробаў прыйшло з яе нядаўна. Блакаванне назірае за асобай і пытае, колькі няўдач назапасіў гэты запіс. Першае абараняе даступнасць сэрвісу, другое — уліковыя даныя; адно не замяняе іншае.
Таму фраза мы блакуем IP пасля пяці няўдач не з’яўляецца адказам на справаздачу аб запаўненні ўліковых даных. Зламыснік змяняе крыніцы, кожная атрымлівае мала спробаў, і запіс ніколі не лічыцца. Наадварот, блакаванне без кантролю крыніц дазваляе зламысніку трымаць запіс заблакаваным бясконца, наўмысна правальваючыся.
У двух сродкаў розныя гісторыі аднаўлення. Забарона адрасу сканчаецца па таймеры, пра які ніхто не павінен думаць; блакаванне запісу можа патрабаваць адміністратара, дакументаванага перыяду чакання або самастойнага скіду.
Знайдзіце сховішча, якое ўжо валодае лікам
Перш чым нешта дадаваць, высветліце, ці існуе сховішча няўдач. Лакальны запіс Linux, служба каталога і знешні пастаўшчык ідэнтычнасці кожны трымаюць свой лік, а модуль PAM перад імі стварае другі, а не пашырае першы.
grep -rnE 'faillock|pam_tally|pam_unix' /etc/pam.d/
ls -l /etc/pam.d/ | head -20
Прачытайце файл службы, які VPN сапраўды называе, і прасачыце яго радкі ўключэння. У многіх дыстрыбутывах служба VPN уключае агульны файл, што азначае: лік, які вы наладжваеце, дзейнічае таксама для SSH і лакальных уваходаў.
Калі каталог ужо прымяняе блакаванне, карыснае пытанне — як размова PAM даходзіць да гэтага рашэння і як VPN паведамляе пра яго. Лакальны лік зверху не становіцца лічыльнікам каталога, і дзве палітыкі могуць разыходзіцца ў тым, калі запіс разблакуецца.
pam_faillock мае тры пазіцыі выкліку, а не адну
Модуль раздзяляе тры аперацыі, якія адзін скапіяваны радок звычайна размывае: праверка, ці заблакаваны запіс, запіс няўдачы і ачыстка гісторыі пасля поспеху.
Менавіта тут міграцыя са старога модуля ліку звычайна памыляецца. Скапіяваць радок з працоўнага прыкладу pam_tally2 у стек pam_faillock — не перайменаванне; дакументаваная наладка іншая, і выклік не на тым месцы можа запісваць няўдачы, ніколі іх не правяраючы.
faillock --user alice
faillock --user alice --reset
Утыліта інспекцыі — самы хуткі спосаб убачыць, ці лічыльнік сапраўдны: яна паказвае запісаныя няўдачы для запісу і можа іх ачысціць. Калі кантраляваная няўдача не змяняе гэты вынік, пазіцыя выкліку няправільная.
Асобная назва службы — не ізаляцыя
Уласны файл службы PAM для VPN робіць мэтавую палітыку бачнай, але не абмяжоўвае эфект. Любое ўключэнне агульнага файла прыцягвае тое, што робіць гэты файл, у тым ліку лікі для ўсёй сістэмы.
Ясна вырашыце, ці ахоплівае блакаванне толькі доступ праз VPN ці кожную службу, якая аўтэнтыфікуе той жа запіс. Абодва адказы абараняльныя; памылка — верыць, што вы выбралі адно, пакуль стек выконвае другое.
Потым улічыце кошт. Блакаванне можа выклікаць зламыснік, і церпіць менавіта ўладальнік запісу. Парог, перыяд чакання і адміністрацыйны шлях аднаўлення — частка палітыкі, і аднаўленне не павінна залежаць ад пераналадкі VPN падчас інцыдэнту.
Прымайце паслядоўнасць, а не адзіную адмову
Тэстуйце прызначанымі асобамі па зацверджаным плане і тэстуйце ланцуг, а не адну падзею: сапраўдны запіс аўтэнтыфікуецца, наўмысна няправільны пароль рухае лічыльнік, наладжанае блакаванне ўступае ў сілу, а дакументаванае аднаўленне вяртае доступ.
faillock --user test-vpn-01
journalctl -u openvpn-server@lab -n 30 --no-pager | grep -i 'auth\|pam'
Правярайце паводзіны поспеху так жа ўважліва, як няўдачы. Калі паспяховы ўваход не ачышчае гісторыю, запіс заблакуецца пасля павольнага назапашвання звычайных памылак. Калі ён ачышчае ўсё з кожнай службы, лічыльнік слабейшы, чым заяўляе палітыка.
Нарэшце, спыніце кліентаў без нагляду, перш чым абвясціць перамогу. Захаваныя ўліковыя даныя, якія паўтараюць спробы ў фоне, зноў ствараюць няўдачы праз хвіліны пасля аднаўлення і зноў блакуюць запіс. Абмежаванне хуткасці па крыніцы можа застацца дадатковым сродкам, але яно не з’яўляецца палітыкай запісу.