Блог BearPass

Установка BearPass на Astra Linux в Docker: пошаговое руководство

Implementacija BearPass u Astra Linuxu putem Dockera
Важная информация перед установкой Bearpass

Для нативной установки требуются PHP 8.4 и Nginx (в репозиториях Astra Linux отсутствуют), поэтому рекомендуется установка в Docker-контейнерах.

Для нативной установки выполните шаги, описанные в данном разделе.
IP сервера Bearpass должен быть статическим и доступным из сети клиентов.
В данной инструкции предполагается, что сервер Bearpass будет иметь адрес 192.168.121.180 , а имя хоста bearpass.ald.company.lan .
Имя и адрес контроллера домена ALD Pro dc-1.ald.company.lan: 192.168.121.10.
При необходимости измените эти параметры в инструкции на актуальные.

Необходимо установить:

Выполните установку:
sudo apt update
sudo apt-get install docker.io git -y -q

Пользователь

Важно

Крайне не рекомендуем использовать root в качестве пользователя, запускающего приложение.
Для обеспечения дополнительной безопасности ваших паролей, рекомендуем создать отдельного пользователя для парольного менеджера BearPass.
# создайте пользователя и задайте пароль
sudo adduser bearpass
# добавьте пользователя в группу docker
sudo usermod -aG docker bearpass
# создайте папку для докер проекта и дайте права
mkdir -p /opt/bearpass
chown bearpass /opt/bearpass
# авторизуйтесь под пользователем, дальнейшие действия будут выполняться от его имени
login bearpass

Подготовка среды для установки

Cклонируйте репозитории Bearpass:
git clone https://git.bearpass.ru/bear-pass /opt/bearpass/app
git clone https://github.com/BearPass/Docker-core.git /opt/bearpass/docker
Скопируйте файл конфигурации .env.example в .env:
cd /opt/bearpass/docker
cp .env.example .env
Отредактируйте конфигурационный файл .env:

  • DATABASE_PASSWORD — пароль для создаваемой БД
  • USER_ID и GROUP_ID — идентификаторы пользователя bearpass и его группы
  • BEARPASS_PORT и BEARPASS_SSL_PORT — порты приложения
  • BEARPASS_FULL_URL — URL, по которому открывается приложение
Для просмотра UID/GID используйте:
id
# пример вывода
uid=1005(bearpass) gid=1005(bearpass)
группы=1005(bearpass),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),100(users)
Пример заполнения .env:
cat > .env << EOF
DATABASE_PASSWORD=bear_PaCCw0rd
BEARPASS_URL=localhost
BEARPASS_PORT=80
BEARPASS_SSL_PORT=443
BEARPASS_FULL_URL=https://localhost
USER_ID=$(id -u bearpass)
GROUP_ID=$(id -g bearpass)
EOF
Установите плагин Docker Compose (если не установлен ранее):
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL
https://github.com/docker/compose/releases/download/v5.0.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
Запустите Docker-окружение Bearpass (находясь в папке /opt/bearpass/docker ):
docker compose up -d
Будут скачаны необходимые образы и запущены контейнеры в фоновом режиме.

Для проверки работоспособности системы выполните:
./bearpass main:health-check
Команду необходимо выполнять из каталога /opt/bearpass/docker .

Создание первого администратора

После первого запуска приложение установит зависимости. Убедитесь, что веб-интерфейс открывается, затем создайте администратора:
./bearpass make:user
Пример вывода:
./bearpass make:user

Введите имя:
> bearadmin

Введите фамилию:
> admin

Введите email (используется для входа):
> bearadmin@ald.company.lan

Введите пароль (минимум 8 символов):
>

Создан новый пользователь `bearadmin admin (bearadmin@ald.company.lan)` с ролью
`admin`
Теперь можно авторизоваться по адресу http://192.168.121.180/

Для входа используйте email (не имя пользователя) и пароль, указанные при создании администратора.

Настройка SSL

Для полноценной работы требуется HTTPS. Необходимо выпустить SSL-сертификат одним из способов:
  • Let’s Encrypt - простой и бесплатный способ получить сертификат через https://certbot.eff.org/
  • Приобрести сертификат у любого из многочисленных Удостоверяющих Центров
  • Если по каким-то причинам нельзя получить доверенный сертификат - можно сгенерировать самоподписанный командой
