UFW (Uncomplicated Firewall) задуман как упрощённый интерфейс к iptables — системе фильтрации сетевого трафика в Linux. Показываем, как быстро настроить брандмауэр через UFW — без погружения в iptables.
Для управления подключениями в Ubuntu 24.04 LTS по умолчанию установлен UFW — Uncomplicated Firewall. Это надстройка над iptables, позволяющая проще управлять правилами сетевого трафика. Вместо длинных и сложных команд UFW позволяет работать с правилами в простом формате, при этом его достаточно для настройки SSH, веб-серверов, почтовых служб и других распространённых сервисов. Если вы используете VPS, UFW поможет быстро ограничить доступ к системе и оставить открытыми только нужные порты. В этой статье покажем, как правильно включить UFW, настроить разрешённые подключения и закрыть порты, которые не используются.
Зачем нужен UFW и как он работает в Ubuntu 24.04 LTS
UFW (Uncomplicated Firewall) — это утилита, которая делает работу с брандмауэром значительно проще. В отличие от iptables, где в правилах может быть сложно разобраться без специальной подготовки, UFW предлагает более читаемый синтаксис. В Ubuntu UFW поставляется как штатное средство управления сетевым трафиком, и чаще всего предустановлен в системе, но не всегда активирован по умолчанию.
Без активированного файрвола Ubuntu 24.04 принимает все входящие подключения, если не настроены иные ограничения. Это означает, что система примет любое входящее подключение, если не задано иное правило в iptables. Но в реальности это создаёт лишнюю уязвимость для сервера. С UFW можно задать политику по умолчанию: «запрещать всё», кроме явно разрешённого.
В отличие от сторонних решений, например Firewalld (который чаще встречается в RHEL-подобных дистрибутивах), UFW максимально вписан в экосистему Ubuntu. Он интегрирован с systemd, выводит понятные журналы работы и не требует пересборки ядра или установки дополнительных модулей.
При активации UFW внедряет собственные правила в iptables и отслеживает их применение и порядок срабатывания. Всё управление происходит через команду ufw, где можно установить политики по умолчанию, разрешить доступ к нужным портам и просматривать активные правила.
Проверка актуальности системы и установка UFW
Убедитесь, что система находится в актуальном состоянии. Даже если вы запускаете настройку на свежем сервере, установленном с образа Ubuntu 24.04, всё равно не пропускайте этот этап.
Обновление выполняется в два шага. Сначала нужно синхронизировать список доступных пакетов из репозиториев:
sudo apt update
Эта команда подтягивает свежую информацию о версиях пакетов. После этого запускаем установку всех доступных обновлений:
sudo apt upgrade
Если обновлялось ядро или системные библиотеки, то после обновления рекомендуем перезагрузить сервер для применения обновлений ядра и системных библиотек. Это делается командой sudo reboot, но запускать её стоит только если вы находитесь в локальной сессии или уверены, что сервер после перезагрузки нормально поднимется.
Чтобы установить UFW, используйте следующую команду:
sudo apt install ufw
UFW после установки не включается автоматически. Мы включим его чуть позже, после настройки всех необходимых правил.
Настройка и включение UFW
Прежде чем включать UFW, зададим правила, по которым он будет работать. Это важно: если включить UFW без правил, можно легко отрезать себя от сервера, особенно если доступ осуществляется по SSH.
Сначала разрешим подключение по SSH. В Ubuntu 24.04 по умолчанию используется порт 22, и если вы не меняли его в конфигурации OpenSSH, добавьте правило:
sudo ufw allow ssh
Если вы настроили нестандартный порт, например 2222, то нужно разрешить его явно:
sudo ufw allow 2222/tcp
Затем разрешите веб-трафик. Если на сервере работает только HTTP, достаточно открыть порт 80:
sudo ufw allow http
Если есть поддержка HTTPS, то добавляем и его:
sudo ufw allow https
Эти правила открывают доступ для пользователей к вашему сайту или API через стандартные порты 80 и 443. Если вы используете дополнительные сервисы — например, почтовый сервер или какой-то внутренний интерфейс на другом порту, их тоже нужно добавить вручную. Пример для почтового сервера, который слушает порт 587:
sudo ufw allow 587/tcp
Когда все нужные порты добавлены, можно включать UFW. Делается это одной командой:
sudo ufw enable
Система запросит подтверждение, особенно если вы работаете по SSH — это защищает от случайной потери доступа.
Если вы в процессе настройки допустили ошибку, любое правило можно удалить:
sudo ufw delete allow 2222/tcp
Если нужно сбросить все правила до нуля:
sudo ufw reset
Проверка настройки UFW и практические советы по его использованию
После включения и настройки убедимся, что файрвол действительно работает, фильтрует трафик и не блокирует доступ к нужным сервисам. Первый шаг — это посмотреть текущий статус:
sudo ufw status verbose
Вывод покажет, активен ли UFW, какие правила применены и в каком порядке. Режим verbose дополнительно укажет политику по умолчанию для входящих и исходящих соединений. Убедитесь, что разрешены только необходимые порты, а всё остальное блокируется.
Следом стоит проверить, действительно ли правила работают. Один из надёжных способов — подключиться к серверу извне с другого IP (например, через VPN или с другого устройства) и попробовать открыть неразрешённый порт. При правильно настроенном UFW соединение не должно устанавливаться. А попытка зайти по SSH или открыть сайт должна пройти без проблем, если соответствующие порты заранее открыты в UFW.
Ещё один полезный способ — посмотреть системный журнал. По умолчанию UFW не ведёт отдельный лог-файл, но его события попадают в системные логи, которые можно отфильтровать так:
sudo journalctl -u ufw
Здесь можно найти информацию об активации файрвола и применённых правилах. Если вы включили логирование (например, через sudo ufw logging on), то события блокировки начнут попадать и в /var/log/ufw.log. Это полезно, если вы хотите понять, какие подключения регулярно блокируются и откуда идут попытки доступа.
Если вы уже настроили аутентификацию по ключам и отключили вход по паролю, оставлять порт 22 открытым для всех — лишний риск. Ограничьте доступ по IP или подсети:
sudo ufw allow from 203.0.113.42 to any port 22 proto tcp
Если IP-адрес динамический или вы подключаетесь из разных мест, лучше использовать VPN и разрешать SSH-доступ только с внутренней подсети. Это снижает вероятность перебора почти до нуля, потому что злоумышленник не сможет даже увидеть открытый порт снаружи.
Читайте в блоге:
- Как настроить SSH-доступ в Ubuntu 24.04 LTS: пошаговое руководство
- Защита Mosquitto на Ubuntu 24.04: настройка аутентификации и шифрования
- Как автоматизировать задачи на сервере через Ansible