Firewall (межсетевой экран) — это один из основных инструментов защиты сервера. Он позволяет контролировать входящие и исходящие сетевые подключения, ограничивать доступ к службам и снижать риск несанкционированного доступа к VPS.
Для большинства пользователей Linux наиболее простым решением является UFW (Uncomplicated Firewall), который является удобной надстройкой над iptables.
В данной инструкции рассмотрена установка и настройка UFW на Ubuntu, Debian и других Linux-дистрибутивах.
Что потребуется
Перед началом убедитесь, что у вас есть:
- VPS или выделенный сервер с Linux;
- Root-доступ к серверу;
- SSH-доступ к серверу;
- Доступ к консоли сервера через панель управления провайдера на случай ошибки конфигурации.
Шаг 1. Обновление системы
Обновите систему перед установкой:
apt update && apt upgrade -y
Шаг 2. Установка UFW
На большинстве современных систем UFW уже установлен.
Проверьте наличие UFW:
ufw --version
Если команда не найдена, установите пакет:
apt install ufw -y
Проверьте успешность установки:
ufw --version
Шаг 3. Настройка SSH-доступа
Перед включением Firewall необходимо разрешить доступ по SSH, иначе можно потерять доступ к серверу.
Если используется стандартный SSH-порт 22:
ufw allow 22/tcp
Если SSH работает на другом порту, например 2222:
ufw allow 2222/tcp
Проверьте правило:
ufw status
Шаг 4. Разрешение необходимых служб
HTTP (веб-сайты)
ufw allow 80/tcp
HTTPS (SSL-сайты)
ufw allow 443/tcp
FTP
ufw allow 21/tcp
SMTP
ufw allow 25/tcp
DNS
ufw allow 53
Разрешайте только те порты, которые действительно используются на сервере.
Шаг 5. Настройка политик по умолчанию
Запретите все входящие подключения:
ufw default deny incoming
Разрешите исходящие подключения:
ufw default allow outgoing
Проверить настройки:
ufw status verbose
Шаг 6. Включение Firewall
Активируйте UFW:
ufw enable
Подтвердите действие:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Введите:
y
После этого Firewall начнет работать.
Шаг 7. Проверка правил
Посмотреть все активные правила:
ufw status numbered
Пример:
Status: active
[1] 22/tcp ALLOW Anywhere
[2] 80/tcp ALLOW Anywhere
[3] 443/tcp ALLOW Anywhere
Шаг 8. Удаление правила
Чтобы удалить правило:
ufw delete allow 21/tcp
Или по номеру:
ufw delete 3
Шаг 9. Блокировка IP-адреса
Для блокировки конкретного IP:
ufw deny from 192.168.1.100
Для блокировки подсети:
ufw deny from 192.168.1.0/24
Шаг 10. Разрешение доступа только с определённого IP
Например, разрешить SSH только с одного адреса:
ufw allow from 192.168.1.100 to any port 22 proto tcp
Это значительно повышает безопасность сервера.
Шаг 11. Отключение Firewall
Если необходимо временно отключить Firewall:
ufw disable
Для повторного включения:
ufw enable
Полезные команды
Проверка статуса:
ufw status
Подробная информация:
ufw status verbose
Просмотр всех правил:
ufw status numbered
Перезагрузка правил:
ufw reload
Сброс всех настроек:
ufw reset
Рекомендуемая конфигурация для веб-сервера
Для большинства сайтов достаточно открыть:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
После чего включить защиту:
ufw enable
Частые ошибки
Потерян доступ по SSH
Чаще всего причина в том, что SSH-порт не был разрешен до включения Firewall.
Используйте консоль VPS через панель управления провайдера и выполните:
ufw disable
После этого настройте правила заново.
Сайт перестал открываться
Проверьте, открыты ли порты:
ufw status
Для HTTPS должны быть разрешены:
80/tcp
443/tcp
Firewall включен, но правила не работают
Перезагрузите конфигурацию:
ufw reload
Не удается удалить правило
Используйте нумерованный список:
ufw status numbered
После чего удалите правило по номеру.
Рекомендации по безопасности
- Используйте нестандартный SSH-порт.
- Настройте SSH-аутентификацию по ключу.
- Установите Fail2Ban.
- Открывайте только необходимые порты.
- Регулярно проверяйте список правил.
- Обновляйте систему безопасности сервера.
Firewall является одной из базовых мер защиты VPS и должен быть настроен сразу после получения сервера.