Безпека

Легке керування брандмауером UFW на Linux серверах: покрокове керівництво

  • 12 хв читання
  • Команда Hostragons
Легке керування брандмауером UFW на Linux серверах: покрокове керівництво

UFW на Linux серверах — це зручний інструмент для спрощення складних правил iptables, який дозволяє швидко та безпечно керувати брандмауером для SSH, HTTP, HTTPS та спеціальних портів. Особливо на серверах з Ubuntu та Debian, UFW дає можливість за замовчуванням блокувати вхідний трафік, відкривати необхідні сервіси, дозволяти доступ певним IP-адресам та обмежувати невдалі спроби підключення. Рекомендований базовий підхід для безпечного старту: забезпечити доступ до SSH, відхилити вхідний трафік за замовчуванням, дозволити вихідний трафік, відкривати лише потрібні порти сервісів і регулярно перевіряти стан UFW.

Щойно вебсервер виходить в інтернет, він стає об'єктом бот-сканувань, спроб вгадування паролів, перевірок на вразливості та непотрібних запитів до портів. Тому брандмауер — це перший рівень захисту Linux сервера. UFW є популярним серед технічних команд завдяки простоті команд, швидкому додаванню чи видаленню правил, веденню логів і зниженню ризику помилок порівняно з iptables. У цьому посібнику покроково розглянемо встановлення UFW, базові команди, запобігання блокуванню SSH, відкриття портів для вебсерверів, IP-базовані дозволи, перегляд логів, IPv6, особливості Docker та рекомендації з безпеки на 2026 рік.

Що таке UFW і для чого він потрібен?

UFW — це абревіатура від Uncomplicated Firewall, що перекладається як «проста система брандмауера». Він використовує механізми фільтрації пакетів ядра Linux, але надає більш зрозумілі команди для системного адміністратора. Замість написання складних iptables або nftables правил, можна, наприклад, дозволити HTTPS-трафік командою sudo ufw allow 443/tcp.

UFW особливо корисний у таких випадках:

  • Швидке налаштування базового мережевого захисту на новому VPS або виділеному сервері.
  • Підтримка вебсерверів з відкритими лише портами 80 і 443.
  • Обмеження доступу до SSH тільки певними IP-адресами.
  • Зменшення кількості brute-force атак за допомогою лімітів на підключення.
  • Захист тестових, staging та адміністративних панелей від відкритого доступу в інтернеті.
  • Моніторинг підозрілих підключень через логи.

UFW не вирішує всі проблеми безпеки, але суттєво зменшує площу атаки. У поєднанні з надійними паролями, доступом через SSH ключі, своєчасними оновленнями, SSL/TLS і безпекою додатків, він формує міцний базовий захист. Якщо ви розміщуєте вебсайт, не забувайте також про SSL-сертифікати сертифікати SSL.

Порівняння UFW, iptables та firewalld

В екосистемі Linux існують різні інструменти для керування брандмауером. UFW, iptables і firewalld часто виконують схожі функції, але відрізняються за простотою використання, підтримкою дистрибутивів і підходом до адміністрування. Нижче наведена таблиця для полегшення вибору.

Порівняння UFW, iptables та firewalld
ІнструментПеревагиДля кого підходить?Особливості
UFWПрості команди, швидке налаштування, сумісність з Ubuntu/DebianКористувачі VPS, веброзробники, малі та середні командиОбмежений для складної сегментації мережі
iptablesДуже детальний контроль правилПросунуті системні адміністраториНеправильне правило може повністю заблокувати доступ
firewalldМодель зон, динамічне керування правиламиCentOS, AlmaLinux, Rocky Linux середовищаМенш простий ніж UFW, потребує вивчення зон

Якщо ви керуєте вебсервером на базі Ubuntu, UFW зазвичай задовольняє більшість потреб. Для великих корпоративних мереж або багаторівневих систем безпеки UFW варто поєднувати з хмарними групами безпеки, WAF, IDS/IPS та централізованим логуванням.

