О сервере на Google Cloud с поддержкой KillBot
Все запросы на сайт будут проходить через защищенный сервер KillBot. То есть визит бота может быть заблокирован еще до попадания на сайт. Это защитит от воровства телефонов, цен, скликивания смс баланса, сканирования на уязвимости и т.п. По умолчанию будут блокироваться все простые http боты без поддержки JavaScript. Высокоуровневых JS ботов можно будет заблокировать вручную. В личном кабинете на https://killbot.ru можно выставить какой трафик блокировать, какому показывать капчу а какой пропускать без ограничения.
Кроме того можно:
- Фильтровать ботов в Google Ads. Боты из google ads собираются в аудиторию, строится look-alike аудитория и на неё делается корректировка ставок -100% - т.е. ботам вашего сайта и похожим на них не будет показываться реклама
- Защитить сайт от DDoS L7 - быстроработающий экран KillBot по умолчанию не пропускает простых http ботов которые массовыми запросами перегружают сервер и делают сайт не доступным. В реальной жизни достаточно 100-500 одновременных запросов чтобы убить сайт, экран KillBot может дерзать тысячи таких запросов.
- Вносить изменения в KillBot. Так как KillBot развернут на своем сервере , то вы можете полностью управлять трафиком: дописать свой код в страницу верификации килбота: поменять дизайн, интегрировать свою капчу, получать результат проверки на бота в режиме реального времени и использовать это в своих алгоритмах.
Если вы НЕ хотите привязываться к Google Cloud
То как развернуть KillBot на своем сервере Ubuntu написано здесь: https://killbot.ru/node/31
Как создать виртуальную машину на Google Cloud с поддержкой KillBot:
-
В Google Cloud уже загружен образ с поддержкой KillBot - его просто нужно установить.
-
Cоздаем проект (нажимаем на Create Project): https://console.cloud.google.com/cloud-resource-manager

-
Вводим название проекта, например "killbot", и тут же нужно запомнить значение Project Id = killbot-457713 - у вас это значение будет своё:

-
Нужно выбрать созданный проект (сделать его активным). После создания проекта появится нотификация, нажимаем "Select Project":

-
Включаем 'Compute Engine API' (может потребовать ввести платежную информацию): https://console.cloud.google.com/apis/library/compute.googleapis.com

-
Заходим в Cloud Shell Editor: https://console.cloud.google.com/cloudshelleditor (тут нужно убедится что в браузере включены сторонние куки)
-
Нажимаем "Open terminal"

-
Переключаемся на проект killbot в котором будет работать (тут как раз нам понадобился наш Project Id из пункта 3 : killbot-457713), выполянем команду:
gcloud config set project killbot-457713
-
Разворачиваем образ килбота (выполняем три эти командыпоследовательно ):
gsutil cp gs://kill-bot-net-deployments/kill-bot-net-deployment.zip .
unzip kill-bot-net-deployment.zip
gcloud deployment-manager deployments create killbot --config compute.yaml

-
Смотрим на созданную виртуальную машину с предустановленным Killbot. Переходим в инстансы: https://console.cloud.google.com/compute/instances и убеждаемся что там выбран проект KillBot и там развернута виртуальная машина:

