Скрипт настройки файрвола UFW (открытие портов 80/443, SSH и лимиты)

Обновлено: Август 2026 Стек: UFW (Uncomplicated Firewall), iptables Проверено: Production-Ready

Пошаговый Bash-скрипт настройки фаервола UFW на Linux: правила по умолчанию, открытие HTTP/HTTPS, защита SSH с rate-limit, защита от сканирования портов.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/root/setup-ufw.sh
#!/bin/bash
# Настройка UFW для веб-сервера SysKit
ufw --force reset
ufw default deny incoming
ufw default allow outgoing

# Разрешаем SSH с защитой от перебора (rate limiting)
ufw limit 22/tcp comment 'SSH Port'

# Разрешаем веб-трафик HTTP и HTTPS
ufw allow 80/tcp comment 'HTTP Web'
ufw allow 443/tcp comment 'HTTPS SSL'

# Включаем файрвол
ufw --force enable
ufw status verbose

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
ufw default deny incoming deny Блокирует любые входящие подключения ко всем портам, кроме явно разрешенных.
ufw limit ssh/tcp limit Блокирует IP, если с него происходит более 6 попыток подключения за 30 секунд.
bantime = 24h 24h Блокирует IP адрес атакующего на 24 часа при превышении порога неудачных попыток авторизации.
PasswordAuthentication no no Запрещает вход по паролю через SSH, требуя авторизацию исключительно по криптографическим ключам Ed25519.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: Любой Linux сервер с установленным пакетом ufw
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 20 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 20 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 20 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как разрешить доступ к MySQL только с одного IP?
Выполните команду: `ufw allow from 192.168.1.100 to any port 3306 proto tcp`.
Как не заблокировать собственный IP адрес?
Добавьте ваш IP в директиву `ignoreip = 127.0.0.1/8 ::1 ВАШ_IP` в файле `/etc/fail2ban/jail.local`.
Как разблокировать ошибочно забаненный IP?
Выполните команду `fail2ban-client set <jail_name> unbanip <IP_ADDRESS>`.

Рекомендуемые смежные конфигурации

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