UFW в Ubuntu: Полное руководство по настройке вашего брандмауэра для надёжной защиты

UFW в Ubuntu: Полное руководство по настройке вашего брандмауэра для надёжной защиты

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

Что такое UFW и почему он вам нужен?

UFW — это интерфейс командной строки, созданный для упрощения управления iptables, сложным, но невероятно мощным брандмауэром Linux. Если iptables можно сравнить с программированием на ассемблере, то UFW — это Python: интуитивно понятный, лаконичный и эффективный. Даже если ваш сервер или рабочий стол "просто стоит дома", брандмауэр — это обязательный слой защиты от сканирования портов, попыток подбора паролей и других фоновых угол из интернета.

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

Установка и базовая настройка

В большинстве современных версий Ubuntu UFW уже предустановлен. Проверить это можно командой which ufw. Если пакета нет, установите его: sudo apt update && sudo apt install ufw.

Шаг 1: Настройка политик по умолчанию

Первым делом задаём поведение по умолчанию для входящего (incoming) и исходящего (outgoing) трафика. Рекомендуемая конфигурация:

  1. sudo ufw default deny incoming — запретить все входящие соединения.
  2. sudo ufw default allow outgoing — разрешить все исходящие соединения (чтобы система могла обновляться и работать в сети).

Это стратегия "запретить всё, затем разрешить нужное" — золотой стандарт безопасности.

Шаг 2: Разрешение необходимых служб

Теперь нужно "прорубить окна" для нужных сервисов. UFW позволяет использовать имена служб из файла /etc/services.

  • Для SSH (удалённого управления): sudo ufw allow ssh или sudo ufw allow 22/tcp. Сделайте это ДО активации, иначе можете потерять доступ к серверу!
  • Для веб-сервера (HTTP/HTTPS): sudo ufw allow http, sudo ufw allow https.
  • Для конкретного порта с указанием протокола: sudo ufw allow 8000/tcp.
  • Для диапазона портов: sudo ufw allow 6000:6010/tcp.

Совет: Всегда используйте самый строгий rule. Если службе нужен только TCP, не открывайте и UDP. Указывайте IP-адрес источника, если он известен: sudo ufw allow from 192.168.1.100 to any port 22.

Шаг 3: Активация и проверка

После настройки правил активируем брандмауэр: sudo ufw enable. Проверить статус можно командой sudo ufw status verbose. Она покажет политики по умолчанию и все активные правила.

Продвинутое управление

Работа с приложениями

UFW поддерживает профили приложений в /etc/ufw/applications.d/. Посмотреть список: sudo ufw app list. Можно разрешать доступ целым профилям: sudo ufw allow 'Nginx Full' (откроет порты 80 и 443).

Блокировка IP-адресов и подсетей

Чтобы заблокировать атакующий IP: sudo ufw deny from 123.456.789.123. Для целой подсети: sudo ufw deny from 123.456.789.0/24.

Нумерация и удаление правил

Просмотреть правила с номерами: sudo ufw status numbered. Удалить правило по номеру: sudo ufw delete 2. Также можно удалить, повторив команду allow с delete: sudo ufw delete allow ssh.

Логирование

Включите логи для отладки: sudo ufw logging on. Логи пишутся в /var/log/ufw.log. Уровень логгирования можно настроить (от low до full).

Откат и отключение

Если что-то пошло не так, можно отключить UFW: sudo ufw disable. Это сохранит все правила для следующего включения. Сбросить все правила к заводским настройкам: sudo ufw reset (будьте осторожны!).

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

FAQ: Часто задаваемые вопросы

Как разрешить подключение только с определённого IP?

Используйте команду: sudo ufw allow from 192.168.1.50 to any port 22. Это разрешит SSH-подключения только с указанного адреса.

Почему после настройки не работает интернет в браузере?

Вероятно, вы запретили исходящий трафик (default deny outgoing). Разрешите его: sudo ufw default allow outgoing. Браузеру нужны исходящие соединения на порты 80/443 для DNS и HTTP/HTTPS.

Как открыть порт для конкретного сетевого интерфейса?

Используйте синтаксис: sudo ufw allow in on eth0 to any port 9090. Это полезно для внутренних служб, которые не должны быть доступны извне.

Можно ли использовать UFW вместе с Docker?

Да, но осторожно. Docker сам управляет iptables и может обходить UFW. Рекомендуется настраивать правила безопасности внутри Docker-контейнеров или использовать Docker-сети с изоляцией.

Как посмотреть, какие правила блокируют соединение?

Включите логирование (sudo ufw logging medium) и проверьте файл /var/log/ufw.log. Там будут указаны номера правил, которые принимали решение о пакете.