Как настроить файрвол в Ubuntu с помощью UFW

Как настроить файрвол в Ubuntu с помощью UFW

Перед вами подробное руководство для серверных админов. В статье объясняется, как с помощью UFW настроить базовый и продвинутый файрвол в Ubuntu, защитить сервер и управлять сетевыми подключениями.

Что такое UFW

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

Несмотря на простоту интерфейса, UFW поддерживает тонкую настройку — фильтрацию по IP, диапазонам портов, протоколам и сетевым интерфейсам. Это делает его подходящим решением не только для домашних серверов и тестовых машин, но и для продакшн-сред с высокими требованиями к безопасности.

Важно

UFW можно использовать как полноценный компонент схемы Zero Trust — когда доступ к сервисам открыт только тем, кому он действительно нужен, и только по тем протоколам, которые явно разрешены.

Использование UFW — разумный первый шаг к построению безопасной инфраструктуры. Особенно если вы работаете с веб-приложениями, базами данных или просто не хотите, чтобы ваш сервер оказался в ботнете. В дальнейшем вы можете надстроить над UFW дополнительные решения — например, fail2ban, WAF или VPN, — но базовая фильтрация на уровне портов и IP уже закроет до 80 % типичных угроз.

Аренда VPS/VDS от ₽449/месяц

Преимущества VPS для VPN в AdminVPS:​

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

Зачем нужен файрвол на сервере

Любой сервер с публичным IP-адресом рано или поздно попадает в зону интереса автоматических сканеров, ботнетов и потенциальных атакующих. Это не вопрос известности проекта — в Интернете работают миллионы скриптов, которые в автоматическом режиме ищут открытые порты, стандартные уязвимости и неправильно настроенные службы. Часто — просто чтобы использовать сервер как промежуточное звено, источник вычислительной мощности или точку входа в инфраструктуру.

Файрвол — это своего рода цифровой «фейс-контроль», который отсекает нежелательные подключения ещё на подступах к системе.

Он позволяет:

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

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

На этом функции файрвола не заканчиваются. В связке с логированием он помогает:

  • отслеживать подозрительную сетевую активность;
  • фиксировать попытки сканирования портов и подключения к закрытым службам;
  • видеть, какие адреса систематически нарушают политику доступа.

И главное: файрвол не требует изменений в архитектуре или переписывания приложения. Он работает на уровне ядра, управляя сетевыми соединениями до того, как они дойдут до веб-сервера, базы данных или интерпретатора. Настроить его можно за 5–10 минут, а эффект для безопасности будет сопоставим с переходом на VPN или двухфакторную аутентификацию.

С практической точки зрения, особенно в российских реалиях, файрвол позволяет дополнительно:

  • экономить трафик (актуально для тарифицируемых соединений);
  • скрыть сервисы от автоматических сканеров;
  • снизить риск попадания в списки скомпрометированных IP-адресов (что может повлиять на доступность сайта).

Важно

Настраивать файрвол стоит до установки и запуска веб-приложений. Это не защита «на всякий случай», а обязательный этап начальной конфигурации любого сервера.

Инструкция по установке и настройке UFW

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

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

Во многих сборках Ubuntu UFW уже предустановлен. Чтобы проверить, установлен ли он, выполните:

sudo ufw status

Если команда не найдена, установите UFW с помощью:

sudo apt update && sudo apt install ufw

Если команда ufw status вернёт сообщение о неизвестной команде, это значит, что UFW отсутствует в системе. Установка через apt позволит добавить утилиту из официальных репозиториев Ubuntu. После этого вы сможете приступить к настройке файрвола и защитить сервер от несанкционированных подключений.

Предварительная настройка и запуск

Перед тем как включить файрвол, обязательно откройте доступ по SSH, иначе вы рискуете потерять подключение к серверу:

sudo ufw allow ssh

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

sudo ufw allow 2222/tcp

Задаём политику по умолчанию:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Включаем файрвол:

sudo ufw enable

Система выдаст предупреждение о возможной потере соединения. Если SSH уже разрешён, можно смело нажимать y.

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

Проверка текущих правил

Просмотр состояния UFW:

sudo ufw status verbose

Список с нумерацией:

sudo ufw status numbered

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

Разрешение популярных служб

UFW распознаёт стандартные имена служб:

sudo ufw allow http       # порт 80
sudo ufw allow https      # порт 443
sudo ufw allow ftp        # порт 21

