TrafficVeil
Боты 6 мин21 августа 2026 г.

MainWP в логах: скорее всего, ваша же панель управления

Плагин MainWP Child по конструкции работает только с одной привязанной панелью — при подключении генерируется пара криптографических ключей, и весь дальнейший обмен идёт по аутентифицированному каналу. Разбираемся, почему это значит, что трафик MainWP на сайте почти всегда исходит от вас самих или вашего агентства, и как за один шаг проверить легитимность вместо привычного анализа ASN.

TV
TrafficVeil Team
Эксперты по защите веб-трафика
Содержание статьи
  1. 1. Что такое MainWP на самом деле
  2. 2. Зачем MainWP приходит на сайт
  3. 3. Нагрузка и риски
  4. 4. Как найти MainWP в логах
  5. 5. robots.txt для MainWP
  6. 6. Блокировка вручную и через TrafficVeil
  7. 7. Что делать: короткий алгоритм
  8. 8. Открытый вопрос по категоризации
  9. 9. Стратегия allow/deny для MainWP
DDoS L7

DDoS атака что это простыми словами и как защитить сайт

Разобрали виды атак, признаки DDoS, последствия, уровни защиты, L7 DDoS и схему подключения TrafficVeil через DNS/reverse proxy.

Читать про DDoS

Энциклопедия ботов TrafficVeil

618 ботов с описаниями, паттернами User-Agent и фильтром по категориям — открытый справочник для аудита логов и настройки защиты.

Открыть справочник

MainWP в логах — не безымянный «прочий сервис», а конкретная, хорошо задокументированная система управления WordPress-сайтами с открытым кодом. Важнее другое: по устройству самого MainWP этот трафик почти всегда означает не постороннего бота, а вашу же собственную (или вашего агентства) панель управления — если, конечно, на сайте вообще установлен плагин MainWP Child. Это меняет весь практический подход к этому UA.

1. Что такое MainWP на самом деле

MainWP — бесплатная система для управления множеством WordPress-сайтов с единой панели: массовые обновления плагинов, тем и ядра, резервное копирование, проверки безопасности, управление контентом. Работает по модели «hub-and-spoke»: на одном «чистом» WordPress-сайте устанавливается плагин MainWP Dashboard (панель управления), а на каждом управляемом сайте — плагин MainWP Child, который и принимает команды от панели.

Официальный User-Agent, который использует MainWP при обращении к дочерним сайтам:

