Miklix

Як налаштувати брандмауер на сервері Ubuntu

Опубліковано: 15 лютого 2025 р. о 21:34:36 UTC

У цій статті пояснюється і наводиться кілька прикладів того, як налаштувати брандмауер на GNU/Linux за допомогою ufw, що є скороченням від Uncomplicated FireWall - і назва відповідна, це дійсно дуже простий спосіб переконатися, що у вас відкрито не більше портів, ніж вам потрібно.


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

How to Set Up a Firewall on Ubuntu Server

Інформація в цій публікації базується на Ubuntu Server 14.04 x64. Він може бути дійсним, а може і не дійсним для інших версій. (Оновлення: я можу підтвердити, що інформація в цій публікації в основному все ще актуальна та функціональна станом на Ubuntu Server 24.04, однак за проміжні 10 років ufw став дещо "розумнішим", маючи профілі для загальних серверних додатків (наприклад, ви можете увімкнути "Nginx full" замість портів 80 та 443 окремо) і відключати/вмикати весь брандмауер для застосування нових правил більше не потрібно)

Коли я тільки починав працювати з серверами GNU/Linux (Ubuntu), налаштування брандмауера передбачало ручне створення та підтримку потенційно складного файлу конфігурації для iptables. Однак нещодавно я відкрив для себе ufw, що є скороченням від Uncomplicated Firewall – і це дійсно так :-)

У моїй установці Ubuntu Server 14.04 вже був встановлений ufw, але якщо у вас його немає, просто встановіть його з репозиторіїв:

sudo apt-get install ufw

UFW насправді є просто інструментом, який спрощує конфігурацію iptables – за лаштунками це все ще iptables і брандмауер ядра Linux, який виконує фільтрацію, тому ufw не менше і не безпечніше, ніж ці. Однак, оскільки ufw значно спрощує правильне налаштування брандмауера, він може знизити ризик людської помилки і тому, можливо, є більш безпечним для недосвідчених адміністраторів.

Якщо ваш сервер налаштований на IPv6 та IPv4, переконайтеся, що цей параметр увімкнено і для UFW. Відредагуйте файл /etc/default/ufw і знайдіть рядок з написом IPV6=yes. У моїй інсталяції він вже був, але якщо це не так або якщо він каже «ні», вам слід відредагувати його

Потім просто скористайтеся командним рядком, щоб увімкнути порти, які ви хочете відкрити. Якщо ви підключені до свого сервера через ssh, обов'язково дозвольте і це, інакше це може порушити ваше з'єднання і, можливо, заблокувати вас на вашому сервері під час його активації - залежно від того, чи є у вас фізичний доступ до сервера чи ні, це може бути трохи незручно ;-)

Наприклад, якщо ви використовуєте ssh на стандартному порту 22 і налаштовуєте веб-сервер, який підтримує як незашифроване (HTTP на порту 80), так і зашифроване (HTTPS на порту 443) з'єднання, вам слід виконати такі команди для налаштування ufw:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Якщо вам потрібно більше правил, просто додайте їх, як описано вище.

Якщо у вас статична IP-адреса і вам потрібно мати можливість підключатися через ssh лише з одного місця, ви також можете обмежити з'єднання ssh однією вихідною адресою, як показано нижче:

sudo ufw allow from 192.168.0.1 to any port 22

Звичайно ж, замість цього введіть свою IP-адресу.

Коли закінчите, увімкніть ufw, вводячи:

sudo ufw enable

І ви закінчили! Брандмауер запущений і автоматично запуститься при перезавантаженні сервера :-)

Якщо ви внесете зміни до конфігурації ufw, вам може знадобитися вимкнути та увімкнути її знову, щоб ввести їх у дію, ось так:

sudo ufw disable
sudo ufw enable

Щоб переглянути поточну конфігурацію, просто введіть:

sudo ufw status

Якщо ufw не увімкнено, це просто покаже повідомлення "неактивне", інакше буде вказано поточні визначені правила.

Поділитися на BlueskyПоділіться на FacebookПоділіться на LinkedInПоділіться на TumblrПоділитися на XПоділіться на LinkedInЗакріпити на Pinterest

Міккель Банг Крістенсен

Про автора

Міккель Банг Крістенсен
Міккель - творець і власник сайту miklix.com. Він має понад 20 років досвіду роботи професійним програмістом/розробником програмного забезпечення і наразі працює на повну ставку у великій європейській ІТ-корпорації. У вільний від ведення блогу час він присвячує різноманітним інтересам, хобі та захопленням, що певною мірою відображається на різноманітності тем, які висвітлюються на цьому сайті.