Введение
UFW (Uncomplicated Firewall) — это удобная надстройка над стандартным iptables, предназначенная для упрощения управления сетевыми правилами в операционных системах семейства Linux, особенно в Ubuntu. Благодаря интуитивно понятному синтаксису UFW позволяет быстро настроить базовую защиту сервера или рабочей станции, не углубляясь в сложные цепочки iptables. В этой статье мы подробно разберём основные команды, приведём практические примеры и объясним, как работать с правилами для разных интерфейсов, протоколов и IP-адресов.
Полный доступ на определённом интерфейсе
Иногда требуется разрешить весь трафик (как входящий, так и исходящий) на конкретном сетевом интерфейсе, например, на виртуальном мосте vmbr1 в среде Proxmox или на интерфейсе Docker. Для этого используются следующие команды:
Разрешить весь входящий трафик на интерфейсе vmbr1
# ufw allow in on vmbr1 to any
Разрешить весь исходящий трафик на интерфейсе vmbr1
# ufw allow out on vmbr1 to any
Пояснение:
— in — направление «входящий» (трафик, приходящий на интерфейс).
— out — направление «исходящий» (трафик, уходящий с интерфейса).
— on vmbr1 — указывает, к какому интерфейсу применяется правило.
— to any — означает «на любой адрес назначения».
Такие правила удобны, когда вы полностью доверяете сети, подключённой к данному интерфейсу (например, внутренняя виртуальная сеть). Однако помните: открытие полного доступа снижает уровень безопасности, поэтому используйте эту возможность только при необходимости.
Открываем доступ по определённому порту TCP
Самый частый сценарий — разрешить подключение к серверу по SSH (порт 22). Для этого достаточно указать номер порта:
# ufw allow 22
UFW автоматически понимает, что речь идёт о TCP-порте (по умолчанию для большинства служб). Если нужно явно указать протокол, можно добавить /tcp:
# ufw allow 22/tcp
Пример:
Допустим, вы хотите открыть веб-сервер на портах 80 и 443:
# ufw allow 80/tcp
# ufw allow 443/tcp
После этого можно проверить статус командой ufw status verbose.

Обратите внимание, что Firewall отключен.
Активация UFW
После того как вы добавили все необходимые правила, необходимо включить сам файрвол. Это делается командой:
# ufw enable
Важно: Перед активацией убедитесь, что у вас есть разрешающее правило для SSH (или другого способа удалённого доступа), иначе вы рискуете потерять соединение с сервером. Если вы работаете по SSH, сначала выполните ufw allow 22, а только потом sudo ufw enable. После включения UFW запускается автоматически при загрузке системы.
Показать текущие настройки
Чтобы увидеть, какие правила активны, используется команда:
# ufw status verbose
Вывод покажет статус (active/inactive), политики по умолчанию (обычно deny (incoming), allow (outgoing)) и список правил с подробностями. Например:
# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
Разрешаем подключение к порту с определённого IP-адреса
Часто требуется ограничить доступ к критичным службам (например, к базе данных PostgreSQL на порту 5432) только с доверенных IP-адресов. Для этого используется конструкция:
# ufw allow from 37.194.5.244 to any port 5432
Разбор команды:
— from 37.194.5.244 — источник (один IP или подсеть, например 192.168.1.0/24).
— to any — назначение (можно заменить на конкретный IP сервера).
— port 5432 — порт назначения.
Если нужно разрешить только TCP, добавьте /tcp:
# ufw allow from 37.194.5.244 to any port 5432/tcp
Пример:
Разрешить SSH только с IP офиса:
# ufw allow from 192.168.0.1/24 to any port 22
Открываем доступ по определённому порту UDP
Некоторые протоколы (например, L2TP/IPsec для VPN, DNS, DHCP) работают поверх UDP. Чтобы открыть порт для UDP, укажите протокол явно:
# ufw allow 1701/udp
Пояснение:
Порт 1701 используется протоколом L2TP. Если вы настраиваете VPN-сервер, может потребоваться открыть также порты 500/udp и 4500/udp для IPsec.
Разрешаем Forwarding на интерфейсе
UFW может управлять не только входящим и исходящим трафиком на самом хосте, но и маршрутизируемым трафиком (forwarding). Это необходимо, когда сервер выступает шлюзом или маршрутизатором, например, для VPN-подключений. Команда:
# ufw route allow in on ppp0 out on ens3
Что она делает:
— route allow — разрешает маршрутизацию (forwarding) для данного трафика.
— in on ppp0 — входящий интерфейс (например, PPP-интерфейс VPN-клиента).
— out on ens3 — исходящий интерфейс (например, внешний Ethernet-интерфейс).
Таким образом, трафик, пришедший от VPN-клиента на ppp0, будет перенаправлен наружу через ens3. Не забудьте также включить IP-форвардинг в ядре (net.ipv4.ip_forward=1).
Разрешить весь входящий трафик с определенного IP-адреса
Еще один довольно популярный сценарий когда мы разрешаем весь трафик с определенного IP-адреса.
# ufw allow from 192.168.1.50
Удаление существующего правила
Иногда правила нужно удалять. Самый безопасный способ — сначала вывести список правил с номерами, а затем удалить по номеру.
# ufw status numbered
Пример вывода:
To Action From
-- ------ ----
[1] 22/tcp ALLOW IN Anywhere
[2] 80/tcp ALLOW IN Anywhere
[3] 443/tcp ALLOW IN Anywhere
[4] 5432/tcp ALLOW IN 37.194.5.244
[5] 22/tcp (v6) ALLOW IN Anywhere (v6)
[6] 80/tcp (v6) ALLOW IN Anywhere (v6)
[7] 443/tcp (v6) ALLOW IN Anywhere (v6)
Чтобы удалить правило номер 4 (доступ к порту 5432 с IP 37.194.5.244), выполните:
# ufw delete 4
Система запросит подтверждение:
Deleting:
allow from 37.194.5.244 to any port 5432
Proceed with operation (y|n)? y
Rule deleted
Важно: Нумерация правил может меняться после удаления, поэтому перед каждым удалением лучше заново запрашивать status numbered.
Заключение
UFW — мощный, но простой инструмент для настройки сетевой безопасности в Ubuntu. Мы рассмотрели основные команды: открытие портов, привязку к интерфейсам, фильтрацию по IP, работу с UDP и forwarding, а также удаление правил. Не забывайте регулярно проверять логи UFW (/var/log/ufw.log) и обновлять правила по мере изменения инфраструктуры.




