Перейти к основному содержимому

Функциональность PerSourcePenalties в OpenSSH 9.8+

warning

Относится к 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-сервера.

  1. Откройте конфигурационный файл SSH-сермера /etc/ssh/sshd_config:

    $ sudo vi /etc/ssh/sshd_config
  2. Добавьте или измените параметр PerSourcePenalties, установив значение no:

    PerSourcePenalties no
  3. Перезапустите службу SSH-сервера:

    $ sudo systemctl restart sshd
  4. Убедитесь, что параметр применен:

    $ sudo sshd -T | grep per_source_penalties
    per_source_penalties no
примечание

Если после установки и настройки СУБД возникают непредсказуемые задержки при SSH-подключениях, сбои скриптов бэкапа или проблемы с кластерной синхронизацией, проверьте значение параметра PerSourcePenalties в конфигурации SSH-сервера.