Mozilla/5.0 (compatible; MainWP/4.2.4; +https://mainwp.com)

Номер версии в середине строки меняется с каждым релизом плагина.

Ключевой факт, которого не хватало в общем описании. Плагин MainWP Child по конструкции работает только с одной привязанной панелью Dashboard: при первом подключении генерируется пара публичный/приватный ключ (2048 бит), публичный сохраняется на дочернем сайте, приватный — на панели, и всё дальнейшее общение идёт по OpenSSL-шифрованному каналу с этой аутентификацией. Это значит, что если на сайте установлен MainWP Child, реальный входящий трафик от MainWP почти гарантированно приходит именно от той панели, к которой сайт сознательно подключили — то есть от вас самих или вашего агентства, а не от произвольного третьего лица.

Параметр Значение
Название MainWP
Природа Открытая, бесплатная система управления множеством WordPress-сайтов (Dashboard + Child plugin)
User-Agent / паттерн Mozilla/5.0 (compatible; MainWP/X.X.X; +https://mainwp.com)
Оператор Не третья сторона — в подавляющем большинстве случаев это сам владелец сайта или его агентство, управляющее сайтом через собственную панель MainWP Dashboard
Условие появления трафика Требует установленного и подключённого плагина MainWP Child именно на этом сайте — без него легитимного MainWP-трафика в принципе быть не должно
Аутентификация Пара ключей 2048 бит между конкретной панелью Dashboard и конкретным Child-сайтом, канал — OpenSSL
Официальная документация mainwp.com/kb, репозиторий на GitHub, страница плагина на WordPress.org
Пометка TrafficVeil Легитимный / Прочие краулеры и сервисы — но точнее звучало бы «собственная инфраструктура сайта», см. раздел 8

2. Зачем MainWP приходит на сайт

Если на сайте установлен MainWP Child, обращения — это штатные команды от подключённой панели:

  • проверка статуса обновлений плагинов, тем и ядра WordPress;
  • запуск резервного копирования или проверки безопасности по расписанию;
  • массовые операции с постами, страницами, пользователями и комментариями, инициированные администратором панели;
  • периодический мониторинг аптайма и доступности сайта.

Если же плагина MainWP Child на сайте нет — легитимного объяснения для такого трафика значительно меньше. Обращения к MainWP-специфичным путям на сайте без установленного Child-плагина стоит рассматривать не как «доставку функции клиенту», а скорее как automated-сканирование известных WordPress-эндпоинтов — попытку нащупать, не запущен ли на сайте этот или похожий плагин с уязвимостью.

3. Нагрузка и риски

Для сайтов с установленным и подключённым MainWP Child риск минимален — это ваша собственная управляющая инфраструктура, а не сторонняя автоматизация. Единственное, на что стоит смотреть — не подключён ли по ошибке сайт к чужой или скомпрометированной панели (например, после смены подрядчика старая панель осталась подключённой).

Для сайтов без MainWP Child риск нужно оценивать иначе: раз легитимного механизма для такого трафика нет, регулярные запросы с этим UA — сигнал автоматизированного зондирования, а не «фонового шума легитимного сервиса», как это формулируется для большинства других записей в этой категории.

4. Как найти MainWP в логах

# Базовый поиск
grep -i "mainwp" /var/log/nginx/access.log

# Топ URL, которые запрашивает клиент
grep -i "mainwp" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head

# Топ IP за этим UA — сверяйте с IP вашей собственной панели Dashboard
grep -i "mainwp" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head

# Суточная активность — штатные проверки обычно идут по расписанию
grep -i "mainwp" /var/log/nginx/access.log | awk '{print $4}' | cut -d: -f1 | sort | uniq -c

# Первый шаг диагностики — проверьте, установлен ли на сайте плагин-получатель
wp plugin list --status=active | grep -i mainwp

Верификация. Строку UA подделать может любой скрипт. Но здесь есть более надёжный первый шаг, чем ASN-проверка: посмотрите, установлен ли на сайте активный плагин MainWP Child и к какой панели он подключён (раздел настроек плагина показывает связанный Dashboard). Если плагина нет вовсе, весь трафик с этим UA по определению не может быть легитимным management-запросом:

IP="1.2.3.4"
whois -h whois.cymru.com " -v $IP"
dig +short -x "$IP"

5. robots.txt для MainWP

# Жёсткий запрет — уместно, если MainWP Child на сайте не используется
User-agent: MainWP
Disallow: /

# Разрешить всё — если сайт реально управляется через MainWP
User-agent: MainWP
Allow: /

# Компромисс не имеет особого смысла для этого UA:
# либо сайт управляется через MainWP целиком, либо нет

6. Блокировка вручную и через TrafficVeil

Nginx:

if ($http_user_agent ~* "mainwp") {
    return 403;
}

Apache (.htaccess):

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} mainwp [NC]
RewriteRule ^ - [F,L]

TrafficVeil:

  • прежде чем блокировать — проверьте, не сломает ли это управление сайтом через собственную панель;
  • если MainWP Child установлен и активно используется — allow, дополнительно ограничивать не нужно, канал уже аутентифицирован ключами на уровне самого плагина;
  • если плагина на сайте нет — Disallow и блокировка в TrafficVeil обоснованы сразу, без промежуточного rate-limit;
  • после изменения сверьте логи и, если применимо, работоспособность самой панели MainWP — легитимные запросы не должны были прекратиться, если вы их не блокировали намеренно.

7. Что делать: короткий алгоритм

  • Первый шаг всегда один: проверить, установлен ли на сайте плагин MainWP Child;
  • Установлен и используется — allow, это ваша собственная инфраструктура управления;
  • Установлен, но вы не уверены, к чьей панели он подключён — проверьте настройки подключения, прежде чем решать что-либо ещё;
  • Не установлен вовсе — Disallow + запрет в TrafficVeil, легитимного объяснения для трафика нет;
  • Не блокируйте по маске User-agent: *, чтобы не задеть Googlebot/YandexBot заодно.

8. Открытый вопрос по категоризации

Стоит обратить внимание: формулировка «оператор не указан публично / определяется по UA и поведению» для MainWP не совсем точна — оператор известен по определению (это тот, кто подключил конкретный Child-сайт к своей панели), просто узнать его можно не по открытым источникам, а по настройкам самого плагина на сайте. Возможно, для таких сайт-менеджмент-инструментов (MainWP, аналогичные ManageWP, InfiniteWP) стоит завести отдельную под-категорию с другой логикой проверки — не «смотрите ASN оператора», а «проверьте, установлен ли парный плагин на самом сайте».

Бот / сосед Кластер UA Комментарий
ManageWP Прочие краулеры и сервисы managewp Прямой конкурент MainWP с той же логикой парной аутентификации Dashboard–Child
InfiniteWP Прочие краулеры и сервисы infinitewp Та же категория WP-менеджмент-инструментов
AccessStatus Прочие краулеры и сервисы accessstatus В отличие от MainWP — универсальный сторонний мониторинг без привязки к конкретному сайту-владельцу
2ip Bot Прочие краулеры и сервисы 2ip bot легитимный, но сторонний сервис — принципиально другая модель, чем у MainWP

9. Стратегия allow/deny для MainWP

Ситуация Действие
MainWP Child установлен и используется штатно Allow — это собственная управляющая инфраструктура
MainWP Child установлен, но подключение к панели не проверялось Сначала проверить настройки подключения плагина, затем решать
MainWP Child не установлен вовсе Disallow + запрет в TrafficVeil — легитимного трафика быть не может
Сайт недавно сменил подрядчика/агентство Проверить и при необходимости переподключить или отозвать старое подключение к панели
Подозрение на подделку UA под MainWP Проверка тривиальна для этого конкретного случая — если плагина-получателя на сайте нет, запрос не может быть легитимным независимо от UA

Частые вопросы

MainWP — это сторонний бот, который сканирует сайт без разрешения?

Почти наверняка нет — плагин MainWP Child по конструкции принимает команды только от одной криптографически привязанной панели, которую подключил сам владелец сайта.

Как быстро понять, легитимен ли этот трафик на конкретном сайте?

Проверить, установлен ли на сайте активный плагин MainWP Child — без него легитимного MainWP-трафика в принципе быть не может.

Что если MainWP Child установлен, но непонятно, к чьей панели он подключён?

Стоит зайти в настройки плагина и проверить привязанный Dashboard — особенно актуально после смены подрядчика или агентства.

Как выглядит официальный User-Agent MainWP?

Mozilla/5.0 (compatible; MainWP/X.X.X; +https://mainwp.com), где номер версии меняется с каждым релизом плагина.

Стоит ли блокировать MainWP, если на сайте нет плагина MainWP Child?

Да, в этом случае легитимного объяснения для такого трафика нет, и его стоит рассматривать как автоматизированное зондирование.

Есть ли похожие инструменты с той же логикой парного подключения?

Да, например ManageWP и InfiniteWP — конкуренты MainWP с аналогичной архитектурой Dashboard–Child.

#MainWP#WordPress#управление сайтами#User-Agent#robots.txt#антибот#TrafficVeil
TV
TrafficVeil Team

Команда TrafficVeil разрабатывает инструменты защиты сайтов от ботов, DDoS и веб-атак.

Похожие статьи

Skype (общий токен): не один бот, а минимум три разных

Общий поиск по слову «skype» в логах цепляет сразу несколько разных, исторически связанных механизмов Microsoft — от закрытого в мае 2025 года превью-бота до активной внутренней инфраструктуры Teams, унаследовавшей кодовое имя SkypeSpaces. Разбираемся, почему общее правило блокировки по этому слову рискованно, и как разделить разные варианты в своих логах.

7 мин

Fedicabot: превью-fetcher Fedica, а не краулер Fediverse

Fedicabot принадлежит Fedica — крупной платформе публикации и аналитики соцсетей, а не имеет отношения к Fediverse, несмотря на созвучное название. Официальная страница оператора прямо заявляет: бот не обходит сайты целиком, а читает только страницу, которую указал конкретный пользователь при планировании публикации, — это меняет всю логику оценки риска.

6 мин

Amazon Kendra: возможно, ваш корпоративный поиск

Amazon Kendra — реальный сервис корпоративного поиска AWS, и его коннектор Web Crawler обходит только те конкретные URL, которые явно указал клиент AWS при настройке источника данных — то есть это не свободный обход, а целевая индексация по чьему-то заданию. Разбираемся, почему первый шаг здесь — проверить, не настроен ли на вашем сайте (или у партнёра) такой поисковый индекс, прежде чем блокировать бота как постороннего.

6 мин

Проверьте защиту своего сайта

Подключение занимает несколько минут. Начните с анализа трафика и включайте блокировки после проверки логов.