Ограничение разрешенного числа неудачных попыток входа в систему¶
В AccentOS поддерживается аутентификация пользователей, базирующаяся на локальных механизмах модуля Keystone OpenStack и централизованных механизмах LDAP, в частности MS AD, FreeIPA, OpenLDAP.
Аутентификация настраивается на локальный или внешний режим работы в Keystone. Внешние централизованные механизмы предпочтительны при работе в распределенных архитектурах и в организациях, где уже развернут LDAP для минимизации издержек на его поддержку. Локальные механизмы используются для небольших установок или когда по соображениям безопасности необходимо отделить аутентификацию от любых других инструментов.
Предупреждение
Абсолютно безопасного метода для сохранения паролей не существует ни в FreeIPA, ни в Keystone, поскольку угрозы проистекают из уязвимостей ОС Linux или Windows и в определенной мере связаны с криптографическими методами, которые являются основным риском при хранении хешей паролей.
Ограничение числа неудачных попыток в LDAP (на примере FreeIPA)¶
Безопасность пользователей, опции и ограничения паролей при использовании LDAP базируются на механизмах, реализованных в самом LDAP. Парольные политики распространяются либо на группу пользователей LDAP, либо на всех пользователей (глобальная политика).
Параметры блокировки в FreeIPA¶
Пример настройки политики блокировки в FreeIPA¶
# Установка максимального количества неудачных попыток (5)
ipa pwpolicy-mod --maxfail=5
# Установка интервала сброса счетчика (60 секунд)
ipa pwpolicy-mod --failinterval=60
# Установка длительности блокировки (600 секунд = 10 минут)
ipa pwpolicy-mod --lockouttime=600
# Просмотр текущей политики
ipa pwpolicy-show
Ограничение числа неудачных попыток в Keystone OpenStack¶
При использовании Keystone OpenStack можно (и нужно) независимо друг от друга включать дополнительные функции обеспечения безопасности Keystone в соответствии с корпоративной политикой безопасности.
Параметры блокировки в Keystone¶
Пример настройки блокировки в Keystone¶
В файле конфигурации Keystone (/etc/keystone/keystone.conf):
[security_compliance]
# Максимальное количество неудачных попыток (3)
lockout_failure_attempts = 3
# Длительность блокировки в секундах (300 секунд = 5 минут)
lockout_duration = 300
Дополнительная защита: fail2ban¶
Для дополнительной защиты от brute-force атак на SSH и веб-интерфейсы рекомендуется использовать fail2ban.
Пример настройки fail2ban для защиты SSH и Horizon¶
# Установка fail2ban
sudo apt update
sudo apt install fail2ban -y
# Создание локального конфигурационного файла
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
В файле /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
findtime = 600
[horizon]
enabled = true
port = http,https
filter = horizon
logpath = /var/log/horizon/horizon.log
maxretry = 5
bantime = 600
findtime = 600
Создание фильтра для Horizon /etc/fail2ban/filter.d/horizon.conf:
[Definition]
failregex = .* Login failed for user .* from <HOST>
ignoreregex =
Сравнение механизмов блокировки¶
Рекомендации по настройке¶
- Устанавливайте разумные лимиты — 3-5 неудачных попыток достаточно для защиты
- Настраивайте длительность блокировки — 5-15 минут оптимально
- Используйте fail2ban для дополнительной защиты сетевых сервисов
- Мониторьте логи на предмет попыток подбора паролей
- Комбинируйте с другими механизмами — сложные пароли, двухфакторная аутентификация