Встановлення UFW та початкові перевірки

UFW зазвичай встановлений в Ubuntu за замовчуванням. Проте варто перевірити його наявність командою: sudo ufw status. Якщо отримуєте повідомлення про відсутність команди, потрібно встановити інструмент.

Встановлення на Ubuntu та Debian

Спершу оновіть список пакетів: sudo apt update. Потім встановіть UFW: sudo apt install ufw -y. Перевірте стан сервісу: sudo systemctl status ufw. Навіть якщо UFW не активний, це нормально — він почне діяти після ввімкнення правил.

Перший принцип безпеки при роботі з сервером — не поспішати. Якщо працюєте з VPS віддалено, переконайтеся, що до активації UFW порт SSH відкритий, інакше втратите доступ. Якщо у вас VPS від Hostragons, перед налаштуваннями безпеки корисно зафіксувати дані доступу до панелі управління та консолі VPS сервер.

Перегляд поточного стану

Для детального перегляду стану використовуйте sudo ufw status verbose. Щоб побачити правила з номерами, що зручно для видалення, застосуйте sudo ufw status numbered. Наприклад, щоб видалити помилкове правило, спершу знайдіть його номер, а потім командою sudo ufw delete 3 видаліть його.

Безпечний старт: базові правила

Для нового Linux сервера найкращою практикою є встановлення таких правил: відмовляти вхідним підключенням за замовчуванням, дозволяти вихідні, відкривати лише необхідні порти. Цей підхід відповідає принципу мінімальних привілеїв.

Основні команди:

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing
  • sudo ufw allow OpenSSH або sudo ufw allow 22/tcp
  • sudo ufw enable
  • sudo ufw status verbose

Ключовий момент — SSH. Якщо він працює на нестандартному порту, скажімо 2222, не активуйте UFW без дозволу цього порту: sudo ufw allow 2222/tcp. Зміна стандартного порту 22 лише частково знижує ризик автоматичних атак, важливіше використовувати авторизацію за ключами та відключати парольний вхід.

Захист SSH-доступу

SSH — це «вхідні двері» до вашого сервера, тому його налаштування потребує особливої уваги. Якщо SSH доступ відкритий для всіх, сканери в інтернеті швидко почнуть спроби злому.

Дозвіл на порт SSH

Якщо використовується стандартний порт, команда проста: sudo ufw allow 22/tcp. Якщо є профіль OpenSSH в Ubuntu, можна написати sudo ufw allow OpenSSH. Для іншого порту, наприклад 2222: sudo ufw allow 2222/tcp.

Обмеження SSH доступу за IP

Найбезпечніший спосіб — дозволяти SSH лише певним IP-адресам. Наприклад, для офісного IP 203.0.113.10 команда буде такою: sudo ufw allow from 203.0.113.10 to any port 22 proto tcp. Це не дозволить загальний доступ до порту SSH в інтернеті.

Якщо адміністраторів декілька, додайте правило для кожного IP. Для динамічних IP краще застосовувати VPN, bastion host або аварійний доступ через панель провайдера.

Обмеження brute-force атак

UFW має команду limit: sudo ufw limit 22/tcp, яка обмежує частоту підключень. Це знижує навантаження від частих невдалих спроб. Однак ця функція не замінює fail2ban. Для надійного захисту SSH використовуйте UFW limit, fail2ban, ключову аутентифікацію та жорстку політику користувачів.

Відкриття портів вебсерверу: HTTP та HTTPS

Для розміщення сайту потрібні порти 80/tcp та 443/tcp. Порт 80 відповідає за HTTP, 443 — за HTTPS. Зараз стандартом є HTTPS через безпеку, SEO та довіру користувачів. Відсутність SSL-сертифіката призводить до попереджень у браузерах і зниження конверсії сертифікати SSL.

Основні правила для Nginx чи Apache

