Установка и базовая настройка фаервола UFW на Ubuntu

В данной инструкции рассматривается установка, настройка и проверка фаервола UFW (Uncomplicated Firewall) на сервере под управлением Ubuntu. Материал ориентирован на начинающих системных администраторов, которым важно быстро и безопасно ограничить сетевой доступ к серверу без глубокого погружения в iptables.

UFW (Uncomplicated Firewall) — это простой и понятный способ защитить сервер от лишнего сетевого доступа. По сути, это удобная надстройка над iptables, которая позволяет управлять фаерволом без сложных правил и длинных конфигураций.

Как только сервер появляется в сети, он практически сразу начинает автоматически сканироваться ботами и скриптами, которые ищут открытые порты, стандартные сервисы и известные уязвимости. Если на сервере открыт лишний порт или запущен сервис без защиты, он может стать точкой входа для атаки.

UFW позволяет заранее закрыть всё ненужное и оставить доступ только к тем сервисам, которые действительно должны быть доступны извне.

С помощью UFW вы можете несколькими командами:

  • закрыть все входящие подключения;
  • разрешить доступ только к нужным портам и сервисам (например, SSH или веб-серверу);
  • ограничить доступ по конкретным IP-адресам;
  • быстро проверить, какие правила сейчас действуют.

Эта инструкция рассчитана на Ubuntu 20.04 / 22.04 / 24.04 и может использоваться как обязательный базовый шаг при первичной настройке сервера , прежде чем вы начнёте разворачивать сервисы и приложения.

1. Проверка наличия и установка UFW

На новых серверах Ubuntu UFW часто уже присутствует, но по умолчанию отключён — это сделано специально, чтобы администратор добавил сначала необходимые правила.

Проверяем, установлен ли UFW

ufw --version

Если UFW установлен, то вы увидите версию (например, ufw 0.36.x). В этом случае переходим к следующему шагу. Если команда не найдена (command not found) — значит, UFW нужно установить.

Устанавливаем UFW

sudo apt install ufw

Проверяем текущий статус UFW

sudo ufw status

На этом этапе вы должны увидеть: Status: inactive. Это нормальное и ожидаемое поведение.

В следующих шагах мы как раз займёмся настройкой правил, и только после этого безопасно включим фаервол.

2. Основные настройки UFW

На этом шаге мы зададим базовые правила работы фаервола: что разрешено, что запрещено и откуда можно подключаться к серверу.

⚠️ Важно: пока что мы не включаем UFW, а только подготавливаем правила. Это позволяет спокойно настроить доступ и не потерять соединение по SSH.

Разрешаем доступ по SSH

Стандартный вариант (порт 22):

sudo ufw allow ssh

или эквивалентно:

sudo ufw allow 22

Если SSH у вас работает на нестандартном порту (например, 2222):

sudo ufw allow 2222

Таким образом мы явно разрешаем себе доступ к серверу после включения UFW.

Работа с отдельными портами

Здесь мы управляем доступом к конкретным портам.

Пример: если нужно разрешить порты:

sudo ufw allow 80
sudo ufw allow 443

Пример: если нужно запретить порт:

sudo ufw deny 3306

Пример: если нужно указать протокол:

sudo ufw allow 53/udp
sudo ufw allow 5432/tcp

Работа с диапазонами портов

Иногда сервисы используют несколько портов подряд. В таких случаях можно открыть диапазон.

Пример: если нужно разрешить диапазон портов:

sudo ufw allow 10000:10100/tcp

⚠️ При указании диапазона портов обязательно нужно указывать протокол tcp или udp.

Работа с IP-адресами

Вы можете разрешить или запретить доступ не всем, а только конкретным IP.

Пример: разрешить доступ с одного IP:

sudo ufw allow from 203.0.113.10

Пример: разрешить доступ с IP к конкретному порту:

sudo ufw allow from 203.0.113.10 to any port 22

Пример: запретить доступ с IP:

sudo ufw deny from 198.51.100.25

Важно: если вы просто добавили правило allow from IP, это не означает, что доступ с других IP будет запрещён, если порт уже разрешён для всех.

Чтобы разрешить доступ только с одного IP-адреса, необходимо:

Запретить доступ к порту для всех:

sudo ufw deny 22

Затем явно разрешить доступ только с нужного IP:

sudo ufw allow from 203.0.113.10 to any port 22

Пример для любого другого сервиса:

sudo ufw deny 8080
sudo ufw allow from 203.0.113.10 to any port 8080

Такой подход обеспечивает повышенный уровень безопасности, но требует особой осторожности.

⚠️ Не используйте этот метод, если:

  • у вас динамический IP-адрес;
  • вы подключаетесь к серверу из разных сетей;
  • у вас нет доступа к консоли провайдера (VNC / KVM / Rescue Mode).

В случае смены IP-адреса вы полностью потеряете доступ к серверу по сети.

Работа с диапазонами IP-адресов

Пример: разрешить доступ для всей подсети:

