Перейти к основному содержимому
Это документация для Пассворка версии 6.0, которая больше не поддерживается.

Актуальная документация находится на странице последней версии 7.0.
Версия: 6.0

Debian

к сведению

Инструкция по установке Пассворка на ОС:

  • Debian 11
  • Debian 12

1. Минимальные системные требования

Пассворк не требователен к системным ресурсам, а необходимое количество серверов зависит от числа активных пользователей, объема хранимых данных и требований к отказоустойчивости системы.

Ознакомьтесь с полными системными требованиями.

к сведению

Если сервер имеет 2-4 ГБ ОЗУ, то для корректной сборки всех библиотек мы рекомендуем включить SWAP-файл

Создание SWAP файла на Linux

осторожно

В инструкции используются переключаемые блоки кода для разделения команд согласно версиям операционной системы

2. Базовые действия перед установкой

Получить права root и обновить локальную базу данных пакетов:

sudo -i 
apt-get update

Установить пакет для контроля версий Git, веб-сервер Apache2 и утилиту передачи данных curl:

apt-get install -y git apache2 unzip curl

3. Установка PHP

Установить пакеты для работы с HTTPS-репозиториями:

apt-get install -y apt-transport-https lsb-release ca-certificates

Получить и сохранить GPG-ключ PHP-репозитория:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://repos.passwork.ru/repository/php/apt/debian/apt.gpg

Добавить PHP-репозиторий в список источников apt:

echo "deb https://repos.passwork.ru/repository/php/apt/debian/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

Обновить локальный список пакетов и репозиториев:

apt-get update

Установить PHP и модули расширений:

apt-get install -y php8.2 php8.2-dev php8.2-ldap php8.2-xml php8.2-bcmath php8.2-mbstring php8.2-xml php8.2-curl php8.2-opcache php8.2-readline php8.2-zip php-pear

3.1 Установка драйвера PHP MongoDB

Установить драйвер PHP MongoDB:

pecl install mongodb-1.21.0

Создать файлы конфигурации для загрузки и включения PHP MongoDB:

echo "extension=mongodb.so" | tee /etc/php/8.2/apache2/conf.d/20-mongodb.ini
echo "extension=mongodb.so" | tee /etc/php/8.2/cli/conf.d/20-mongodb.ini

3.2 Установка PHP Phalcon расширения

Установить PHP Phalcon расширение:

mkdir /tmp/install && cd /tmp/install && curl -LOf https://github.com/phalcon/cphalcon/releases/download/v5.3.1/phalcon-php8.2-nts-ubuntu-gcc-x64.zip && unzip phalcon-php8.2-nts-ubuntu-gcc-x64.zip && cp phalcon.so /usr/lib/php/20220829 && cd / && rm -rf /tmp/install

Создать файлы конфигурации для загрузки и включения PHP Phalcon:

echo "extension=phalcon.so" | tee /etc/php/8.2/apache2/conf.d/30-phalcon.ini
echo "extension=phalcon.so" | tee /etc/php/8.2/cli/conf.d/30-phalcon.ini

4. Установка базы данных MongoDB

Загрузить и добавить GPG-ключ MongoDB:

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor

Добавить репозиторий MongoDB в файл:

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Обновить список доступных пакетов:

apt-get update

Установить MongoDB с помощью менеджера пакетов apt:

apt-get install -y mongodb-org

Запустить службу mongod.service:

systemctl start mongod.service

Включить автозапуск службы:

systemctl enable mongod.service

5. Управление и загрузка последней версии Пассворка с помощью Git

Перейти в директорию /var/www/:

cd /var/www/

Добавить глобальную конфигурацию Git, указывающую на безопасную директорию:

git config --global --add safe.directory /var/www

Инициализировать Git репозиторий в директории /var/www/:

git init

Добавить удалённый репозиторий Пассворк:

git remote add origin https://passwork.download/passwork/passwork.git

Получить удалённый репозиторий на локальный сервер:

git fetch
к сведению

Система запросит логин и пароль к репозиторию, которые расположены на клиентском портале Пассворк. Если у вас нет доступа к клиентскому порталу — свяжитесь с нами.

Переключиться на ветку v6 с последней актуальной версией Пассворка:

git checkout v6

Назначить права на директории и файлы и сделать www-data владельцем всех файлов:

find /var/www/ -type d -exec chmod 755 {} \;
find /var/www/ -type f -exec chmod 644 {} \;
chown -R www-data:www-data /var/www/

6. Настройка Apache2 для доступа по HTTP протоколу в Пассворк

Открыть файл конфигурации виртуального хоста для HTTP соединения:

nano /etc/apache2/sites-enabled/000-default.conf

