Как настроить фаервол с помощью 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 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний