UFW, Fail2ban і SSH-ключі для Ubuntu Server
19.04.2026Коли ви піднімаєте новий Ubuntu Server, перші години часто минають у налаштуванні сервісів, оновлень і користувачів. Але є ще один важливий крок: зробити базовий рівень захисту, щоб сервер не лишався відкритим для випадкових сканувань, підбору паролів і типових атак через SSH. Для цього не потрібен складний стек інструментів. У більшості випадків достатньо трьох речей: UFW для керування фаєрволом, Fail2ban для блокування підозрілих спроб входу та SSH-ключів замість паролів.
Чому саме цей мінімум
Ubuntu Server часто розгортають на хмарних VPS, виділених машинах або домашніх серверах, які мають доступ із мережі. Навіть якщо на сервері немає «цінних» даних, відкритий SSH-порт уже сам по собі привертає увагу ботів. Автоматизовані сканери безперервно шукають доступні порти, а слабкі паролі перевіряються масово й безжально.
Саме тому базова схема захисту має бути простою:
- UFW — дозволяє лише потрібні порти й блокує решту;
- SSH-ключі — прибирають залежність від пароля для входу по SSH;
- Fail2ban — тимчасово блокує IP, які надто часто помиляються під час входу.
Це не робить сервер «невразливим», але значно знижує ймовірність банальних атак і зменшує шум у логах.
Крок 1. Увімкніть UFW
UFW — це зручний інтерфейс до системного фаєрвола. Він підходить для більшості типових задач і не вимагає глибокого занурення в складні правила. Після встановлення Ubuntu Server UFW часто вже є в системі, але його треба увімкнути та правильно налаштувати.
Базові команди
Спочатку переконайтеся, що SSH доступний, і лише потім вмикайте фаєрвол. Це важливо, щоб не заблокувати собі підключення.
sudo ufw allow OpenSSHsudo ufw enablesudo ufw status verbose
Якщо SSH працює на нестандартному порту, дозвольте саме його. Наприклад, для порту 2222 команда буде іншою. Також можна одразу дозволити веб-порти, якщо сервер буде хостити сайт:
sudo ufw allow 80/tcpsudo ufw allow 443/tcp
Головна ідея проста: відкривати лише те, що справді використовується. Усе інше має залишатися закритим за замовчуванням.
Крок 2. Перейдіть на SSH-ключі
Парольна автентифікація в SSH — зручна, але не найкраща для сервера, який доступний з інтернету. Навіть складний пароль збільшує поверхню атаки. SSH-ключі працюють інакше: у вас є приватний ключ на локальній машині та публічний ключ на сервері. Для входу потрібно підтвердити володіння приватним ключем.
Як це працює на практиці
На вашому комп’ютері створюється пара ключів. Публічний ключ копіюється на сервер у файл ~/.ssh/authorized_keys користувача, під яким ви будете входити. Після цього ви можете відключити парольний вхід, і SSH більше не прийматиме авторизацію за паролем.
Переваги ключів
- складніше підібрати доступ автоматизованими атаками;
- зручніше підключатися без постійного введення пароля;
- легше організувати безпечний доступ для кількох адміністраторів;
- можна додатково захищати ключ passphrase.
Важливий момент: не зберігайте приватний ключ без захисту на чужих або спільних пристроях. Якщо ключ захищено passphrase, це додає ще один бар’єр у разі компрометації файлу ключа.
Що варто зробити після переходу на ключі
Після перевірки, що вхід за ключем працює, вимкніть парольну автентифікацію в конфігурації SSH. Також бажано заборонити вхід під root напряму. Практичніше заходити під звичайним користувачем і використовувати sudo для адміністративних дій.
- увімкніть доступ лише за ключами;
- забороніть прямий root-login;
- перевірте, що нове правило не відрізало вам доступ;
- збережіть резервний спосіб відновлення доступу на випадок помилки.
Крок 3. Додайте Fail2ban
Fail2ban — це інструмент, який стежить за журналами сервісів і тимчасово блокує IP-адреси, якщо бачить надто багато невдалих спроб входу. Для SSH це особливо корисно, бо ботам стає значно складніше безперервно перебирати логіни й паролі.
Що робить Fail2ban
Якщо певна адреса багаторазово помиляється під час входу, Fail2ban додає тимчасове блокування на рівні фаєрвола. Це не заміна UFW, а радше надбудова над ним. UFW визначає, що в принципі дозволено на сервері, а Fail2ban динамічно реагує на підозрілу поведінку.
Типове налаштування
Для старту достатньо захистити SSH-демон. У більшості випадків цього вже вистачає, щоб відсіяти масові спроби входу. Далі можна додавати й інші сервіси, якщо вони теж приймають авторизацію і мають журнали з помилками входу.
- захистіть SSH у першу чергу;
- перевірте, чи служба коректно читає логи;
- оберіть помірний час блокування;
- не робіть правила надто агресивними, щоб не блокувати легітимних користувачів.
Fail2ban особливо корисний, якщо сервер має публічний SSH і кілька користувачів. Він зменшує кількість однотипних атак і робить логування більш чистим та зрозумілим.
Рекомендований порядок дій
Щоб не втратити доступ до сервера, налаштовуйте захист у правильній послідовності. Спочатку переконайтеся, що у вас є доступ через консоль або резервне підключення, а вже потім змінюйте параметри SSH.
- створіть окремого користувача з правами sudo;
- налаштуйте SSH-ключі для цього користувача;
- перевірте вхід у новій сесії, не закриваючи стару;
- увімкніть UFW і відкрийте тільки потрібні порти;
- встановіть і активуйте Fail2ban;
- лише після тесту вимикайте парольний вхід у SSH.
Такий порядок допомагає уникнути ситуації, коли фаєрвол уже ввімкнений, а ключі ще не перевірені, або коли SSH налаштовано так, що ви не можете підключитися після перезапуску служби.
На що звернути увагу
Базова безпека не закінчується на трьох інструментах, але цього часто достатньо для старту. Важливо регулярно оновлювати систему, стежити за активними сервісами й не залишати відкритими порти, які більше не потрібні. Якщо ви встановили новий застосунок, перевірте, чи не додав він зайвих правил у фаєрвол.
Також корисно періодично перевіряти журнали входу по SSH і статус Fail2ban. Якщо бачите багато блокувань з одних і тих самих адрес, це нормальний сигнал, що сервер потрапляє в автоматичні сканування. Якщо ж блокуються ваші власні IP, варто переглянути налаштування або мережеву поведінку.
Висновок
UFW, Fail2ban і SSH-ключі — це той мінімум, який варто налаштувати майже на кожному Ubuntu Server. UFW звужує доступ лише до потрібних портів, SSH-ключі прибирають небезпечну парольну автентифікацію, а Fail2ban реагує на нав’язливі спроби входу. Разом вони створюють простий і практичний фундамент безпеки, який легко підтримувати та розширювати надалі.
Якщо почати саме з цього набору, сервер одразу стає значно менш вразливим до типових загроз, а адміністрування залишається зрозумілим і контрольованим.