Использование защиты от киберугроз крайне важно в современном цифровом мире. Киберпреступность становится все более изощренной и масштабной, а последствия успешных атак могут быть катастрофическими для бизнеса, частных лиц и даже государственных учреждений.
BitNinja — это универсальный инструмент защиты серверов и сайтов от таких угроз, как бот-атаки, DoS, brute force, спам и другие виды кибератак, ориентированный на хостинг-провайдеров, владельцев серверов и администраторов, заинтересованных в повышении безопасности своих ресурсов.
В этой статье мы рассмотрим процесс ручной установки BitNinja на сервер, а также расскажем про работу с этим инструментом из командной строки.
Требования к серверу
При установке и работе BitNinja использует ресурсы сервера, поэтому перед установкой важно убедиться, что их хватает. Разработчики рекомендуют иметь не менее:
1 Гб свободной оперативной памяти (RAM),
1 свободного ядра процессора (CPU),
1 Гб на устройстве хранения, диске (ROM),
доступ в интернет.
Поддерживаемые операционные системы:
CentOS 7 и выше 64 bit,
CloudLinux 7 и выше 64 bit,
Debian 8 и выше 64 bit,
Ubuntu 16.04 и выше 64 bit,
RedHat 7 and up 64 bit,
AlmaLinux 8 64 bit,
VzLinux 7 and up 64 bit,
Rocky Linux 8 64 bit,
Amazon Linux 2 64 bit.
Ограничения: BitNinja не поддерживает архитектуру ARM и может некорректно работать при нехватке ресурсов.
Ручная установка на сервер
BitNinja требует для установки и работы ключ лицензии, поэтому перед тем, как начать установку, убедитесь в том, что он у вас есть. Мы рассмотрим два варианта установки на сервер — с панелью ispmanager и через командную строку.
С ispmanager
Для установки BitNinja зайдите в панель управления под пользователем root, найдите вкладку Модули и установите одноименный модуль. Перед установкой потребуется указать ключ лицензии.

Если нужный раздел не отображается в левой колонке, воспользуйтесь поиском или перейдите на вкладку Все разделы.
После установки вы сможете переходить в личный кабинет BitNinja прямо из панели. Подробнее про установку модуля — в документации панели.
Без панели через ssh
Установка также возможна вручную на сервер без панели управления, с использованием командной строки. Для этого необходимо зайти по ssh на сервер и запустить команду-однострочник:
curl https://get.bitninja.io/install.sh | sudo /bin/bash -s - --license_key=License_Key_here_1234
где License_Key_here_1234
— ваш лицензионный ключ.
Также допускается установка из пакетов rpm или из официальных репозиториев. С этими методами можете ознакомиться на странице руководства по установке в документации BitNinja .
Работа с BitNinja через командную строку
После установки BitNinja всё управление может осуществляться двумя способами:
- через инструмент командной строки
bitninjacli
на сервере, - или панель администратора. О том, как работать с BitNinja через личный кабинет, мы рассказали здесь.
А сейчас остановимся подробнее на том, как управлять BitNinja из командной строки с помощью инструмента bitninjacli
. Он позволяет отследить статус работы системы и управлять модулями — запускать, настраивать и останавливать. Это может быть полезно в случае, если у вас отсутствует доступ к веб-интерфейсу BitNinja или вам нужна краткая информация по работе системы. Все команды, которые будут приведены далее, должны выполняться на целевом сервере при подключении по ssh.
Чтобы посмотреть список всех модулей, которые находятся в работе на сервере, воспользуйтесь командой:
bitninjacli --status-all
Вывод этой команды довольно объёмный и, если вам необходимо посмотреть только, какие модули находятся в работе, помогут следующие команды:
bitninjacli --status-all | egrep -B1 'ed": true|ed": 1' # active
bitninjacli --status-all | egrep -B1 'ed": 0' # no active
Чтобы вывести всю конфигурацию, которая используются BitNinja сейчас, выполните следующую команду:
bitninjacli --dump-all-configs
Команда с опцией - -dump-all-configs
выводит очень много параметров в формате json, поэтому найти нужное может быть сложно, и для уменьшения количества строк в выводе команды лучше всего использовать утилиты grep
или jq
.
Если вам нужно просмотреть определённое значение из конфигурации, то используйте совместно с grep
. Например:
bitninjacli --dump-all-configs | grep -i 'string_search'
Также можно вывести основные параметры работы через jq
, например, так:
bitninjacli --dump-all-configs | jq '.Main.general'
Перед использованием предыдущей команды необходимо установить утилиту jq
.

