Как настроить UFW на Ubuntu: пошаговое руководство
Полное руководство по настройке Uncomplicated Firewall для безопасной работы сервера
Введение
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 sshUFW автоматически распознает сервис 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 sshUFW будет блокировать 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. Регулярно проверяйте правила и логи, чтобы поддерживать безопасность на должном уровне.
Читайте также
Комментарии
Комментарии доступны только зарегистрированным пользователям. Войти
- Пока нет комментариев. Будьте первым.



