Базовая безопасность VPS без перегибов
Безопасность VPS — это не один секретный параметр, а набор простых привычек. Большинство взломов и сбоев происходит не из-за сложных атак, а из-за открытых портов, слабых паролей, старых пакетов и отсутствия резервных копий.
Сначала уменьшите поверхность атаки
Чем меньше сервисов доступно из интернета, тем проще защищать сервер. Не нужно открывать наружу базы данных, панели, внутренние API и тестовые приложения.
ss -tulpn
- оставьте только нужные порты;
- внутренние сервисы переведите на 127.0.0.1;
- закрывайте временные тестовые порты после работ.
SSH должен быть предсказуемым
SSH лучше настраивать аккуратно: сначала ключи, потом ограничение паролей, затем fail2ban или firewall. Нельзя отключать root и парольный вход, не проверив альтернативный доступ.
- проверьте authorized_keys;
- создайте пользователя с sudo;
- оставьте открытую текущую SSH-сессию при изменениях;
- имейте доступ через консоль провайдера.
Firewall — это базовый фильтр
Firewall нужен не только для защиты от атак, но и для защиты от собственных ошибок. Если приложение случайно начинает слушать 0.0.0.0, firewall может не дать ему стать публичным.
ufw status verbose
ss -tulpn
Обновления важнее, чем кажется
Сервер без обновлений постепенно становится более уязвимым. При этом обновления нужно делать осмысленно: понимать, какие службы могут перезапуститься и есть ли свежий бэкап.
Права и владельцы файлов
Неправильные права могут привести к двум проблемам: сайт не работает или посторонний процесс может изменить файлы. Для статического сайта обычно достаточно, чтобы nginx мог читать файлы, но не все пользователи могли их менять.
- не ставьте 777 без необходимости;
- приватные ключи должны иметь строгие права;
- каталоги загрузок отделяйте от исполняемого кода.
Без бэкапа безопасность неполная
Даже защищённый сервер может быть сломан ошибкой администратора, сбоем диска, неудачным обновлением или проблемой у провайдера. Бэкап — это часть безопасности, а не отдельная роскошь.
- храните копию вне VPS;
- проверяйте восстановление;
- сохраняйте базы, конфиги, cron, docker-compose и файлы сайтов.