Для просмотра общей статистики по работе BitNinja на сервере используйте следующий синтаксис:
bitninjacli --stats
Вам будет показано общее количество заблокированных ip для каждого списка в ipset, количество инцидентов и размер каталога с файлами, помещенными в карантин по результатам работы MalwareDetection.

Вы можете управлять модулями прямо из командной строки, то есть запускать/останавливать/включать/выключать/просматривать конфигурацию и так далее. Общий синтаксис следующий:
bitninjacli --module=<ModuleName> --reload| --stop| --start| --enable| --restart| --status| --regenerate| --show-config
Например, мы хотим получить информацию по работе модуля MalwareDetection и его настройкам — это можно сделать так:
bitninjacli --module=MalwareDetection --status
bitninjacli --module=MalwareDetection --show-config

Доступно управление ip-адресами — можно добавлять, удалять и проверять вхождения в чёрные и белые списки. Общий синтаксис команды:
bitninjacli --whitelist| --blacklist| --greylist --add| --del| --check=ip
А так можно проверить, находится ли ip 10.10.10.1 в чёрном списке bitninja:
bitninjacli --blacklist --check=10.10.10.1
Добавляем и удаляем в чёрный список так:
bitninjacli --blacklist --add=1.2.3.4
bitninjacli --blacklist --del=1.2.3.4

Работа с белым списком осуществляется аналогично:
bitninjacli --whitelist --add=1.2.3.4
bitninjacli --whitelist --check=1.2.3.4
bitninjacli --whitelist --del=1.2.3.4
Также с помощью цикла bash можно добавлять множество ip в белый или чёрный списки, по заранее подготовленным спискам ip-адресов:
for ip in $(cat /tmp/ip.list); do bitninjacli --whitelist --add=$ip;done
где /tmp/ip.list
— список ip в виде файла на сервере.
Удалять по списку можно точно таким же образом:
for ip in $(cat /tmp/ip.list); do bitninjacli --whitelist --del=$ip;done

Систему можно сканировать на вирусы не целиком, а, например, только отдельные каталоги или файлы:
bitninjacli --module=MalwareDetection --check-file=<value>
bitninjacli --module=MalwareDetection --scan=/path/to/dir/ [--dryrun]
В случае использования дополнительного ключа --dryrun
подозрительные файлы, обнаруженные на этапе сканирования, не будут перемещены в карантин или очищены.
Мы привели лишь небольшой список команд с примерами использования bitninjacli
в командной строке. Конечно, он далеко не полный. Эти и другие полезные команды для работы с cli можно найти в базе знаний BitNinja или с помощью help
:
bitninjacli --help

В ходе работы может быть сложно просматривать правила firewall, поскольку BitNinja активно использует iptables и наборы ipset (правила становятся громоздкими и неудобными для восприятия), но можно упростить задачу, отделив часть строк при выводе правил следующим образом:
iptables-save | egrep -v "BitNinja_Rule|BN|HEIMDALL"

Если вам нужно, наоборот, посмотреть только правила, которые добавил BitNinja, то просто уберите параметр -v:
iptables-save | egrep "BitNinja_Rule|BN|HEIMDALL"
И в выводе останутся лишь нужные правила.
При работе модуля PortHoneypot на сервере создаётся много активных портов, ожидающих соединения. Это может мешать поиску нужных служб при просмотре портов сервера — в выводе также можно отсечь всё лишнее:
ss -ntulp | grep -v bitninja
Логирование событий: где и что можно посмотреть
Если у вас возникают проблемы в работе системы, то можно воспользоваться журналами, которые она предоставляет. При установке по умолчанию они находятся каталоге /var/log/bitninja*
на сервере.
Если на момент установки на сервере присутствует служба logrotate
, то сразу — автоматически — настраивается ротация журналов. Например, можно посмотреть список конкретных журналов, участвующих в ротации, через команду:
cat /var/lib/logrotate/status | grep bitninja| cut -d ' ' -f1

Из списка выше отлично видно, что наименование журналов разбито по отдельным файлам и модулям, поэтому ориентироваться и искать информацию при проблемах или отладке довольно удобно. Поиск можно выполнять через утилиту grep
, а просмотр — через tail
.
Посмотреть полный список логов можно через утилиту ls
:
ls -la /var/log/bitninja/*.log
В личном кабинете admin.bitninja.io можно просматривать и логи системы. Чтобы увидеть логи по конкретному серверу, зайдите в раздел Серверы (SERVERS) и выберите нужный сервер. Подробнее рассказали в этой статье.
В статье мы рассмотрели ручную установку BitNinja и работу с утилитой bitninjacli
. Надеемся, что эта инструкция поможет вам сделать вашу работу с BitNinja более удобной и простой.
Дополнительная информация о работе с системой доступна в её документации и базе знаний.