sudo ufw allow from 203.0.113.0/24

Пример: разрешить доступ к конкретному порту:

sudo ufw allow from 203.0.113.0/24 to any port 22

Удаление правил

Чтобы удалить правило, сначала посмотрим список с номерами (обратите внимание: на данном этапе UFW ещё не включён, поэтому фактически применять удаление правил можно только после шага с включением фаервола):

sudo ufw status numbered

Удаление правила по номеру:

sudo ufw delete 2

UFW запросит подтверждение — это защита от случайных ошибок.

3. Включение фаервола UFW

На этом шаге мы включаем UFW и переводим все ранее добавленные правила в активное состояние. Если предыдущие шаги выполнены корректно (особенно разрешён SSH), включение фаервола пройдёт безопасно и без потери доступа к серверу.

Включаем UFW

Для активации фаервола выполните команду:

sudo ufw enable

При включении вы увидите предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Это стандартное уведомление. Оно означает, что при неправильной настройке вы могли бы потерять SSH-доступ. Если правило для SSH уже добавлено, тогда можно смело вводить y и нажимать Enter.

Проверяем, что фаервол активен

sudo ufw status

Ожидаемый результат (пример):

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
3306                       DENY        Anywhere
53/udp                     ALLOW       Anywhere
5432/tcp                   ALLOW       Anywhere
10000:10100/tcp            ALLOW       Anywhere
1000:1100/tcp              ALLOW       Anywhere
Anywhere                   ALLOW       203.0.113.10
22                         ALLOW       203.0.113.10
Anywhere                   DENY        198.51.100.25

Как применяются изменения правил UFW

После включения UFW все добавленные правила начинают действовать сразу. Когда вы добавляете или удаляете правила с помощью команд ufw allow, ufw deny или ufw delete, изменения применяются автоматически, отдельный перезапуск фаервола в большинстве случаев не требуется.

При этом существует команда:

sudo ufw reload

ufw reload принудительно перечитывает конфигурацию и повторно применяет все текущие правила. Её удобно использовать:

  • после серии изменений правил;
  • для уверенности, что конфигурация применена корректно;
  • если вы вносили правки вручную в конфигурационные файлы UFW.

Также перед тем как считать настройку завершённой, рекомендуется:

  • убедиться, что SSH доступен из новой сессии;
  • проверить доступность веб-сервисов (если они используются);
  • убедиться, что закрытые порты не отвечают на подключения. Для этого можно использовать внешние инструменты сканирования портов.

4. Типовые ошибки при работе с UFW и способы их решения

Даже при базовой настройке фаервола могут возникать ситуации, когда сервер становится недоступным или сервисы перестают работать. Ниже перечислены наиболее частые ошибки и способы их устранения.

Потерян доступ по SSH после включения UFW

Причина

SSH-порт не был разрешён до включения фаервола либо используется нестандартный порт, который не был добавлен в правила UFW.

Решение
  • Подключитесь к серверу через консоль провайдера (VNC / KVM / Rescue Mode).
  • Разрешите используемый SSH-порт в UFW.
  • Перечитайте конфигурацию или выполните ufw reload.

На будущее: всегда разрешайте SSH до активации фаервола.

Сервис запущен, но недоступен извне

Причина

Порт сервиса не разрешён в UFW либо доступ к нему ограничен по IP-адресу или подсети.

Решение
  • Проверьте, какой порт и протокол использует сервис.
  • Убедитесь, что в UFW добавлено разрешающее правило.
  • Проверьте наличие ограничений по IP-адресам или подсетям.

Правило добавлено, но подключение всё равно блокируется

Причина

Существует другое правило UFW, которое перекрывает доступ (например, запрет по IP-адресу или подсети).

Решение
  • Просмотрите полный список правил UFW.
  • Убедитесь, что более жёсткие ограничения не применяются выше по логике.
  • Удалите или скорректируйте конфликтующее правило.

Слишком много открытых портов

Причина

Правила добавлялись «на всякий случай» или остались после тестирования.

Решение
  • Просмотрите список разрешённых портов.
  • Удалите всё, что не используется.
  • Оставляйте только те сервисы, которые действительно нужны извне.

Заключение

🏁 Поздравляю! В рамках этой инструкции вы выполнили базовую настройку фаервола UFW на сервере под управлением Ubuntu. Каждый шаг выстраивался последовательно, чтобы защитить сервер от лишнего сетевого доступа и при этом сохранить контроль над подключениями.

  1. Проверка наличия и установка UFW
  2. Основные настройки UFW
  3. Включение фаервола UFW
  4. Типовые ошибки при работе с UFW и способы их решения

Дальнейшая настройка зависит от ваших задач: развёртывание веб-сервисов, баз данных, контейнеров, VPN или других компонентов инфраструктуры. Однако фундамент безопасности уже заложен.

Удачи в дальнейшей работе!

Установка и базовая настройка фаервола UFW на Ubuntu