Как настроить фаервол с помощью UFW в Ubuntu
UFW (Uncomplicated Firewall) — это простой интерфейс командной строки для управления брандмауэром iptables
, созданный для упрощения настройки правил сетевой безопасности на системах на базе Ubuntu и Debian.
В этой статье мы рассмотрим, что такое UFW, как его установить, активировать и настроить базовые правила фильтрации входящих и исходящих подключений.
Что такое UFW
UFW расшифровывается как Uncomplicated Firewall, то есть «несложный фаервол». Это обёртка над iptables
, сделанная Canonical (создателями Ubuntu), чтобы упростить управление сетевой безопасностью даже для новичков.
UFW предоставляет простую командную строку, которая позволяет:
- Разрешать или блокировать доступ по IP, порту или протоколу.
- Быстро включать/отключать фаервол.
- Сохранять постоянные правила между перезагрузками.
Установка UFW
Во многих версиях Ubuntu UFW предустановлен по умолчанию. Чтобы убедиться в этом:
sudo ufw status
Если команда не найдена — установите вручную:
sudo apt update
sudo apt install ufw
Включение и выключение фаервола
Чтобы включить UFW:
sudo ufw enable
⚠️ Рекомендуется сначала задать правила, прежде чем активировать фаервол — иначе можно случайно отключить доступ по SSH.
Отключение:
sudo ufw disable
Проверка текущего состояния:
sudo ufw status verbose
Базовые команды и примеры
Разрешить доступ по порту
sudo ufw allow 22 # SSH
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
Можно указать протокол:
sudo ufw allow 53/udp # DNS по UDP
Запретить порт
sudo ufw deny 25 # SMTP
Удалить правило
sudo ufw delete allow 22
Разрешить только определённому IP
sudo ufw allow from 192.168.1.100
С указанием порта:
sudo ufw allow from 192.168.1.100 to any port 22
Если вы хотите разрешить доступ для целой подсети IP-адресов, вы можете использовать CIDR-нотацию для указания маски сети. Например, чтобы разрешить все IP-адреса в диапазоне от 203.0.113.1
до 203.0.113.254
, используйте следующую команду:
sudo ufw allow from 203.0.113.0/24
Применение правил к определённому сетевому интерфейсу
Если вы хотите создать правило брандмауэра, которое будет применяться только к конкретному сетевому интерфейсу, вы можете указать это с помощью конструкции allow in on
, а затем — имя интерфейса.
Прежде чем продолжать, узнайте список доступных интерфейсов на вашем сервере. Для этого выполните команду:
ip addr
Пример вывода:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state ...
...
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
...
Интерфейсы обычно имеют имена вида eth0
, eth1
, enp3s0
и т.д.
Разрешение трафика на внешний интерфейс
Допустим, у вашего сервера есть публичный сетевой интерфейс с именем eth0
, и вы хотите разрешить HTTP-трафик (порт 80) только на нём. Для этого выполните:
sudo ufw allow in on eth0 to any port 80
Теперь ваш сервер сможет принимать HTTP-запросы с публичного интернета только на интерфейсе eth0
.
Разрешение трафика на приватный интерфейс
Если, например, у вас есть база данных MySQL (порт 3306), которая должна принимать соединения только по внутреннему интерфейсу eth1
, используйте следующую команду:
sudo ufw allow in on eth1 to any port 3306
Это позволит другим серверам во внутренней сети подключаться к вашей базе данных по интерфейсу eth1
, при этом исключая доступ извне.
Установка политик по умолчанию
Рекомендуется сначала запретить всё входящее, разрешив только нужное:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Логирование
Включить логирование:
sudo ufw logging on
Логи будут в /var/log/ufw.log
.
Проверка правил
sudo ufw status numbered
Пример вывода:
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW Anywhere
[ 2] 80 ALLOW Anywhere
[ 3] 443 ALLOW Anywhere
Сброс всех настроек
sudo ufw reset
Можно ли использовать UFW на сервере с Docker?
Да, но есть нюансы: Docker может изменять iptables
, игнорируя правила UFW. Чтобы избежать конфликтов, потребуется дополнительная настройка. Рекомендуется использовать docker-compose
с iptables: false
и управлять правилами вручную.
Заключение
UFW — это отличное решение для базовой настройки фаервола в Ubuntu. Он интуитивно понятен, легко устанавливается и обеспечивает достаточную гибкость для большинства задач. С его помощью можно эффективно ограничить доступ к серверу и защитить систему от нежелательных подключений. Даже если вы не специалист по безопасности, использование UFW поможет сделать вашу систему заметно безопаснее.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний