Защита сервера от ботов — уровень ниже капчи на формах: rate limiting, firewall, логи и блокировка на уровне nginx/Apache. Разбираем, как снизить нагрузку от роботов на VPS и когда капчи на сайте недостаточно.
Чем боты нагружают сервер
- Массовые POST к формам и API — CPU на обработку и запись в БД
- Брутфорс login — тысячи запросов к
/wp-login.php,/api/auth - Парсинг — сотни GET к каталогу, картинкам, API
- Сканирование — поиск уязвимостей (
/admin,/.env) - DDoS-подобные волны — исчерпание лимита соединений
Капча на форме не поможет, если бот бьёт напрямую по API без токена. Нужна защита сервера от ботов на сетевом и прикладном уровне.
Уровень 1: nginx / Apache rate limit
Ограничьте частоту запросов с одного IP:
- Login: 5 запросов в минуту
- API: 60–120 запросов в минуту
- Формы: 10 POST в час с IP
В nginx — limit_req_zone и limit_req. Это отсекает грубый брутфорс до попадания в приложение.
Уровень 2: fail2ban и блокировка IP
fail2ban читает логи и банит IP после N неудачных попыток входа или 404-сканирования. Настройте jail для:
- SSH (если открыт)
- nginx auth / wp-login
- Вашего API login
Уровень 3: капча на приложении
Rate limit замедляет ботов, но не останавливает распределённые атаки. На формах и login — капча СВАЙПЕР с обязательной серверной проверкой. См. защита от ботов на сайте.
Уровень 4: WAF и CDN
Для крупных проектов:
- Cloudflare Bot Fight Mode
- Qrator, StormWall — российские WAF
- Фильтрация по гео, ASN, User-Agent
Дороже, но закрывает DDoS и сложный парсинг. Обзор сервисов — сервис защиты от ботов.
Мониторинг: что смотреть на сервере
top/htop— скачки CPU без роста реальных пользователей- Логи nginx: один IP — тысячи запросов
- Размер очереди почты (спам с форм)
- Медленные запросы MySQL/PostgreSQL
Чек-лист защиты сервера от ботов
- Rate limit на login и API (nginx)
- fail2ban на auth-логи
- Капча на все POST-формы — СВАЙПЕР
- Закрыть ненужные порты, обновить CMS
- Логи + алерты при аномалиях
- При атаках — WAF или CDN
Итог
Защита сервера от ботов — это rate limit + fail2ban + капча на приложении + при необходимости WAF. Начните с nginx-лимитов и капчи на формах — этого хватит для большинства VPS. СВАЙПЕР закрывает прикладной слой бесплатно до 5 000 проверок.