Отредактировать содержимое данного файла и привести к следующему виду:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Включить модуль перезаписи URL-адресов и перезапустить службу Apache2:

a2enmod rewrite
service apache2 restart
к сведению

Открыть http://passwork.local или http://127.0.0.1 для проверки подключения к Пассворк.

7. Прохождение чек-листа

При первом подключении к Пассворк, необходимо пройти чек-лист параметров, в ходе которого будет выполнена:

  • Проверка необходимых параметров
  • Подключение к базе данных MongoDB
  • Случайно сгенерированный ключ для шифрования данных в MongoDB
  • Проверка лицензионного ключа
к сведению

Оставьте все поля в значениях по умолчанию, если вы устанавливаете новую копию Пассворк.

После прохождения чек-листа будет предложено создать первого пользователя в Пассворк, где необходимо указать логин, пароль и почтовый адрес для отправки уведомлений.

осторожно

Первый пользователь по умолчанию является локальным и владельцем Пассворка. В случае назначения владельцем LDAP/SSO пользователя, он автоматически станет локальным и вы не сможете авторизоваться.

8. Настройка доступа по HTTPS-протоколу

8.1 Генерация самоподписанного SSL-сертификата

Создать новую директорию для хранения закрытого ключа и сертификата:

mkdir /etc/apache2/ssl/

Сгенерировать самоподписанный сертификат X.509 для Apache2 с помощью OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
  • Common Name (CN) — Здесь важно указать IP-адрес вашего сервера или имя хоста, так как ваш сертификат должен соответствовать домену (или IP-адресу) для веб-сайта;

Установить права доступа root пользователю для защиты закрытого ключа и сертификата:

chmod 600 /etc/apache2/ssl/*

8.2 Настройка виртуального хоста для доступа по HTTPS-протоколу

Активировать модуль SSL в Apache2, позволяя серверу поддерживать протокол HTTPS:

a2enmod ssl

Включить конфигурационный файл виртуального хоста сайта с настройками для SSL соединения:

a2ensite default-ssl

Открыть файл конфигурации виртуального хоста для HTTPS соединения:

nano /etc/apache2/sites-enabled/default-ssl.conf

Найдите раздел, начинающийся с <VirtualHost _default_:443> и внесите следующие изменения:

  • Добавить директиву ServerName (имя сервера или IP-адрес) и порт (:443) под строкой ServerAdmin:
ServerAdmin webmaster@localhost
ServerName passwork.local:443
  • Добавить директиву — <Directory> после ServerName:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
  • Найти следующие изменения и обновите пути к файлам, которые были сгенерированы ранее или указать своё расположение до сертификата и ключа:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  • После внесения изменений проверить, что файл конфигурации виртуального хоста соответствует примеру:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName passwork.local:443
DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
</IfModule>

Перезапустить службу Apache2 чтобы применить внесённые изменения в конфигурацию:

systemctl restart apache2
к сведению

Проверьте подключение к Пассворк по протоколу HTTPS — https://passwork.local

8.3 Настройка Пассворка для работы по HTTPS-протоколу

При использовании защищенного SSL-соединения (HTTPS) клиентские браузеры требуют определенных флагов для обработки данных Пассворка.

Если флаги session.cookie_secure и disableSameSiteCookie не установлены, браузеры не смогут установить соединение, что может приведет к ошибкам авторизации.

Установить параметр session.cookie_secure в файле /etc/php/8.2/apache2/php.ini:

sed -i '/session.cookie_secure =/c session.cookie_secure = On' /etc/php/8.2/apache2/php.ini

Установить параметр disableSameSiteCookie в /var/www/app/config/config.ini на значение Off:

sed -i '/disableSameSiteCookie =/c disableSameSiteCookie = Off' /var/www/app/config/config.ini
к сведению

Не устанавливайте этот параметр или верните в исходное значение, если вы передумаете использовать SSL и будете работать через HTTP-протокол.

9. Настройка фоновых задач

Фоновые задачи — это задачи, которые выполняются по планировщику в фоновом режиме. Как настроить фоновые задачи.

осторожно

Фоновые задачи обязательны для корректной работы части функционала Пассворка, например:

  • Работы LDAP;
  • Отправки почтовых уведомлений;
  • Загрузки фавиконов;
  • Очистки коллекции session в базе данных Пассворка.

10. Настройка безопасности

осторожно

Перед изменением и настройке параметров безопасности, настоятельно рекомендуем убедиться в стабильной и корректной работе Пассворка, а также создать резервную копию файлов

Безопасность сервера является важной частью обеспечения защиты ценных данных и ресурсов компании. Это процесс, который требует планирования и исполнения, чтобы обеспечить максимальную защиту от различных угроз.

Ознакомиться с рекомендуемыми параметрами безопасности Пассворка.