Блокирането на адрес и заключването на акаунт са два различни механизма и се провалят в противоположни посоки. Забраната на адрес спира един източник и оставя целевия акаунт достъпен от другаде; заключването спира самоличността навсякъде, включително на собствения лаптоп на потребителя.

За 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'

Проверете поведението при успех толкова внимателно, колкото при неуспех. Ако успешен вход не изчиства историята, акаунтът ще се заключи след бавно натрупване на обикновени грешки. Ако изчиства всичко от всяка услуга, броячът е по-слаб, отколкото твърди политиката.

Накрая спрете клиентите без надзор, преди да обявите победа. Запазени данни за вход, които опитват на заден план, ще създадат отново неуспехи минути след възстановяване и ще заключат акаунта отново. Ограничаването на честота по източник може да остане като допълнителна мярка, но то не е политиката за акаунта.

Подобни статии