Для HTTP виконайте: sudo ufw allow 80/tcp. Для HTTPS: sudo ufw allow 443/tcp. Хоча можна відкрити обидва порти одночасно через sudo ufw allow 80,443/tcp, більшість адміністраторів надають перевагу окремим командам для кращої читабельності.

UFW підтримує профілі додатків. За допомогою sudo ufw app list можна побачити їх. Наприклад, профіль Nginx Full відкриває HTTP і HTTPS одночасно: sudo ufw allow 'Nginx Full'. Для Apache існує аналогічний профіль Apache Full.

Чи достатньо лише HTTPS?

Технічно можна працювати лише через HTTPS, але для автоматичного оновлення сертифікатів Let's Encrypt і коректних перенаправлень HTTP на HTTPS порт 80 варто залишати відкритим. Найкраща практика — на вебсервері налаштувати перенаправлення всіх HTTP-запитів на HTTPS з кодом 301.

Спеціальні порти, бази даних та панелі управління

Відкрити порт легко, але важливо знати, які не слід відкривати. Порти баз даних, як 3306 для MySQL, 5432 для PostgreSQL, 6379 для Redis або 9200 для Elasticsearch, якщо залишити відкритими для інтернету, створюють великі ризики. Краще, щоб ці сервіси слухали лише на localhost або були доступні через приватну мережу.

Відкриття порту для конкретного IP

Якщо потрібно, щоб лише сервер додатка підключався до бази даних, використовуйте IP-фільтрацію. Наприклад: sudo ufw allow from 198.51.100.25 to any port 5432 proto tcp — це дозволить доступ до PostgreSQL лише з IP 198.51.100.25.

Небезпечно використовувати команду sudo ufw allow 5432/tcp у продакшені, оскільки це відкриває порт для всіх. Для баз даних, панелей управління і внутрішніх сервісів завжди застосовуйте обмеження за джерелом IP.

Особливості cPanel, Plesk та інших панелей

Панелі хостингу часто використовують кілька портів. Якщо ви користуєтесь Plesk, cPanel або власною панеллю, перш ніж увімкнути UFW, перевірте офіційний список портів, інакше можуть перестати працювати пошта, DNS, FTP або сам доступ до панелі. Для користувачів керованого хостингу ця складність зазвичай вирішується провайдером Веб-хостинг.

Видалення, редагування та порядок правил

Керування правилами в UFW просте, але під час змін у продакшені важливо вести облік. Спочатку подивіться правила з номерами: sudo ufw status numbered. Щоб видалити правило, використайте номер, наприклад sudo ufw delete 5.

Також можна видаляти правила за текстом, наприклад: sudo ufw delete allow 8080/tcp. Проте для складних IP-обмежень краще користуватися нумерованим списком.

Порядок правил має значення, особливо коли використовуються allow і deny одночасно. Якщо хочете вставити правило на початок, застосуйте sudo ufw insert 1 deny from 203.0.113.55 — це швидко блокує небажаний IP. Такий підхід корисний для оперативного блокування атакуючих чи зловмисних адрес.

Моніторинг трафіку через логи UFW

Брандмауер — не лише для відкривання та закривання портів, а й для розуміння мережевої активності. Щоб увімкнути логи UFW, виконайте sudo ufw logging on. Рівень логування можна встановити як low, medium, high або full. Для початку зазвичай достатньо low.

Переглядати логи можна у файлі /var/log/ufw.log, наприклад: sudo tail -f /var/log/ufw.log. Там бачите відхилені підключення, IP джерел, порти та протоколи. Якщо за короткий час на порт 22 приходить багато спроб з різних IP, варто посилити захист SSH.

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

Налаштування IPv6 в UFW

З 2026 року підтримка IPv6 є стандартом у багатьох дата-центрах. Проте деякі адміністратори налаштовують лише IPv4, залишаючи прогалини в безпеці. Якщо сервер отримує IPv6-адресу, переконайтесь, що UFW керує і IPv6-трафіком.

