sadrix logoSadriX
Минцифры готовит обязательную регистрацию IMEI смартфонов, купленных за границей
Гайды

Как настроить UFW на Ubuntu: пошаговое руководство

Полное руководство по настройке Uncomplicated Firewall для безопасной работы сервера

08 115 просмотров4 мин
0
Поделиться:TelegramVK

Введение

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

Требования

  • Сервер или виртуальная машина под управлением Ubuntu (18.04, 20.04, 22.04 или новее).

  • Доступ по SSH с правами sudo.

  • Базовые навыки работы с командной строкой.

  • Рекомендуется заранее убедиться, что SSH-порт открыт, чтобы не потерять доступ.

Шаг 1: Проверка статуса UFW

Перед настройкой узнайте, активен ли файрвол и какие правила уже применяются. Выполните:

sudo ufw status verbose

Если UFW отключён, вывод будет содержать «Status: inactive». Если активен — вы увидите список правил. На свежей системе UFW обычно выключен.

Шаг 2: Установка UFW (если отсутствует)

В большинстве сборок Ubuntu UFW уже установлен. Проверить можно командой:

sudo apt list --installed | grep ufw

Если пакета нет, установите его:

sudo apt update
sudo apt install ufw

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

Безопасная конфигурация начинается с запрета всего входящего трафика и разрешения исходящего. Установите политики:

sudo ufw default deny incoming
sudo ufw default allow outgoing

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

Шаг 4: Разрешение SSH-подключений

Критически важно не заблокировать себя. Если вы используете стандартный порт 22, выполните:

sudo ufw allow ssh

UFW автоматически распознает сервис SSH и откроет порт 22. Если SSH работает на другом порту (например, 2222), укажите его явно:

sudo ufw allow 2222/tcp

Шаг 5: Включение UFW

Теперь можно активировать файрвол:

sudo ufw enable

Система предупредит о возможном разрыве SSH-соединения. Если вы уверены, что SSH разрешён, подтвердите ввод (y). UFW запустится и будет автоматически стартовать при загрузке.

Шаг 6: Открытие портов для веб-сервера

Если на сервере планируется разместить сайт, откройте порты 80 (HTTP) и 443 (HTTPS). UFW знает соответствующие профили:

sudo ufw allow http
sudo ufw allow https

Или через номера портов:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Шаг 7: Разрешение доступа к конкретным сервисам

UFW содержит профили приложений. Посмотреть доступные можно командой:

sudo ufw app list

Например, для веб-сервера Nginx:

sudo ufw allow 'Nginx Full'

Это откроет и 80, и 443 порты. Для MySQL:

sudo ufw allow mysql

Шаг 8: Ограничение доступа по IP-адресу

Чтобы разрешить подключение только с определённого адреса (например, для админ-панели), используйте:

sudo ufw allow from 203.0.113.5 to any port 22

Эта команда разрешает SSH только с IP 203.0.113.5. Для диапазона подсетей:

sudo ufw allow from 192.168.1.0/24 to any port 3306

Шаг 9: Блокировка нежелательных подключений

Для запрета доступа с конкретного IP или подсети:

sudo ufw deny from 198.51.100.10

Или заблокировать порт для всех:

sudo ufw deny 25/tcp

Помните: правила deny имеют приоритет над allow, если указаны раньше? На самом деле UFW обрабатывает правила в порядке добавления, но политика по умолчанию (deny incoming) уже блокирует всё, кроме разрешённого.

Шаг 10: Ограничение частоты подключений (rate limiting)

Для защиты от брутфорса SSH используйте:

sudo ufw limit ssh

UFW будет блокировать IP, который пытается установить более 6 соединений за 30 секунд. Это полезная мера для публичных серверов.

Шаг 11: Удаление правил

Если правило добавлено ошибочно, его можно удалить. Сначала посмотрите номера правил:

sudo ufw status numbered

Затем удалите по номеру (например, правило 3):

sudo ufw delete 3

Или удалите по точному синтаксису:

sudo ufw delete allow 80/tcp

Шаг 12: Просмотр и сброс правил

Для детального просмотра активных правил:

sudo ufw status verbose

Чтобы временно отключить файрвол:

sudo ufw disable

Полный сброс всех правил (осторожно, это удалит все настройки):

sudo ufw reset

После сброса UFW будет отключён, и все правила вернутся к заводским.

Шаг 13: Логирование и мониторинг

Включите логирование для отслеживания заблокированных пакетов:

sudo ufw logging on

Уровень логирования можно изменить (low, medium, high, full). Логи пишутся в /var/log/ufw.log (или /var/log/syslog). Просмотр:

sudo tail -f /var/log/ufw.log

Шаг 14: Проверка конфигурации

Убедитесь, что все необходимые порты открыты, а лишние закрыты. Используйте sudo ufw status numbered и сравните с ожидаемым списком. Также можно проверить доступность портов извне с помощью nc или онлайн-сервисов.

Типичные ошибки

  • Блокировка SSH до включения UFW. Всегда сначала разрешайте SSH, потом включайте файрвол.

  • Использование `ufw allow` без указания порта/сервиса. Команда выдаст ошибку, но лучше сразу указывать ssh или 22/tcp.

  • Забыли про IPv6. UFW по умолчанию управляет и IPv6, если в /etc/default/ufw параметр IPV6=yes. Проверьте это.

  • Слишком широкие правила. Избегайте allow from any для чувствительных сервисов.

  • Игнорирование порядка правил. Хотя UFW использует политики по умолчанию, явные deny могут перекрывать allow, если добавлены раньше.

  • Отсутствие резервного доступа. Имейте консольный доступ (например, через панель хостинга) на случай блокировки SSH.

FAQ

В: Можно ли использовать UFW вместе с Docker? О: Да, но Docker управляет iptables напрямую и может обходить правила UFW. Для интеграции настройте iptables в Docker или используйте плагины.

В: Как открыть порт только для localhost? О: Используйте sudo ufw allow from 127.0.0.1 to any port 5432.

В: Что делать, если после включения UFW пропал доступ к сайту? О: Проверьте, открыты ли порты 80 и 443. Подключитесь по SSH (если разрешён) и добавьте нужные правила.

В: Влияет ли UFW на производительность? О: Нагрузка минимальна, так как UFW — надстройка над iptables, использующая ядерную фильтрацию.

В: Как обновить правила без разрыва соединений? О: Добавляйте и удаляйте правила по одному, проверяя доступ после каждого изменения.

Итог

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

Читайте также

Комментарии

Комментарии доступны только зарегистрированным пользователям. Войти

  • Пока нет комментариев. Будьте первым.