Команда генерации самоподписанного сертификата:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout nginx.key -out nginx.crt
При необходимости задайте в интерактивном режиме актуальные значения, либо можно оставить поля пустыми.
CERT_DIR=/opt/bearpass/docker/nginx/ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-keyout $CERT_DIR/nginx.key -out $CERT_DIR/nginx.crt
Пример вывода с пустым вводом:
..+...+.......+.....+......+.......+..+.............+......+..+....+......+...+.....
+.+.....+.+..+...............+.+.........+..+.+..+...+...+.+...+...+...+...........
+...+...+.......+......+.....+....+...+.....+.........+...+............+...+......+.
+...+..+...+......+.+...+......+.........+...+..+...+............++++++++++++++++++
+++++++++++++++++++++++++++*.......+....+..+...+......+...+.+..+....+........
+..........+.....+.+......+.....+.........+.+.....+.........+.+...+...+........
+..........
...........+.+..+.+..+++++++++++++++++++++++++++++++++++++++++++++*.+.....
+...............+..........+...+......+...+......+............+.........+......
+.............
..........+....+...+..+...+........................+.+..+.+.........+...........+.
+...+...+..+............+.........+..........+..+...+............+....+...
+..........
........+............+.....+......................+.............................
+......+...+...+...+......+......+...+......+.+............+........+....+...+.....
+.+.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Подключение сертификата (Docker)

Поместите сертификат и ключ в каталог /opt/bearpass/docker/nginx/ssl В файле /opt/bearpass/docker/nginx/conf/conf.d/app.conf выполните изменения:
  1. Удалите строку listen 443;
  2. Раскомментируйте строки SSL и укажите имена файлов сертифкатов:
listen 443 default_server ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;

Настройка редиректа

Для редиректа HTTP → HTTPS замените блок server с listen 80 :
server {
listen 80;
server_name bearpass.company.local;
return 301 https://$server_name$request_uri;
}
пример итогового файла app.conf
upstream bp_fastcgi_backend {
server app:9000;
}
server {
server_name ${SITE_URL};
listen 80;
return 301 https://$server_name$request_uri;
}
server {
server_name ${SITE_URL};
listen 443 default_server ssl;
set $BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
}

Настройка Nginx для SSL

Данной командой можно применить настройки для работы Bearpass с SSL описанные выше.
# предварительно можно создать резервную копию файла app.conf
cp /opt/bearpass/docker/nginx/conf/conf.d/app.conf /opt/bearpass/app.conf.bak
cat > /opt/bearpass/docker/nginx/conf/conf.d/app.conf <<EOF
upstream bp_fastcgi_backend {
server app:9000;
}
server {
server_name \${SITE_URL};
listen 80;
return 301 https://\$server_name\$request_uri;
}
server {
server_name \${SITE_URL};
listen 443 default_server ssl;
set \$BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
}
EOF
Перезапустите контейнеры для применения изменений.
docker compose restart
Если что-то не получилось

Если в процессе установки или настройки BearPass на Astra Linux возникли сложности — не тратьте время на разбор в одиночку.

Наша команда поддержки поможет:
  • проверить корректность установки и конфигурации Docker-окружения
  • разобраться с ошибками запуска контейнеров
  • помочь с настройкой SSL, домена и сетевого доступа
  • подсказать оптимальную схему развёртывания под вашу инфраструктуру
  • ответить на вопросы по интеграции с ALD Pro и корпоративным контуром

Обратитесь в чат поддержки BearPass — специалисты подключатся и помогут довести установку до рабочего состояния.

Если вы внедряете BearPass в продуктивной среде или в защищённом контуре — мы также можем помочь с пилотным запуском и первичной настройкой под требования вашей организации.
Рекомендуем к прочтению
Служба каталогов MULTIDIRECTORY и менеджер паролей BearPass совместимы
Служба каталогов MULTIDIRECTORY совместима и корректно работает с менеджером паролей BearPass
Модуль «Правила»: автоматизация сценариев безопасности в BearPass
В BearPass появился модуль «Правила» — инструмент автоматизации сценариев безопасности. Настройка уведомлений, запрета действий, условий, триггеров и регулярных выражений для контроля хранения и использования данных.
Переезд с Passwork в BearPass — без ручной миграции
Автоматизированный переезд с Passwork в BearPass: перенос пользователей, групп, ролей, прав доступа, структуры папок и LDAP без ручной настройки. Полная миграция корпоративного менеджера паролей.
Блог BearPass
В блоге BearPass пишем о защите корпоративных доступов, управлении паролями и секретами, импортонезависимых решениях и построении безопасной ИТ-инфраструктуры.
Экспертиза Интеграции