UFW (Uncomplicated Firewall) — упрощённый интерфейс к iptables для Ubuntu/Debian. Настраивается за несколько команд и надёжно защищает VPS от несанкционированных подключений.
Начальная настройка UFW
# Установить (обычно уже есть)
sudo apt install -y ufw
# ВАЖНО: сначала разрешить SSH, потом включать!
sudo ufw allow 22/tcp comment 'SSH'
# Или если используете нестандартный порт:
sudo ufw allow 2222/tcp comment 'Custom SSH'
# Разрешить веб-трафик
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
# Установить политики по умолчанию
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Включить (после разрешения SSH!)
sudo ufw enable
⚠️ Всегда разрешайте SSH ДО включения UFW. Иначе заблокируете себя на сервере.
Полезные команды
# Статус с номерами правил
sudo ufw status numbered
# Удалить правило по номеру
sudo ufw delete 3
# Разрешить конкретный IP
sudo ufw allow from 192.168.1.100 to any port 22
# Заблокировать IP
sudo ufw deny from 10.20.30.40
# Ограничить попытки подключения (защита от брутфорса)
sudo ufw limit 22/tcp
Защита конкретных сервисов
# MySQL — только с localhost
sudo ufw deny 3306/tcp
# Redis — только с localhost
sudo ufw deny 6379/tcp
# Разрешить MySQL только для конкретного IP
sudo ufw allow from 10.0.0.5 to any port 3306
Типичная конфигурация для веб-сервера
| Порт | Правило | Назначение |
|---|---|---|
| 22 | allow limit | SSH (брутфорс-защита) |
| 80 | allow | HTTP |
| 443 | allow | HTTPS |
| 3306 | deny | MySQL (только localhost) |
| 6379 | deny | Redis (только localhost) |
💡
ufw limit 22/tcp — это встроенная защита от брутфорса: блокирует IP после 6 попыток за 30 секунд.