Установка и базовая настройка фаервола 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. Каждый шаг выстраивался последовательно, чтобы защитить сервер от лишнего сетевого доступа и при этом сохранить контроль над подключениями.
- Проверка наличия и установка UFW
- Основные настройки UFW
- Включение фаервола UFW
- Типовые ошибки при работе с UFW и способы их решения
Дальнейшая настройка зависит от ваших задач: развёртывание веб-сервисов, баз данных, контейнеров, VPN или других компонентов инфраструктуры. Однако фундамент безопасности уже заложен.
Удачи в дальнейшей работе!