JavaRush /Курси /Docker SELF /Налаштування брандмауера (`ufw`, `iptables`)

Налаштування брандмауера (`ufw`, `iptables`)

Docker SELF
Рівень 5 , Лекція 1
Відкрита

1. UFW: Uncomplicated Firewall

Навіщо потрібен брандмауер?

Уявіть, що ваш сервер — це будинок, повний всякого цінного добра (даних, звичайно). Якщо ви залишите двері навстіж, хто завгодно може зайти, поласувати вашими даними, а потім залишити брудний посуд (або щось гірше). Брандмауер — це ті самі двері, які ви можете контролювати: кому можна заходити, через які ворота і за яких умов.

Linux пропонує два основних інструменти для налаштування брандмауера: ufw (Uncomplicated Firewall, тобто "нескладний брандмауер") та iptables. Давай розбиратись, як вони працюють і чим відрізняються.

Що таке UFW?

UFW — це інструмент для налаштування брандмауера, створений з ідеєю "давайте зробимо це простіше". Він ідеально підходить для тих, хто хоче швидко налаштувати базові правила доступу, не вникаючи у складні деталі.

Встановлення та увімкнення UFW

UFW зазвичай попередньо встановлений у більшості дистрибутивів на базі Debian/Ubuntu. Якщо його немає, встановіть його:

sudo apt update
sudo apt install ufw

Увімкнути UFW:

sudo ufw enable

Перевірити статус:

sudo ufw status

При першому запуску статус, скоріш за все, буде "inactive". Після увімкнення він зміниться на "active".

Налаштування правил UFW

Тепер найцікавіше — налаштування правил, що визначають, який трафік пропускати, а який блокувати.

Дозволити доступ по SSH (порт 22):

sudo ufw allow 22

Відкрити доступ до вебсервера (порт 80):

sudo ufw allow 80

Відкрити HTTPS (порт 443):

sudo ufw allow 443

Закрити доступ до непотрібного порту (наприклад, 8080):

sudo ufw deny 8080

Видалити правило:

Якщо ви раптом передумали, видаліть правило за номером, вказаним командою sudo ufw status numbered. Наприклад:

sudo ufw delete 1

Перевірка та тестування

Щоб переконатись, що все працює як треба, можна ще раз перевірити статус:

sudo ufw status

Ви побачите список усіх активних правил.


2. IPTABLES: більше контролю, більше можливостей

Що таке iptables?

Якщо UFW — це "прості двері з замком", то iptables — це "розумний охоронець", який дозволяє налаштувати взагалі все. Він надає повний контроль над трафіком, включаючи маршрутизацію, фільтрацію за різними критеріями та навіть можливість модифікувати пакети.

Основні поняття iptables

  1. Таблиці — це набори функцій для обробки мережевих пакетів.
    • filter: обробка та фільтрація пакетів (наприклад, дозволити або заблокувати).
    • nat: перетворення адрес/портів (для роутерів, наприклад).
  2. Ланцюжки — це правила, застосовані до пакетів.
    • INPUT: для вхідного трафіку.
    • OUTPUT: для вихідного трафіку.
    • FORWARD: для перенаправленого трафіку.
  3. Цілі (targets) — це дії, виконувані над пакетом.
    • ACCEPT: дозволити пакет.
    • DROP: відкинути пакет.
    • REJECT: відкинути пакет, надіславши сповіщення.

Давайте подивимося, як налаштувати правила iptables.

Перегляд поточних правил

Щоб побачити, які правила вже налаштовані, виконайте:

sudo iptables -L

Додатково можна додати -v або -n для детальної інформації про пакети та IP-адреси.

Створення правил з iptables

Просте правило: дозволити SSH (порт 22):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Заблокувати доступ до порту 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

Обмеження доступу за IP-адресою:

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

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Видалення правил

Щоб видалити правило, потрібно знати його номер. Знайдіть його за допомогою:

sudo iptables -L --line-numbers

А потім видаліть:

sudo iptables -D INPUT <номер_правила>

Збереження правил

Правила iptables стандартно "забуваються" при перезавантаженні системи. Щоб цього уникнути, збережіть їх:

sudo iptables-save > /etc/iptables/rules.v4

Потім правила можна відновити так:

sudo iptables-restore < /etc/iptables/rules.v4

3. UFW проти IPTABLES: що обрати?

UFW і iptables виконують одну і ту ж функцію — захищають ваш сервер. То який інструмент обрати?

  • UFW — це простий інструмент для базового налаштування безпеки. Якщо ви не хочете занурюватися в низькорівневі деталі чи просто хочете швидко налаштувати брандмауер, обирайте UFW.
  • Iptables — це потужний інструмент для більш складного налаштування. Якщо у вас складна інфраструктура (наприклад, NAT, маршрутизація), вам знадобиться iptables.

До речі, UFW насправді працює "поверх" iptables. Він просто генерує iptables-правила за вас. Тож, якщо ви опанували iptables, ви автоматично розумієте внутрішню роботу UFW.


4. Практичні приклади: захист сервера

Приклад 1: захист SSH та веб-сервера з UFW

  1. Переконайтеся, що UFW встановлено та активовано:
sudo ufw enable
  1. Дозвольте доступ по SSH і до веб-сервера:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
  1. Перевірте активні правила:
sudo ufw status

Приклад 2: блокування непотрібного трафіку за допомогою iptables

  1. Дозвольте доступ по SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. Дозвольте веб-трафік:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  1. Заблокуйте все інше:
sudo iptables -A INPUT -j DROP

Сьогодні ви дізналися, як захистити сервер за допомогою UFW та iptables. Обидва інструменти потужні й корисні, просто звикайте до того, що UFW — це ваш "друг на кожен день", а iptables — це "сильний інструмент в руках майстра". Налаштовуйте брандмауер, досліджуйте свої налаштування, і нехай ваш сервер залишиться фортецею, а не проходним двором.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