Отрезаем 95% кибератак за 10 минут: базовая защита Linux-сервера от брутфорса и DDoS своими руками

Как защитить копеечную VPS от ботнетов, китайских сканеров и SYN-флуда штатными средствами без платных сервисов.

Если у вашего сервера публичный IP, будьте уверены: прямо сейчас его сканируют десятки ботнетов. Автоматические скрипты круглосуточно перебирают пароли к SSH и пытаются завалить хосты простейшим флудом. Защитить сервер на уровне крупного дата-центра без бюджетов не получится, но отсечь 95% автоматических векторов можно всего за 10 минут, используя только штатные инструменты Linux. Разбираем по шагам.

Шаг 1. Меняем дефолтный порт SSH Первое, что делает любой автоматический сканер — стучится на порт 22. Убрав SSH на нестандартный порт, вы мгновенно очистите свои логи от гигабайтов мусорных попыток авторизации.

1. Открываем конфигурационный файл SSH-демона:

sudo nano /etc/ssh/sshd_config

2. Находим строку #Port 22, убираем решетку и меняем порт на любой пятизначный (например, из пула 49152–65535), который не занят другими службами:

Port 54321

3. Там же отключаем вход по обычному паролю (настоятельно рекомендуется настроить и перейти на SSH-ключи) и запрещаем вход под root напрямую:

PermitRootLogin no PasswordAuthentication no

4. Важно: Если у вас включен SELinux или UFW, не забудьте разрешить новый порт перед перезапуском, иначе вы заблокируете сами себя! Перезапускаем службу:

sudo systemctl restart sshd
Шаг 2. Настраиваем Fail2Ban против брутфорса Fail2Ban — это база. Скрипт в реальном времени мониторит системные логи. Если он видит, что кто-то слишком часто ошибается при авторизации, то автоматически отправляет IP атакующего в бан через встроенный фаервол.

1. Устанавливаем пакет (для Ubuntu/Debian):

sudo apt update && sudo apt install fail2ban -y

2. Создаем локальный конфиг защиты SSH:

sudo nano /etc/fail2ban/jail.local

3. Вставляем базовые настройки:

[sshd] enabled = true port = 54321 filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 600 bantime = 3600

Как это работает: Если один и тот же IP за 10 минут (findtime = 600) ошибается 3 раза (maxretry = 3), он улетает в бан на 1 час (bantime = 3600).

4. Запускаем службу в автозагрузку:

sudo systemctl enable --now fail2ban
Шаг 3. Защита от SYN-флуда через sysctl SYN-флуд — это классическая DDoS-атака низкого уровня, когда атакующий засыпает сервер миллионами запросов на подключение, но не отвечает на подтверждения. В итоге память сервера забивается полуоткрытыми соединениями, и система падает. Мы можем включить SYN cookies прямо в ядре Linux. Сервер перестанет тратить ресурсы на удержание соединений до тех пор, пока клиент не подтвердит свой реальный IP.

1. Открываем файл параметров ядра:

sudo nano /etc/sysctl.conf

2. Добавляем в конец файла следующие оптимизации сетевого стека:

# Включаем защиту от SYN-флуда net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_synack_retries = 2

3. Применяем настройки на лету без перезагрузки машины:

sudo sysctl -p
Шаг 4. Ограничение соединений через UFW (Лимитирование) Если на вашем сервере крутится сайт или веб-приложение, боты могут попытаться заспамить его обычными HTTP/HTTPS запросами. Через встроенный фаервол UFW можно жестко ограничить количество сессий: например, не более 10 подключений с одного IP в течение 30 секунд.

1. Если UFW еще не активен, быстро настраиваем его (разрешая наш кастомный SSH-порт!):

sudo apt install ufw -y sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 54321/tcp sudo ufw enable

2. Включаем лимитирование для веб-портов (80 и 443):

sudo ufw limit 80/tcp sudo ufw limit 443/tcp

Потратив 10 минут на эти четыре шага, вы превратите свой Linux-сервер из легкой мишени в защищенную крепость. Скрипты-автосканеры будут проходить мимо, натыкаясь на закрытый 22-й порт, а мелкий DDoS захлебнется на уровне ядра сетевого стека.

Где вы обычно арендуете серверы под свои проекты и какие методы защиты используете? Поделитесь своим опытом в комментариях!

Где крутить такие конфиги? Для реализации этого гайда нужен надежный сервер. Лично я держу свои проекты на VPS от Timeweb Cloud — аптайм железный, сетка держит удары, а цены адекватные. Регистрируйтесь по ссылке: TimeWeb Cloud и забирайте бонусы на старт.