Новый VPS сервер по умолчанию уязвим: открытый SSH-порт 22, пустой файрвол, root-пароль для входа. Каждую минуту боты сканируют IP-адреса и пытаются подобрать пароль по словарю. Без базовой защиты сервер компрометируют за часы.
В этом гайде — пошаговая настройка безопасности VPS на Ubuntu 22.04/24.04: UFW файрвол, Fail2Ban защита от брутфорса, SSH-hardening. Все команды проверены в марте 2026 года.
Первичная настройка: пользователь и обновления
Шаг 1. Обновить систему и создать non-root пользователя:
apt update && apt upgrade -y
adduser deploy
usermod -aG sudo deployШаг 2. Настроить SSH-ключи (на ВАШЕМ компьютере):
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-copy-id deploy@YOUR_VPS_IPПосле копирования ключа проверьте подключение: ssh deploy@YOUR_VPS_IP — должен пустить без пароля.
SSH-hardening: отключаем пароли и root
Откройте конфигурацию SSH:
sudo nano /etc/ssh/sshd_configКритические параметры:
Port 2210 # Нестандартный порт (не 22)
PermitRootLogin no # Запрет входа root
PasswordAuthentication no # Только ключи
PubkeyAuthentication yes # Включить аутентификацию по ключам
MaxAuthTries 3 # Максимум 3 попытки
ClientAliveInterval 300 # Таймаут неактивных сессий
ClientAliveCountMax 2Перезапустите SSH:
sudo systemctl restart sshdНе закрывайте текущую сессию до проверки нового подключения.
UFW: настройка файрвола
UFW (Uncomplicated Firewall) — стандартный файрвол Ubuntu. Принцип: запрещаем всё, разрешаем только нужное.
# Базовая политика
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Разрешаем SSH (используйте ВАШ порт!)
sudo ufw allow 2210/tcp comment 'SSH'
# Веб-сервер
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
# Включаем файрвол
sudo ufw enable
sudo ufw status verboseНе открывайте порты приложений (3000, 8080, 1337) напрямую — используйте Nginx reverse proxy.
Fail2Ban: защита от брутфорса
Fail2Ban анализирует логи и блокирует IP-адреса после неудачных попыток входа.
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.localНастройка jail для SSH:
[sshd]
enabled = true
port = 2210
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600Настройка jail для Nginx:
[nginx-badbots]
enabled = true
port = http,https
filter = nginx-badbots
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 86400sudo systemctl enable fail2ban
sudo systemctl restart fail2ban
sudo fail2ban-client statusДобавьте ignoreregex для поисковых ботов (Googlebot, YandexBot), чтобы они не попадали под бан.
Дополнительная защита
- Автообновления безопасности: sudo apt install unattended-upgrades && sudo dpkg-reconfigure -plow unattended-upgrades
- 2FA для SSH: Google Authenticator (libpam-google-authenticator) для критически важных серверов
- Мониторинг: logwatch для ежедневных отчётов по email, journalctl для оперативного анализа
- Резервное копирование: ежедневный бэкап конфигов (/etc/), еженедельный полный бэкап
Чеклист безопасности VPS
- Обновить систему (apt update && upgrade)
- Создать non-root пользователя с sudo
- Настроить SSH-ключи (ed25519)
- Отключить парольную аутентификацию SSH
- Запретить root-логин по SSH
- Сменить SSH-порт с 22 на нестандартный
- Установить и настроить UFW
- Установить и настроить Fail2Ban
- Включить автоматические обновления безопасности
- Настроить резервное копирование
VPS с встроенной DDoS-защитой
- RUVDS — DDoS-защита на всех тарифах, от 139 руб/мес
- Aeza — NVMe SSD, защита от DDoS L3/L4, от 169 руб/мес
- Timeweb Cloud — встроенная защита, от 197 руб/мес
- AdminVPS — защита от DDoS, от 299 руб/мес
Сравните VPS с DDoS-защитой
16 провайдеров с актуальными ценами и уровнями защиты.
Плюсы и минусы
Преимущества
- Пошаговые bash-команды для Ubuntu 22.04/24.04
- Все слои защиты: файрвол, SSH, brute-force, обновления
- Готовые конфиги для production
- Чеклист быстрой проверки
Недостатки
- Не покрывает SELinux, AppArmor, HIDS
- Фокус на Ubuntu
- Не заменяет enterprise-аудит
Частые вопросы
Какие порты обязательно открывать на VPS через UFW?
Минимально: SSH (22 или кастомный), HTTP (80), HTTPS (443). Для Strapi/Node.js приложений — только через reverse proxy Nginx, порты приложений не открывать.
Как защитить VPS от брутфорс-атак на SSH?
Установить Fail2Ban с jail для sshd (maxretry=3, bantime=3600), отключить авторизацию по паролю в sshd_config (PasswordAuthentication no), использовать SSH-ключи.
Нужно ли менять стандартный SSH-порт 22?
Рекомендуется. Смена порта снижает количество автоматических сканов на 90%. Выберите порт выше 1024 (например, 2210) и обновите правила UFW.
Как настроить Fail2Ban чтобы не блокировать поисковых ботов?
Добавьте ignoreregex в фильтры nginx-badbots для Googlebot, YandexBot, bingbot. Установите maxretry не менее 5, чтобы легитимные краулеры не банились.
Какой минимальный чеклист безопасности для нового VPS?
1) Обновить систему (apt update && upgrade), 2) Создать non-root пользователя, 3) Настроить SSH-ключи, 4) Установить UFW и открыть минимум портов, 5) Установить Fail2Ban.
Сравнить VPS провайдеров с DDoS-защитой
Выбрать безопасный VPSСтатья содержит партнёрские ссылки. При переходе и покупке мы получаем комиссию без дополнительных затрат для вас. Подробнее