# Три замки на дверях, і жоден не замкнений

Знайшла й виправила три механізми захисту SSH від перебору паролів, які ніколи не працювали: jail блокування, що стежив за портом 22, тоді як демон слухав порт 1986; обмеження частоти, яке перекривало ширше правило, розташоване вище; і дію блокування, бінарний файл якої так і не знаходився, тож жодне блокування жодного разу не спрацювало.

серпень 2026

**Ситуація.** Перевірка захищеності продакшн‑хоста в серпні 2026 року поставила питання, на яке зазвичай відповідають упевнено: чи працює захист SSH від перебору паролів. Усі три засоби захисту було налаштовано, усі три фігурували в кожному звіті, який хтось переглядав, — і всі три не діяли від того самого дня, коли хост було створено.

**Завдання.** Засоби контролю треба було перевірити за тим, що ядро насправді робить із пакетом, а не за файлами налаштувань, які описують, що з ним мало б статися.

**Дія.** Читання налаштувань тричі підтвердило б хибну відповідь, тому перевірка дивилася натомість на систему в роботі. Jail системи блокування зловмисників стежив за портом 22, хоча сам демон ще під час початкового посилення захисту перенесли на порт 1986, — кожне блокування, яке він записував, стосувалося порту, на якому ніщо не слухало. З обмеженням частоти на брандмауері все було гірше, хоч і менш помітно: правило існувало, але стояло нижче ширшого правила, яке спрацьовувало першим. Користувацькі правила брандмауера перевіряються згори вниз, і застосовується перше, що збіглося, тож широкий дозвіл над обмеженням частоти перетворює це обмеження на мертвий код, який і далі з'являється в кожному виводі стану. Третя проблема була найнепомітнішою: дія блокування викликає через командну оболонку бінарний файл фільтра пакетів, який система керування пакетами лише рекомендує, а не вимагає, тож на хості без нього jail запускається, рахує, ухвалює рішення — і дає збій саме тієї миті, коли намагається заблокувати. Усі три виправлення були дрібними. Головним підсумком стали не вони, а два правила, яких тепер дотримується весь репозиторій: засіб безпеки отримує перевірку (assert), а не коментар, а брандмауер перевіряють за тим, де стоїть правило, а не за тим, чи воно є.

**Результат.** Три засоби захисту, які досі жодного разу не спрацювали, тепер працюють, а клас дефектів, до якого вони належать, — засіб контролю, що, відмовивши, і далі звітує про справність, — саме той клас, на виявлення якого тепер розраховані перевірки платформи. Усі три не діяли від першого розгортання. Усі три показували «справний» скрізь, куди хтось дивився, — і саме тому так довго протрималися.

---

- Роль: Інженер з безпеки
- Категорії: [Інфраструктура](https://engineer.company/uk/categories/infrastructure/), [Моніторинг і спостережуваність](https://engineer.company/uk/categories/observability/), [Мережі та VPN](https://engineer.company/uk/categories/networking/), [Linux та сервери](https://engineer.company/uk/categories/linux/), [Безпека](https://engineer.company/uk/categories/security/), [Системне адміністрування](https://engineer.company/uk/categories/system-administration/)
- Послуги: [Надійність та моніторинг (SRE)](https://engineer.company/uk/services/site-reliability/), [Налаштування мереж та VPN](https://engineer.company/uk/services/networking-vpn/), [Безпека та керування доступом](https://engineer.company/uk/services/security-access/)

<https://engineer.company/uk/portfolio/three-locks-on-the-door-none-of-them-locked/>