Перевірте файл /etc/default/ufw, у ньому має бути рядок IPV6=yes. Після змін перезапустіть UFW командами: sudo ufw disable та sudo ufw enable. У виводі ufw status мають бути правила з позначкою v6.

Якщо не використовуєте IPv6, не вимикайте його одразу, а спочатку перевірте вимоги провайдера та застосунків. Неправильна конфігурація IPv6 може залишити відкритим сервіс, який ви закрили для IPv4 — це поширена, але часто ігнорована помилка.

Чому UFW поводиться інакше з Docker?

Docker при публікації портів змінює iptables напряму. Через це порти, які здаються закритими в UFW, можуть бути доступні зовні через Docker. Наприклад, команда docker run -p 8080:80 відкриває порт 8080 на хості, спрямовуючи його до порту 80 в контейнері.

Для серверів з Docker рекомендується:

  • Перевірити, які порти відкриті через docker ps.
  • Видалити непотрібні параметри -p або ports.
  • Обмежити публікацію сервісів лише на 127.0.0.1, якщо це можливо.
  • Перевірити правила UFW разом з групами безпеки хмари.
  • У продакшені використовувати реверс-проксі для контролю доступу.

Безпека у контейнерних середовищах — це не лише UFW. Потрібно планувати мережі Docker, безпеку образів, керування секретами та політику оновлень. Вибір правильного сервера для високих навантажень також критично важливий Виділений сервер.

Контрольний список безпеки для UFW

Цей список допоможе швидко налаштувати базовий захист на новому Linux сервері, особливо перед запуском вебпроєктів, API, інтернет-магазинів або клієнтських панелей.

  • Оновіть сервер: sudo apt update && sudo apt upgrade -y.
  • Перевірте SSH доступ, залиште відкритим друге термінальне вікно для сесії.
  • Відхиліть вхідний трафік за замовчуванням: sudo ufw default deny incoming.
  • Дозвольте вихідний трафік: sudo ufw default allow outgoing.
  • Дозвольте SSH або обмежте його IP-адресами.
  • Відкрийте лише порти 80 і 443 для вебсерверу.
  • Не відкривайте порти баз даних загально в інтернет.
  • Активуйте UFW: sudo ufw enable.
  • Перевірте правила: sudo ufw status verbose та sudo ufw status numbered.
  • Увімкніть логування і протягом доби контролюйте підозрілий трафік.
  • Перевірте правила для IPv6.
  • Якщо використовуєте Docker чи панелі управління — протестуйте додаткові порти.

Практичний приклад: налаштування UFW для WordPress сервера

Припустимо, у вас один WordPress сайт на Ubuntu з Nginx, PHP-FPM і MySQL. MySQL слухає лише localhost, сайт працює через HTTPS, а SSH доступ дозволений лише для IP адміністратора. Конфігурація UFW може виглядати так:

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing
  • sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
  • sudo ufw allow 80/tcp
  • sudo ufw allow 443/tcp
  • sudo ufw logging on
  • sudo ufw enable
  • sudo ufw status verbose

У цьому випадку SSH доступ обмежений, відкриті лише необхідні порти для вебтрафіку, і база даних недоступна зовні. Для WordPress додатково потрібно встановити безпекові плагіни, використовувати складні паролі, оновлювати теми та плагіни, регулярно робити резервні копії і застосовувати SSL. Правильне налаштування DNS і домену також важливе для доступності Перевірка домену.

Поширені помилки та рекомендації

Після активації UFW пропав доступ по SSH

Зазвичай це трапляється, коли не дозволили порт SSH перед увімкненням. Якщо є доступ до консолі провайдера, додайте правило sudo ufw allow 22/tcp або для вашого порту. Якщо ні — звертайтесь до служби підтримки. Тому перш ніж активувати UFW, обов’язково додайте правило для SSH.

Вебсайт не відкривається

Навіть якщо Nginx чи Apache працює, сайт не буде доступний, якщо порти 80 і 443 заблоковані. Перевірте їх командою sudo ufw status verbose. Також переконайтеся, що вебсервер слухає потрібні порти: ss -tulpn. Перевірте правильність DNS записів Управління DNS.

