Установка на двух серверах¶
Способ предназначен для рабочих сред и подразумевает разделение служб системы между двумя серверами:
Staffcop Enterprise, NFS-сервер. На сервере включается механизм присвоения конфигурации rustSrv.
Файловый сканер, NFS-клиент и база данных файлового сканера в PostgreSQL.
Внимание
Перед установкой ознакомьтесь с требованиями к системе.
Настройка сервера Staffcop¶
Перед настройкой установите сервер Staffcop Enterprise с лицензией файлового сервера.
Ссылка на дистрибутив Staffcop
Активация rustSrv и параметра FILE_TAG_MANAGER¶
Файловый сканер взаимодействует с rustSrv — механизмом присвоения конфигурации. Вы могли включить его раньше.
Проверьте статус rustSrv:
staffcop info | grep RustSrvПри активном статусе вывод:
RustrSrv = True.
Активируйте rustSrv, если он выключен:
sudo staffcop enable rustsrv
Установите флаг FILE_TAG_MANAGER в конфигурации Staffcop:
sudo sh -c 'echo "FILE_TAG_MANAGER = True" >> /etc/staffcop/config'
Укажите путь к локальной папке спуллера для файлового сканера:
echo "SPOOLER_SCANNER_PATH = \"/var/lib/etl/scanner_queue\"" | sudo tee -a /etc/staffcop/configПримечание
Не пропускайте этот шаг. Если путь к локальной папке не указать, модуль ETL может не найти очередь заданий сканера. Это приведет к сбою в извлечении и передаче данных для сканирования.
Перезапустите службы Staffcop для применения изменений:
sudo staffcop restart
Настройка общей файловой системы (NFS)¶
NFS используется для передачи файлов из Staffcop в файловый сканер для анализа. Staffcop помещает файлы в общую папку на NFS-сервере, а файловый сканер забирает их для сканирования.
Установите NFS-сервер:
sudo apt update && sudo apt install nfs-kernel-server -y
Узнайте UID/GID пользователя staffcop:
id staffcop # Пример вывода: uid=116(staffcop) gid=119(staffcop).Внимание
Важно, чтобы UID/GID пользователя Staffcop совпадали на обоих серверах.
Создайте и настройте каталог спуллера.
sudo mkdir -p /var/lib/etl/scanner_queue sudo chown 116:119 /var/lib/etl/scanner_queue # Используйте ВАШИ значения uid:gid из п.2! sudo chmod 775 /var/lib/etl/scanner_queue
Настройте экспорт папки для сервера файлового сканера:
echo "/var/lib/etl/scanner_queue <IP_Сервера_с_БД_ФС_и_ФС>(rw,sync,no_subtree_check,all_squash,anonuid=<uid п.№2>,anongid=<gid п.№2>)" | sudo tee -a /etc/exports
Примените настройки и перезапустите службу:
sudo exportfs -ra sudo systemctl restart nfs-kernel-server
Настройка сервера базы данных и файлового сканера¶
Настройка зависит от программного обеспечения на сервере:
Установка PostgreSQL
Добавьте репозиторий PostgreSQL:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Установите выбранную версию, например, 15:
sudo apt update sudo apt -y --no-install-recommends install postgresql-15
Далее все команды адаптированы под версию 15. Подставьте вместо
15номер вашей версии.Для базовой настройки разрешите подключения:
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /etc/postgresql/15/main/postgresql.conf
Увеличьте лимит соединений:
sudo sed -i 's/max_connections = .*/max_connections = 500/' /etc/postgresql/15/main/postgresql.conf
Установите пакет локализации:
sudo locale-gen ru_RU.UTF-8
Перезапустите службы для применения изменений:
sudo systemctl restart postgresql@15-main
Создание пользователя и базы данных
Подключитесь к БД:
sudo -u postgres psql
Создайте пользователя:
CREATE USER file_scanner WITH PASSWORD 'ваш_сложный_пароль';
Создайте базу данных:
CREATE DATABASE file_scanner WITH OWNER = file_scanner TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';
Предоставьте пользователю право создавать базы данных:
ALTER USER file_scanner CREATEDB;
Выйдите из консоли PostgreSQL:
\q
Настройка доступа для пользователя
Настройте доступ для пользователя
file_scanner. Откройте файл pg_hba.conf:sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавьте в файл строку для доступа из локального интерфейса:
host file_scanner file_scanner samenet md5
Перезапустите PostgreSQL:
sudo systemctl restart postgresql@15-main
Установка PostgreSQL
Опасно
Только для Astra Linux Smolensk. Для корректной работы PostgreSQL потребуется изменение конфигурации, которое полностью отключит Мандатное Разграничение Доступа (МРД) для базы данных. Изменение связано с архитектурными особенностями Astra Linux Smolensk. Без этого шага файловый сканер работать не будет.
Установите выбранную версиюPostgreSQL, например, 15:
sudo apt update sudo apt install -y postgresql
Далее все команды адаптированы под версию 15. Подставьте вместо
15номер вашей версии.Для базовой настройки разрешите подключения:
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /etc/postgresql/15/main/postgresql.conf
Увеличьте лимит соединений:
sudo sed -i 's/max_connections = .*/max_connections = 500/' /etc/postgresql/15/main/postgresql.conf
Только для Astra Linux Smolensk. Откройте файл postgresql.conf:
sudo nano /etc/postgresql/15/main/postgresql.conf
Добавьте в конце файла:
ac_ignore_maclabel = trueОпасно
Параметр обязателен для работы, но полностью отключает Мандатное Разграничение Доступа (МРД) для всей базы данных из-за архитектурных ограничений Astra Linux Smolensk. Используйте, только если понимаете риски.
Установите пакет локализации:
sudo locale-gen ru_RU.UTF-8
Перезапустите службы для применения изменений:
sudo systemctl restart postgresql@15-main
Создание пользователя и базы данных
Подключитесь к БД:
sudo -u postgres psql
Создайте пользователя:
CREATE USER file_scanner WITH PASSWORD 'ваш_сложный_пароль';
Создайте базу данных:
CREATE DATABASE file_scanner WITH OWNER = file_scanner TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';
Предоставьте пользователю право создавать базы данных:
ALTER USER file_scanner CREATEDB;
Выйдите из консоли PostgreSQL:
\q
Настройка доступа для пользователя
Настройте доступ для пользователя
file_scanner. Откройте файл pg_hba.conf:sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавьте в файл строки для доступа из локального интерфейса:
local all file_scanner md5 host file_scanner file_scanner 0.0.0.0/0 md5
В разделе
# IPv4 local connectionsизмените#host all all 127.0.0.1/32 scram-sha-256наhost all all 0.0.0.0/0 scram-sha-256Перезапустите PostgreSQL:
sudo systemctl restart postgresql@15-main
Установка файлового сканера¶
Скачайте из репозитория сборок актуальный для вашей ОС deb-пакет. Для Ubuntu 22.04:
wget http://distr.staffcop.su/file-scanner/ubuntu-22.04/file-scanner.debAstra Linux 1.8:
curl -O http://distr.staffcop.su/file-scanner/astra-1.8/file-scanner-0.1.1-3-astra-1.8.deb
Установите пакет:
sudo apt install ./file-scanner.deb
Во время установки интерактивный скрипт запросит параметры подключения к базе данных. Введите следующие значения:
Database name — название базы данных файлового сканера;
Database user — имя пользователя базы данных файлового сканера;
Database password — пароль, заданный при создании пользователя файлового сканера;
Database host — IP-адрес сервера БД;
Database port — 5432 — стандартный порт PostgreSQL.
Инициализация словарей tsearch¶
При распределенной установке файловый сканер использует выделенную базу данных PostgreSQL. В отличие от основной базы Staffcop, она не содержит словарей для корректной обработки текста на русском языке. Установите словари самостоятельно.
Словари поставляются в составе пакета файлового сканера. Скопируйте их в системный каталог PostgreSQL:
# Для PostgreSQL 15. Укажите вашу версию (13, 14). sudo cp -r --target-directory="/usr/share/postgresql/15/tsearch_data" /usr/share/file-scanner/assets/postgresql/ispell/*
Инициализация сканера¶
Выполните инициализацию:
sudo file-scanner init
Проверка работы сканера¶
Проверьте состояние службы:
sudo systemctl status file-scanner
Статус должен быть active.
Установка и настройка NFS-клиента¶
Установите NFS-клиент:
sudo apt update && sudo apt install nfs-common -y
Создайте точку монтирования:
sudo mkdir -p /var/lib/etl/scanner_queue sudo chmod 775 /var/lib/etl/scanner_queue
Настройте автоматическое монтирование при загрузке. Для Ubuntu:
echo "<IP_Staffcop>:/var/lib/etl/scanner_queue /var/lib/etl/scanner_queue nfs defaults 0 0" | sudo tee -a /etc/fstabгде
<IP_Staffcop>— адрес NFS-сервера.Для Astra Linux:
echo -e "\n<IP_Staffcop>:/var/lib/etl/scanner_queue /var/lib/etl/scanner_queue nfs defaults 0 0" | sudo tee -a /etc/fstabгде
<IP_Staffcop>— адрес NFS-сервера.
Смонтируйте папку:
sudo mount -a
Проверьте монтирование:
mount | grep etlДолжна отобразиться смонтированная NFS-папка.
Добавьте строку
SPOOLER_SCANNER_PATH = "/var/lib/etl/scanner_queue"в файл конфигурации:
sudo nano /etc/file-scanner/config
Перезапустите файловый сканер:
sudo systemctl restart file-scanner
Финальная настройка серверов¶
Завершить установку можно в любое время после установки файлового сканера.
Получение токена API из Staffcop¶
Войдите в веб-интерфейс Staffcop Enterprise под администратором.
Перейдите в раздел Администрирование → Параметры сервера.
Найдите параметр API_TOKEN для файлового сканера, скопируйте и сохраните его значение.
Вставка токена в конфигурацию файлового сканера¶
Откройте файл конфигурации файлового сканера:
sudo nano /etc/file-scanner/config
Найдите строку
API_TOKEN = ""и впишите скопированный токен между кавычек:
API_TOKEN = "СКОПИРОВАННЫЙ_ТОКЕН"
Сохраните изменения Ctrl+O, Enter и выйдите Ctrl+X.
Перезапустите службу файлового сканера:
sudo systemctl restart file-scanner
Указание URL Файлового сканера в Staffcop¶
Вернитесь в веб-интерфейс Staffcop.
Перейдите в раздел Администрирование → Параметры сервера.
Найдите поле URL Файлового сканера
Введите полный HTTP-адрес вашего сервера файлового сканера в формате
http://<IP_Сервера_с_БД_ФС_и_ФС>:8081.Нажмите Сохранить.
Проверка работоспособности¶
Убедитесь, что все ключевые службы работают:
На сервере Staffcop:
staffcop info | grep RustSrvУбедитесь, что
rustSrv= True.
На сервере файлового сканера:
sudo systemctl status file-scanner
Если служба находится в состоянии active (running), установка и первоначальная настройка файлового сканера завершены успешно.
Опционально. Защита канала передачи данных (NFS)¶
Для защиты передаваемых данных вы можете настроить шифрование трафика NFS с помощью IPsec.
Последнее обновление: 16.12.25