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 в продуктивной среде или в защищённом контуре — мы также можем помочь с пилотным запуском и первичной настройкой под требования вашей организации.

Рекомендуем к прочтению