Защита сайта через экран KillBot на своём Ubuntu сервере

Если вы хотите развернуть KillBot на своем сервере, потребуется:

  1. Свой VPS - рекомендую 2CPU, 2GB оперативной памяти и 10 Gb диск. Если трафика много, то диск можно взять больше - чтобы логи память не забили.

  2. Операционная система: Ubuntu 22.04

  3. Скачать установочный шел скрипт и запустить его на своем сервере (https://data.kill-bot.net/killbot_dns/kb_install.sh).

Для начальной установки в терминале ubuntu выполните эти команды:

sudo apt update
apt-get install wget
wget https://msk.killbot.ru/killbot_dns/kb_install.sh -O kb_install.sh
chmod +x kb_install.sh
yes '' | sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a ./kb_install.sh

Все, после этого будут скачаны файлы нужные для работы KillBot и создадутся конфигурационные файлы apache2.

Чтобы обновить Килбот нужно просто зайти на сервер килбота выполнить эту команду:

sudo /opt/killbot/UpdateAll.sh

После установки килбота дальнейшая конфигурация на сайте killbot.ru

Т.е. Килбот достаточно только установить на сервер, дальше сервер можно закрыть и забыть про него. Далее просто в личном кабинете килбот нужно прописать IP своего сервера килбота и сайт сам будет к нему цепляться:

прописываем IP сервера килбота в настройках

Если вы хотите интегрировать килбота в свои алгоритмы, что-то доработать

То ниже инструкции о структуре файлов, командная строка для работы с килботом - все это читайте ниже.

Размещение файлов KillBot

Шел скрипт килбота kb_install.sh конфигурирует nginx+apache2 для работы в режиме реверс-прокси и установит letsencript сертификаты для поддержания закрытого https соединения. Т.е. А запись вашего сайта должна указывать на ваш сервер KillBot, а KillBot будет проксировать запросы на сервер вашего сайта, только если страница верификации пройдена.

KillBot размещает свои вспомогательные файлы в каталоге /opt/killbot.

Основные файлы:

  • Страница верификации: /opt/killbot/html/verification.php (можно изменять, но важно ничего не сломать).

  • Антиддос L7: /opt/killbot/f2b/subnet-monitor.sh (мониторит лог nginx и автоматически добавляет диапазоны IP адресов в бан, если в минуту с одного диапазона более 1500 запросов). Работает очень хорошо, валидными http запросами с этим скриптом завалить сайт сложно. Конфигурацию можно редактировать здесь: /opt/killbot/f2b/subnet-monitor.sh  , белый список IP (какие не банить) здесь: /opt/killbot/f2b/subnet-monitor-whitelist.conf

  • Блокировка всех стран кроме разрешенных: /opt/killbot/f2b/block_all_countries_exept.sh. Конфигурацию можно редактировать здесь: /opt/killbot/f2b/block_all_countries_exept.config

Если нужно на свой сервер поместить свой SSL сертифкат:

  • В настройках домена нужно выставить "Выпустить Let's encrypt сертифкат"="нет"
  • Свои файлы сертификата нужно поместить в директорию: /opt/killbot/ssl/domain.com/. Тут domain.com замените на имя вашего домена и эту папку нужно создать 
  • В папку нужно поместить два файла сертификата: цепочка сертификатов и приватный ключ. При этом файлы сертификатов должны называться фиксировано:
    /opt/killbot/ssl/domain.ru/privkey.pem
    /opt/killbot/ssl/domain.ru/fullchain.pem
    файлы сертификатов на сервере килбот

  • После загрузки своих сертификатов на сервер нужно нажать Reload DNS в настройках проекта на killbot.ru чтобы изменения применились.

Перед подключением экрана KillBot к вашему домену нужно:

  1. Изменить А запись домена на IP вашего сервера KillBot
  2. Удалить АААА запись, так как KillBot на текущий момент не работает с ipv6

Подключение сайта к экрану KillBot

Подключать сайты к серверу нужно только через интерфейс сайта KillBot.ru. Так нужно прописать IP сервера на каком развернут килбот. Далее, когда сайт подключен Килбот создает конфигурационные файлы Nginx и Apache которые подключат экран килбот и будут проксировать трафик на ваш сайт:

  • /etc/apache2/sites-available/domain-killbot.conf — конфигурация с подключенным экраном KillBot - весь трафик сайта проходит и анализируется сервером KillBot.

  • /etc/apache2/sites-available/domain.conf — конфигурация реверс-прокси без KillBot - трафик полностью пропускается через сервер KillBot, но без проверки. Это если экран килбот нужно отключить.

ВНИМАНИЕ!!!

Экран KillBot можно подключить к сайту только после того, как IP-адрес подключаемого домена уже разрешается (резолвится) на сервер KillBot. До этого момента выпуск SSL-сертификата от Let's Encrypt невозможен.

Поэтому после изменения A-записи домена на IP-адрес сервера KillBot необходимо подождать, пока обновление DNS вступит в силу. Обычно это занимает от 5 до 30 минут.

Управление экраном KillBot

Командами ниже можно включать и отключать экран килбот прямо на сервере для каждого подключенного домена. Domain.com замените на домен вашего сайта:

  • Включить экран KillBot:

    sudo kb ensite domain.com
  • Отключить KillBot (трафик просто будет проходить через сервер KillBot без проверки):

    sudo kb dissite domain.com
  • Перезапустить сервер apache2 c экраном KillBot

    sudo kb reload