Брандмауэр — это ваш цифровой пограничник, который решает, какой сетевой трафик может попасть в вашу систему, а какой должен остаться снаружи. В мире 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) трафика. Рекомендуемая конфигурация:
sudo ufw default deny incoming— запретить все входящие соединения.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. Там будут указаны номера правил, которые принимали решение о пакете.