Либо указываем порты вручную:

sudo ufw allow 3306/tcp   # MySQL
sudo ufw allow 5432/tcp   # PostgreSQL

Разрешение популярных служб необходимо, чтобы обеспечить доступ к нужным сервисам — например, веб-сайту, базе данных или FTP-серверу. UFW упрощает настройку, позволяя использовать понятные имена вместо номеров портов. Это ускоряет конфигурацию и снижает риск ошибок при открытии нужных соединений.

Привязка к IP и подсетям

Разрешение доступа к SSH с конкретного IP:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Разрешение подсети:

sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

Привязка к IP или подсети позволяет ограничить доступ только доверенными адресами, исключив все остальные подключения. Это существенно снижает риск взлома через SSH и другие критичные порты. Такой подход особенно важен для серверов, доступных из Интернета — он добавляет дополнительный уровень защиты поверх стандартных правил.

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

Если необходимо открыть несколько последовательных портов:

sudo ufw allow 3000:3010/tcp

Открытие диапазона портов удобно при работе с приложениями, которые используют несколько соседних портов — например, при тестировании, передаче данных или запуске контейнеров. Это позволяет задать правило одним действием вместо множества отдельных команд, а также упрощает управление доступом и ускоряет настройку сложных сервисов.

Запрет подключений

Блокировка IP:

sudo ufw deny from 203.0.113.100

Блокировка исходящего SMTP:

sudo ufw deny out 25

Запрет подключений позволяет вручную закрыть доступ с подозрительных IP-адресов или ограничить определённый трафик — например, отправку почты через SMTP. Это полезно для борьбы со спам-ботами, ограничений по политике безопасности или временной изоляции. Точные правила блокировки помогают контролировать поведение системы и устранять потенциальные риски до их реализации.

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

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

sudo ufw status numbered
sudo ufw delete 2

Удаление по тексту:

sudo ufw delete allow 443

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

Расширенные настройки: интерфейсы и логи

Ограничение доступа по интерфейсу:

sudo ufw deny in on eth0 from 203.0.113.100

Включение логирования:

sudo ufw logging on
sudo ufw logging high

Просмотр логов:

sudo less /var/log/ufw.log

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

Сброс и отключение

Временное отключение:

sudo ufw disable

Полный сброс:

sudo ufw reset

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

Профили приложений

Многие сервисы добавляют свои профили после установки. Просмотр списка:

sudo ufw app list

Пример:

sudo ufw allow "Nginx Full"

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

Пример настройки для веб-сервера с MySQL

Используйте команды:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp                  # SSH
sudo ufw allow 80,443/tcp              # HTTP/HTTPS
sudo ufw allow from 192.168.0.0/24 to any port 3306
sudo ufw enable

Это минимальная, но эффективная конфигурация UFW для веб-сервера с базой данных MySQL, где:

  • команды default deny incoming и default allow outgoing задают политику по умолчанию: все входящие подключения запрещены, все исходящие — разрешены;
  • allow 22/tcp открывает доступ по SSH, чтобы вы могли управлять сервером удалённо;
  • allow 80,443/tcp разрешает HTTP и HTTPS-трафик для работы веб-приложений;
  • allow from 192.168.0.0/24 to any port 3306 открывает доступ к MySQL только с указанной локальной подсети — это ограничивает подключение к базе данных и защищает её от внешнего доступа;
  • ufw enable активирует файрвол с заданными правилами.

Такая настройка подходит для большинства стандартных сценариев, где веб-сервер и база данных работают на одном VPS или в локальной сети.

Совет от практика

Создайте bash-скрипт с вашими типовыми правилами и храните его в приватном репозитории. Это позволит быстро развернуть защиту на новых VPS или после переустановки системы. Включите логирование и периодически проверяйте журнал: это помогает находить не только угрозы, но и ошибки в собственной конфигурации.

Заключение

UFW — это не просто «удобная обёртка» над iptables, а полноценный инструмент фильтрации сетевого трафика. Он позволяет быстро задать правила доступа, определить приоритеты, контролировать внешние подключения и устранять типичные уязвимости. Даже минимальная настройка — блокировка всего входящего с выборочным разрешением нужных портов — уже существенно укрепляет безопасность сервера. При этом UFW не требует глубоких знаний в администрировании и органично вписывается в рабочий процесс. Добавление правил, их удаление, включение логирования — всё это реализуется одной командой.

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

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях