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 — это "мощный инструмент в руках мастера". Настраивайте брандмауэр, изучайте свои настройки, и пусть ваш сервер останется крепостью, а не проходным двором.

1
Задача
Docker SELF, 5 уровень, 1 лекция
Недоступна
Установка и базовая настройка UFW
Установка и базовая настройка UFW
1
Задача
Docker SELF, 5 уровень, 1 лекция
Недоступна
Разрешение и блокировка портов в UFW
Разрешение и блокировка портов в UFW
1
Задача
Docker SELF, 5 уровень, 1 лекция
Недоступна
Настройка правил безопасности с iptables
Настройка правил безопасности с iptables
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 64
26 сентября 2025
Повтор лекции про UFW не только из прошлой лекции - но и в этой лекции она повторяется ДВАЖДЫ.

# Разрешение входящих соединений от localhost (для корректной работы системы)
iptables -A INPUT -i lo -j ACCEPT

# Разрешение входящих соединений для уже установленных соединений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Этого нет в лекции