Отрезаем 95% кибератак за 10 минут: базовая защита Linux-сервера от брутфорса и DDoS своими руками
Как защитить копеечную VPS от ботнетов, китайских сканеров и SYN-флуда штатными средствами без платных сервисов.
Если у вашего сервера публичный IP, будьте уверены: прямо сейчас его сканируют десятки ботнетов. Автоматические скрипты круглосуточно перебирают пароли к SSH и пытаются завалить хосты простейшим флудом. Защитить сервер на уровне крупного дата-центра без бюджетов не получится, но отсечь 95% автоматических векторов можно всего за 10 минут, используя только штатные инструменты Linux. Разбираем по шагам.
Шаг 1. Меняем дефолтный порт SSH Первое, что делает любой автоматический сканер — стучится на порт 22. Убрав SSH на нестандартный порт, вы мгновенно очистите свои логи от гигабайтов мусорных попыток авторизации.
1. Открываем конфигурационный файл SSH-демона:
2. Находим строку #Port 22, убираем решетку и меняем порт на любой пятизначный (например, из пула 49152–65535), который не занят другими службами:
3. Там же отключаем вход по обычному паролю (настоятельно рекомендуется настроить и перейти на SSH-ключи) и запрещаем вход под root напрямую:
4. Важно: Если у вас включен SELinux или UFW, не забудьте разрешить новый порт перед перезапуском, иначе вы заблокируете сами себя! Перезапускаем службу:
Шаг 2. Настраиваем Fail2Ban против брутфорса Fail2Ban — это база. Скрипт в реальном времени мониторит системные логи. Если он видит, что кто-то слишком часто ошибается при авторизации, то автоматически отправляет IP атакующего в бан через встроенный фаервол.
1. Устанавливаем пакет (для Ubuntu/Debian):
2. Создаем локальный конфиг защиты SSH:
3. Вставляем базовые настройки:
Как это работает: Если один и тот же IP за 10 минут (findtime = 600) ошибается 3 раза (maxretry = 3), он улетает в бан на 1 час (bantime = 3600).
4. Запускаем службу в автозагрузку:
Шаг 3. Защита от SYN-флуда через sysctl SYN-флуд — это классическая DDoS-атака низкого уровня, когда атакующий засыпает сервер миллионами запросов на подключение, но не отвечает на подтверждения. В итоге память сервера забивается полуоткрытыми соединениями, и система падает. Мы можем включить SYN cookies прямо в ядре Linux. Сервер перестанет тратить ресурсы на удержание соединений до тех пор, пока клиент не подтвердит свой реальный IP.
1. Открываем файл параметров ядра:
2. Добавляем в конец файла следующие оптимизации сетевого стека:
3. Применяем настройки на лету без перезагрузки машины:
Шаг 4. Ограничение соединений через UFW (Лимитирование) Если на вашем сервере крутится сайт или веб-приложение, боты могут попытаться заспамить его обычными HTTP/HTTPS запросами. Через встроенный фаервол UFW можно жестко ограничить количество сессий: например, не более 10 подключений с одного IP в течение 30 секунд.
1. Если UFW еще не активен, быстро настраиваем его (разрешая наш кастомный SSH-порт!):
2. Включаем лимитирование для веб-портов (80 и 443):
Потратив 10 минут на эти четыре шага, вы превратите свой Linux-сервер из легкой мишени в защищенную крепость. Скрипты-автосканеры будут проходить мимо, натыкаясь на закрытый 22-й порт, а мелкий DDoS захлебнется на уровне ядра сетевого стека.
Где вы обычно арендуете серверы под свои проекты и какие методы защиты используете? Поделитесь своим опытом в комментариях!
Где крутить такие конфиги? Для реализации этого гайда нужен надежный сервер. Лично я держу свои проекты на VPS от Timeweb Cloud — аптайм железный, сетка держит удары, а цены адекватные. Регистрируйтесь по ссылке: TimeWeb Cloud и забирайте бонусы на старт.