Настройка файрвола UFW в Ubuntu: как открыть порт 22 SSH и включить защиту
Зачем серверу Linux нужен межсетевой экран (Firewall)
Каждый сервер, подключенный к интернету с публичным белым IP-адресом, ежесекундно атакуется автоматическими ботнетами. Хакеры сканируют открытые порты баз данных (3306 MySQL, 5432 Postgres, 6379 Redis) и подбирают пароли. Встроенный в Ubuntu файрвол UFW (Uncomplicated Firewall) — это удобная надстройка над сложной системой iptables/nftables, позволяющая закрыть все лишние порты парой простых команд.
Золотое правило безопасности любого сервера
Закрыть абсолютно все входящие соединения по умолчанию и открыть только минимально необходимые порты (например, SSH для админа и HTTP/HTTPS для посетителей сайта).
Пошаговый регламент безопасной настройки UFW
ВНИМАНИЕ! Строго соблюдайте последовательность шагов. Если включить файрвол до добавления правила SSH, вы мгновенно заблокируете сами себя и потеряете доступ к серверу!
Шаг 1: Проверка текущего статуса файрвола
sudo ufw status verboseПо умолчанию статус обычно Status: inactive (защита выключена).
Шаг 2: Установка базовых правил безопасности
Укажем файрволу блокировать все входящие подключения и разрешать все исходящие запросы от сервера в интернет:
sudo ufw default deny incoming
sudo ufw default allow outgoingШаг 3: ОБЯЗАТЕЛЬНОЕ открытие порта SSH (22)
Разрешим входящие подключения по протоколу SSH:
sudo ufw allow 22/tcp comment 'SSH Port'
или по имени службы:
sudo ufw allow OpenSSH(Если ваш SSH работает на нестандартном порту, например 2222, откройте именно его: sudo ufw allow 2222/tcp).
Шаг 4: Открытие веб-портов (если на сервере есть сайт)
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'Шаг 5: Включение файрвола (ufw enable)
Активируйте защиту:
sudo ufw enableСистема спросит: «Command may disrupt existing ssh connections. Proceed with operation (y|n)?». Введите y и нажмите Enter.
Шаг 6: Проверка списка активных правил
sudo ufw status numberedТиповые ошибки администраторов
- Включение UFW без разрешения SSH: Самая частая катастрофа новичков — ввод команды
ufw enableна чистом сервере. Сессия мгновенно замерзает, доступ блокируется. Спасти сервер в таком случае можно только через панель KVM/VNC у хостинг-провайдера командойufw disable. - Открытие базы данных наружу для всех (ufw allow 3306): Никогда не открывайте порты СУБД для всего мира (0.0.0.0/0). Если нужен доступ к базе с рабочего ПК, разрешайте только конкретный статический IP:
sudo ufw allow from 195.20.10.5 to any port 3306 proto tcp.
Специалисты ITSTM настроят аппаратные и программные межсетевые экраны, гео-блокировку нежелательных стран (GeoIP) и систему предотвращения вторжений CrowdSec / Fail2ban.
Частые вопросы (FAQ)
Как удалить ошибочно созданное правило в UFW?
Посмотрите номера всех правил командой 'sudo ufw status numbered', затем удалите нужное правило по его номеру: 'sudo ufw delete 3'.
Как временно отключить файрвол UFW, если возникли проблемы со связью?
Выполните команду: sudo ufw disable. Все правила сохранятся, но фильтрация трафика будет отключена.
Как заблокировать конкретный вредоносный IP-адрес через UFW?
Используйте команду: sudo ufw insert 1 deny from 198.51.100.25 to any (правило вставится на первое место в списке).
Перезаписывает ли Docker правила UFW?
Да! По умолчанию Docker напрямую модифицирует цепочки iptables в обход UFW, поэтому опубликованные порты (-p 80:80) могут оказаться открытыми миру вопреки запретам UFW. Для защиты используют ufw-docker или привязку портов к 127.0.0.1.