Почему тормозит Lansweeper: спам запросами в IIS и как это исправить
Если после переустановки сервер Lansweeper начал работать крайне медленно - страницы веб-интерфейса грузятся по несколько минут, а изображения открываются с задержкой, - причина часто кроется не в базе данных SQL, а в веб-сервере IIS. В этой статье разберём типичный сценарий: внутренний шквал аутентификационных запросов, который парализует IIS, и покажем, как его выявить и устранить.
Почему IIS тормозит, а SQL - нет
При диагностике первым делом проверяют базу данных. AppInsight for SQL показывает, что запросы выполняются без задержек - значит, проблема не в СУБД. Включаем мониторинг AppInsight for IIS и видим аномалию: более 750 000 попыток входа (логон-аттемптов) с момента запуска сайта. За полчаса количество растёт ещё на 3 000 - явно не ручная активность. Логи IIS (папка C:\inetpub\logs\LogFiles\W3SVC3) подтверждают: круглосуточно идут обращения к 3-4 страницам, все ответы - код 200 (успешные запросы). При аутентификации через веб-страницу код 200 возможен даже при спаме логонами, так как сервер возвращает страницу логина.
Кто генерирует трафик: внутренние источники
Анализ источников показывает, что запросы приходят изнутри сети, а не извне. Среди адресов:
- машина из подсети поддержки (VLAN для клиентских ПК на ремонте);
- рабочая станция из офисной пользовательской подсети;
- адрес из пула VPN для пользователей.
Два IP - 172.21.103.166 и 172.20.2.185 - продолжают активно долбить сервер в момент проверки. Сетевая статистика за 9 дней: сервер принял ~200 ГБ входящего трафика, отправил только 7 ГБ. Поскольку Lansweeper выполняет роль только веб-хоста, а вся служебная работа идёт на БД, ясно: сервер заспамлен внутренними запросами.
Как отфильтровать спам в IIS: Dynamic IP Restrictions
Для борьбы с такими «внутренними DDoS» в IIS встроен модуль Dynamic IP Restrictions (IP-адреса и ограничения доменов). Он позволяет:
- задать максимальное количество одновременных запросов с одного IP;
- установить лимит запросов за определённый интервал времени;
- автоматически блокировать IP, превысивший лимит, на заданный период.
Настройка выполняется через IIS Manager: выберите сайт, откройте «IP-адреса и ограничения доменов», включите динамическую фильтрацию. Для Lansweeper рекомендуем начать с лимита 50 запросов за 5 секунд - этого достаточно для легитимной работы, но отсечёт аномальный спам.
Дополнительные меры для Lansweeper
Помимо Dynamic IP Restrictions, стоит:
- проверить, не установлено ли на клиентских машинах ПО, которое постоянно опрашивает сервер (например, старые агенты или скрипты);
- настроить логирование в IIS с детализацией по User-Agent - это поможет идентифицировать источник спама;
- включить Request Filtering (фильтрацию запросов) в IIS - заблокировать подозрительные строки запроса или слишком длинные URL.
Если спам идёт с конкретных IP, можно временно добавить их в чёрный список через статические правила IIS, но динамическая блокировка надёжнее - она срабатывает автоматически и не требует ручного вмешательства.
Как отловить источник спама: пошаговая инструкция
- Откройте логи IIS за последние сутки.
- Отфильтруйте записи по подозрительным IP (из примера - 172.21.103.166, 172.20.2.185).
- Посмотрите URI запросов - если все они ведут к странице логина (/login.aspx или аналогичной), значит, происходит спам аутентификацией.
- Проверьте User-Agent - возможно, запросы отправляются скриптом или старым агентом.
- Найдите владельца IP через DHCP-логи или систему инвентаризации - это может быть компьютер клиента, который «завис» на странице логина и циклически её перезагружает.
Вывод
Медленная работа Lansweeper чаще всего вызвана не проблемами SQL, а перегрузкой IIS из-за внутреннего спама запросами. Модуль Dynamic IP Restrictions - эффективное решение, которое автоматически блокирует аномальные IP без участия администратора. В сочетании с анализом логов и проверкой клиентских машин это полностью устраняет проблему.