Пошта не працює

Поштові сервери використовують кілька портів: SMTP (25, 465, 587), IMAP (143, 993), POP3 (110, 995) та їх захищені варіанти. Якщо ви користуєтесь поштовим хостингом, можливо, відкривати їх на сервері не потрібно хостинг корпоративної електронної пошти.

Правило додано, але ефекту немає

Можливі причини: неправильний протокол або порт, вплив Docker, конфлікт з групами безпеки в хмарі, або додаток слухає на іншому порті. UFW фільтрує мережевий рівень, але якщо сервіс не працює, навіть відкритий порт не допоможе. Завжди перевіряйте всі рівні мережевого доступу.

Рекомендації з безпеки UFW для 2026 року

Сучасний захист сервера — це не просто закриття портів. На 2026 рік рекомендується дотримуватись таких принципів:

  • Принцип найменших привілеїв: відкривайте лише необхідні порти.
  • Безпека аутентифікації: використовуйте SSH-ключі замість паролів.
  • Обмеження IP: розміщуйте адміністративні порти за фільтрами або VPN.
  • Моніторинг: регулярно аналізуйте логи UFW і системи.
  • Резервні плани: передбачте доступ через консоль або процедури відновлення при помилках правил.
  • Багаторівневий захист: поєднуйте UFW з WAF, SSL, оновленнями, резервним копіюванням і безпекою додатків.
  • Документування: фіксуйте причини додавання кожного правила в команді.

Добре налаштований брандмауер — важлива частина продуктивної та надійної хостинг-інфраструктури. Зі зростанням трафіку потрібно планувати не лише правила, а й ресурси, резервне копіювання, CDN, SSL і системи моніторингу Пакети хостингу.

Поширені запитання

Чи повністю захищає сервер увімкнення UFW?

Ні. UFW зменшує площу атаки і закриває зайві порти, створюючи важливий рівень захисту, але не замінює інші заходи. Потрібно регулярно оновлювати систему, використовувати SSH-ключі, надійні паролі, SSL, резервні копії та безпеку додатків.

Чи достатньо відкривати лише порти 80 і 443 для вебсайту?

Для вебсайту це зазвичай достатньо, але для доступу до сервера через SSH потрібен порт 22 або інший налаштований порт. Порти баз даних і панелей управління слід обмежувати за IP.

Чи підвищує безпеку зміна порту SSH?

Зміна порту SSH знижує кількість автоматичних атак, але справжній захист — це використання SSH-ключів, відключення паролів, IP-фільтрація та використання UFW limit або fail2ban.

Чи контролює UFW порти Docker контейнерів?

Не завжди. Docker змінює iptables напряму, тож порти, які здаються закритими в UFW, можуть бути доступні через Docker. Тому використовуйте docker ps, перевіряйте порти і правила UFW разом.

Чи потрібно перевіряти налаштування IPv6 в UFW?

Так. Якщо сервер має IPv6, переконайтеся, що UFW його контролює. Перевірте /etc/default/ufw на рядок IPV6=yes і дивіться правила з позначкою v6 у статусі UFW.

Підсумовуючи, керування брандмауером UFW на Linux серверах — це швидкий, зрозумілий і ефективний спосіб покращити безпеку. Правильні базові правила, захист SSH, контроль відкритих портів і моніторинг логів значно зменшать ризики атак. Якщо ви запускаєте новий проєкт, плануйте безпечний хостинг, SSL і регулярне обслуговування разом. Обираючи інфраструктуру, ознайомтеся з рішеннями Hostragons і поступово розвивайте безпеку відповідно до зростання вашого бізнесу.

Поділитися цією статтею:

Команда Hostragons

Актуальні посібники від нашої команди експертів з хостингу, серверів та доменних імен. Давайте разом знайдемо правильне рішення для вашого проєкту.

Зв'яжіться з нами