Функциональность PerSourcePenalties в OpenSSH 9.8+
Относится к OpenSSH 9.8 и выше (на ОС SberLinux 9.8, SberLinux 10).
В версиях OpenSSH 9.8+ по умолчанию включена функциональность PerSourcePenalties — механизм защитных санкций на уровне IP-источника. Сервер фиксирует «инциденты» (неудачные попытки авторизации, аварийные разрывы соединений, нарушения протокола) и при превышении порогов начинает навязывать возрастающие задержки новым подключениям с данного IP-адреса, вплоть до фактической блокировки (до 600 секунд).
Оставленная включенной настройка PerSourcePenalties может привести к непредсказуемому поведению при эксплуатации СУБД Pangolin.
Влияние на работу СУБД
Возможное влияние настройки на работу с СУБД Pangolin:
-
Отказ системы мониторинга:
Если агент мониторинга или скрипты сбора метрик (через SSH-туннели или
sshpass) совершают частые короткие подключения к серверу БД, OpenSSH может расценить это как атаку (или ошибки авторизации) и заблокировать IP-адрес сервера мониторинга. В результате метрики перестанут собираться. -
Сбои в кластерах High Availability (HA):
В кластерных конфигурациях СУБД (например, Pacemaker/Corosync, Postgres Patroni) узлы часто используют SSH для проверки состояния, синхронизации журналов и управления сервисами. Блокировка SSH-каналов при сетевых микрозадержаниях или перегрузке может привести к ложному определению падения узла и ложному переключению (failover).
-
Сбои скриптов резервного копирования и миграции:
Утилиты, использующие SSH для передачи данных (
rsync,scp), при каждом аварийном разрыве соединения фиксируют инцидентpenalty-disconnect. При повторных разрывах (например, при сетевых сбоях и последующих перезапусках скрипта) количество инцидентов превышает порог, и сервер начинает навязывать задержки новым подключениям с данного IP. Это приводит к тайм-аутам утилит и, как следствие, к срыву планового окна резервного копирования. -
Проблемы с пулами соединений и SSH-туннелями:
Если к СУБД или служебным утилитам подключаются приложения, устанавливающие много короткоживущих SSH-туннелей, агрессивная настройка
min(минимальная задержка при превышении лимита) будет искусственно «подвешивать» процессы, увеличивая тайм-ауты подключения к базе данных.
Управление
Для предотвращения проблем, связанных с функциональностью PerSourcePenalties, необходимо явно отключить ее в конфигурационном файле SSH-сервера.
-
Откройте конфигурационный файл SSH-сермера
/etc/ssh/sshd_config:$ sudo vi /etc/ssh/sshd_config -
Добавьте или измените параметр
PerSourcePenalties, установив значениеno:PerSourcePenalties no -
Перезапустите службу SSH-сервера:
$ sudo systemctl restart sshd -
Убедитесь, что параметр применен:
$ sudo sshd -T | grep per_source_penaltiesper_source_penalties no
Если после установки и настройки СУБД возникают непредсказуемые задержки при SSH-подключениях, сбои скриптов бэкапа или проблемы с кластерной синхронизацией, проверьте значение параметра PerSourcePenalties в конфигурации SSH-сервера.