Архитектура и системные требования / Работа ELMA365 с антивирусным ПО

Работа ELMA365 с антивирусным ПО

В статье приводится описание ключевых аспектов настройки файерволла и правильного размещения приложения и СУБД, которые обеспечивают максимальную производительность и безопасность работы системы ELMA365.

ELMA365 является микросервисным решением, использующим технологии Golang, NodeJS, Angular, PostgreSQL, MongoDB, RabbitMQ, Redis, Docker, Kubernetes и S3 MinIO протокола для хранения файлов. Расположение приложения и СУБД в DMZ (Demilitarized Zone — демилитаризованная зона) и контроль трафика с помощью файерволла обеспечат безопасность работы системы ELMA365.

elma365-with-antivirus

Антивирусы могут замедлять работу приложения ELMA365, так как производят проверку трафика между контейнерами и базой данных, а также сканируют файлы и кэшируют информацию в памяти. Проверка читаемых файлов СУБД не предполагает наличия вредоносного кода, поэтому эта процедура не приносит пользы и замедляет работу приложения.

Приложение ELMA365 и СУБД взаимодействуют посредством определённых портов. Проверка трафика через эти порты может также замедлять работу, так как приложение активно взаимодействует с СУБД. При этом антивирус проверяет каждое сообщение, отправленное между приложением и СУБД, не пересылая его напрямую.

Рекомендуется устанавливать антивирус на обратном прокси на границе DMZ. Это позволит избежать автоматической проверки трафика между приложением и СУБД, а также максимально ускорить и обезопасить работу системы.

Если несмотря на приведённые рекомендации вам необходимо установить антивирус, в исключения для версий KinD и Microk8s портов 443 и 80 для взаимодействия с пользователем нужно добавить следующие внутренние порты:

  • для взаимодействия с БД: 5432, 27017, 6379, 5672, 9000;
  • для взаимодействия с сервисами: 33349, 10248, 25000, 10249, 9099, 10251, 10252, 10256, 19001, 1338, 6010, 33955, 10250, 10255, 10257, 10259, 16443.

Также в исключения необходимо внести директории /opt/elma365/ и /var/lib/docker/overlay2/, а также следующие БД и процессы:

Базы данных приложения ELMA365:

  • /opt/bitnami/postgresql/bin/postgres;
  • /opt/bitnami/mongodb/bin/mongod;
  • /opt/bitnami/mongodb/bin/mongo;
  • redis-server;
  • /opt/bitnami/redis/bin/redis-server;
  • /opt/bitnami/erlang/lib/erlang/erts-12.3.1/bin/beam.smp;
  • /opt/bitnami/rabbitmq/sbin/rabbitmq-server;
  • minio;
  • /opt/bitnami/minio/bin/minio server.

Процессы приложения ELMA365:

  • /bin/sh;
  • /coredns;
  • /hostpath-provisioner;
  • /nginx-ingress-controller;
  • /opt/bitnami/erlang/lib/erlang/erts-12.3.1/bin/epmd;
  • /sbin/dinit;
  • /snap/microk8s/3410/bin/containerd;
  • /snap/microk8s/3410/bin/containerd-shim-runc-v1;
  • /snap/microk8s/3410/kubelite;
  • /srv/elma365ctl-server;
  • /usr/bin/dumb-init;
  • /usr/bin/kube-controllers;
  • /usr/libexec/git-core/git-daemon;
  • /usr/local/bin/node;
  • /usr/local/bin/runsvdir;
  • calico-node;
  • git daemon;
  • gpg-agent;
  • nginx: cache manager process;
  • nginx: master process;
  • nginx: worker process;
  • runsv;
  • sh;
  • внутренние процессы ELMA365.