-
Подключаем сайты к серверу KllBot через командную строку. Заходим на сервер по SSH и выполняем команды подключения, они расписаны ниже.
Шаги выше развернули образ страницы верификации KillBot на своем сервере.
В вашем Google Cloud, развернулся образ сервера Ubuntu с предустановленным apache2, который сконфигурирован для режима работы в реверс прокси через экран защиты KillBot. При подключении сайта к экрану будет установлен letsencript сертификат для поддержки закрытого https соединения.
Экран защиты KillBot будет перенаправлять тарфик на сервер (хостинг) вашего сайта. Поэтому для подключения вашего сайта к экрану KillBot DNS А запись вашего домена должна указывать на только что развернутый сервер KillBot, и KillBot будет проксировать запросы на сервер вашего сайта, только если страница верификации пройдена.
Размещение файлов KillBot
В образе на Google Cloud файлы KillBot размещены в каталоге /opt/killbot.
Основные файлы:
-
Страница верификации:
/opt/killbot/html/verification.php(можно изменять, но важно ничего не сломать). -
Белый список IP:
/opt/killbot/wl-ip(список IP-адресов, для которых экран KillBot отключен). -
Белый список User-Agent'ов:
/opt/killbot/wl-ua(список user-agent'ов, для которых экран KillBot отключен).
Формат белого списка IP wl-ip:
- Каждый IP адрес с новой строки (файл
/opt/killbot/wl-ip). - Диапазон разрешенных адресов можно задать так: "23.134.45." - эта запись означает, что разрешены визиты с ip которые начинаются с "23.134.45.". То же верно если задать "23.134.".
Формат белого списка UserAgent wl-ua:
- каждая запись с новой строки. (файл
/opt/killbot/wl-ua) - пример: "yandex.bot" - если user-agent содержит строку "yandex" и строку "bot" - то доступ пользователям с этим user agent без ограничений.
Перед подключением экрана KillBot к вашему домену нужно:
- Изменить А запись домена на IP вашего сервера KillBot
- Удалить АААА запись, так как KillBot на текущий момент не работает с ipv6
Подключение сайта к экрану KillBot
Сайты к экрану можно подключать сайты командой kb install. На один сервер можно подключать различное число сайтов.
Пример команды для подключения сайта к экрану:
sudo kb install -e grigoriy.mmelnikov@gmail.com -ip 31.31.198.173 -le 1 -d g-video.ru -t 3Fgewe3Zzn0
В командной строке:
-e: ваш email - на него будет создан аккаунт на killbot.ru - если у вас его нет. если аккаунт на killbot.ru есть - нужно использовать именно его email.
-d: домен сайта который подключается к KillBot
-ip: IP адрес сервера сайта -d
-le: выпустить letsencript сертификат или нет. если сайт за cloudflare, то le=0, иначе le=1 (по умолчанию)
-t: токен для доступа к аккаунту килбот, нужно залогинится на killbot.ru и скопировать токен со страницы: https://killbot.ru/api-key
Эта команда (kb install) создаст конфигурационные файлы Apache которые подключат экран килбот и будут проксировать трафик на ваш сайт:
-
/etc/apache2/sites-available/domain-killbot.conf— конфигурация с подключенным экраном KillBot. -
/etc/apache2/sites-available/domain.conf— конфигурация реверс-прокси без KillBot - если экран килбот нужно отключить.
Вы можете изменять эти конфигурации, но будьте осторожны: повторное выполнение kb install для того же домена перезапишет файлы.
ВНИМАНИЕ!!!
Экран KillBot можно подключить к сайту только после того, как IP-адрес подключаемого домена уже разрешается (резолвится) на сервер KillBot. До этого момента выпуск SSL-сертификата от Let's Encrypt невозможен.
Поэтому после изменения A-записи домена на IP-адрес сервера KillBot необходимо подождать, пока обновление DNS вступит в силу. Обычно это занимает от 5 до 30 минут.
Если ваш сайт уже работает за защитой (например, через Cloudflare), то A-запись домена изменяется непосредственно в настройках Cloudflare. В этом случае выпуск Let's Encrypt сертификата не требуется, и экран KillBot подключается сразу.
Команды подключения сайта к KillBot [Быстрый старт]
- Если у вас нет аккаунта на killbot.ru и подключаемый сайт не подключен к сервису защиты типа CloudFlare, то подключение экрана осуществляется по команде (значения параметров командной строки
-e -t -ip -dзамените на ваши, актуальные):
sudo kb install -e grigoriy.mmelnikov@gmail.com -ip 31.31.198.173 -d g-video.ru
Эта команда создаст аккаунт на killbot.ru (на почту-eпридет письмо с данными для входа на killbot.ru), и сконфигурирует сервер для подключения экрана KillBot к сайту - Если подключаемый к KillBot сайт на CloudFlare или аналоге, то нужно отключить генерацию letsencript сертификата (
-le 0), команда подключения будет такой:
sudo kb install -e grigoriy.mmelnikov@gmail.com -ip 31.31.198.173 -d g-video.ru -le 0
Тутle=0- это значит, что для домена будет выпущен самоподписанный сертификат. letsencript сертификат выпустить нельзя, так как А запись вашего сайта будет отлична от сервера экрана верификации KillBot. - Если у вас уже есть аккаунт на killbot.ru, то для доступа к вашему аккаунту нужно использовать ваш токен
-tсо страницы https://killbot.ru/api-key :
sudo kb install -e grigoriy.mmelnikov@gmail.com -ip 31.31.198.173 -d g-video.ru -t 3Fgerwe3Zzn0
В этом случае скрипт страницы верификации будет создан в вашем существующем аккаунте.
Управление экраном KillBot
Далее можно включать и отключать экран килбот для каждого подключенного домена. domain.com замените на домен вашего сайта:
-
Включить экран KillBot:
sudo kb ensite domain.com -
Отключить KillBot (включится режим полного проксирования всего трафика на сайт без экрана KillBot):
sudo kb dissite domain.com -
Перезапустить сервер apache2 c экраном KillBot
sudo kb reload
Обновление белых списков IP и user-agent
После внесения изменений в /opt/killbot/wl-ip или /opt/killbot/wl-ua, чтобы изменения вступили в силу выполните команду (но с вашими параметрами командной строки):
kb install -e grigoriy.mmelnikov@gmail.com -ip 31.31.198.173 -d g-video.ru
Но! это перезапишет apache2 конфигурацию килбота, поэтому, если вы в ней делали свои изменения, то нужно это учесть.