Установка менеджера паролей Passwork на CentOS 8 Stream

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

su
cd ~
yum makecache

Измените имя сервера на «passwork».

hostnamectl set-hostname passwork
systemctl restart NetworkManager.service

Установка Git и Apache2, настройка файрвола

yum -y install git httpd avahi
systemctl start httpd
systemctl enable httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=5353/udp
firewall-cmd --reload
systemctl restart avahi-daemon

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

Настройка системы управления пакетами (yum).

Создайте файл /etc/yum.repos.d/mongodb-org-3.6.repo для того, чтобы установить MongoDB с использованием менеджера пакетов yum.

yum -y install nano
nano /etc/yum.repos.d/mongodb-org-4.2.repo

Приведите файл к следующему виду:

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

Для установки последней стабильной версии MongoDB выполните следующую команду:

yum -y install mongodb-org

Измените режим работы SELinux на disabled. Откройте файл /etc/selinux/config и измените значение параметра SELINUX на disabled.

nano /etc/selinux/config

Приведите файл к следующему виду:

SELINUX=disabled

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

Запустите службу MongoDB.

su
cd ~
systemctl start mongod.service

Включите автозапуск службы mongod при загрузке системы.

systemctl enable mongod.service

Установка PHP 7

Установка пакета конфигурации Remi репозитория

yum -y install epel-release yum-utils 
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module install -y php:remi-7.3

Установка PHP и дополнительных расширений

dnf install -y php php-json php-ldap php-xml php-bcmath php-mbstring

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

dnf config-manager --set-enabled powertools
yum -y install gcc php-pear curl-devel openssl-devel pcre-devel php-devel
pear channel-update
pecl install mongodb
echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini
systemctl restart httpd

Установка Phalcon PHP фреймворка

yum -y install php-mysql libtool pcre-devel
git clone --branch 3.4.x  --depth=1 "https://github.com/phalcon/cphalcon.git"
cd cphalcon/build
./install
echo "extension=phalcon.so" | tee /etc/php.d/50-phalcon.ini
systemctl restart httpd

Загрузка и установка Passwork

Клонируйте репозиторий используя ваш логин и пароль.

cd /var/www
git init
git remote add origin https://passwork.download/passwork/passwork.git
git fetch
git checkout v4

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

Установите права доступа на папки и файлы.

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

Конфигурация Apache2

Создайте конфигурационный файл для non-ssl соединения.

nano /etc/httpd/conf.d/non-ssl.conf

Приведите содержимое файла к следующему виду:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/public
    <Directory /var/www/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
    ErrorLog logs/error_log
    TransferLog logs/access_log
    LogLevel warn
</VirtualHost>

Перезапустите Apache.

systemctl restart httpd

Откройте http://passwork.local или http:// для доступа к вебсайту.

Инсталляция

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

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

Зарегистрируйте администратора Пассворк

Введите логин и пароль для первого пользователя. Пользователь автоматически станет администратором и владельцем организации.

Создание SSL сертификата

Установите SSL модуль для Apache.

yum -y install mod_ssl

Создайте новую директорию для хранения закрытого ключа (директория /etc/ssl/certs доступна по умолчанию для хранения файла сертификата):

mkdir /etc/ssl/private

Установите правильные разрешения на директорию:

chmod 700 /etc/ssl/private

Создайте новый сертификат и закрытый ключ для его защиты.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

Создайте группу Диффи-Хеллмана.

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Добавьте содержимое сгенерированного файла в конец самоподписанного сертификата.

cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt

Настройка продукта для корректной работы в Chrome с SSL

При работе через SSL-соединение (HTTPS) браузер Chrome требует наличия флагов Secure и SameSite у cookie. Без этих флагов браузер не будет принимать куки, и вы не сможете авторизоваться в Пассворке в Chrome.

Для того чтобы установить эти флаги, включите параметр session.cookie_secure в файле /etc/php.ini:

session.cookie_secure = On

И установите параметр disableSameSiteCookie (секция [application])в файле /var/www/app/config/config.ini в значение Off.

disableSameSiteCookie = Off

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

Настройка Apache для использования SSL-соединения

Откройте конфигурационный файл SSL в текстовом редакторе.

nano /etc/httpd/conf.d/ssl.conf

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

  • Раскомментируйте строку DocumentRoot и измените путь в кавычках на путь к корневому каталогу вашего сайта. По умолчанию это будет /var/www/html.
  • Затем, раскомментируйте строку ServerName и замените www.example.com на IP-адрес или домен сервера (в зависимости от того, что вы указали в качестве Common Name в своем сертификате):
DocumentRoot /var/www/public
ServerName passwork.local:443
  • Добавьте директиву “Directory” после “ServerName”.
<Directory /var/www/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
		Require all granted
    </Directory>
  • Затем найдите строки SSLProtocol и SSLCipherSuite и либо удалите их, либо закомментируйте. Новая конфигурация, которую мы добавим ниже имеет более безопасные параметры, чем настройки Apache по умолчанию в CentOS:
# SSLProtocol all -SSLv2
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

Найдите строки SSLCertificateFile и SSLCertificateKeyFile и приведите их к следующему виду:

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

После внесения изменений проверьте, что ваш файл конфигурации виртуального хоста соответствует примеру ниже.

<VirtualHost _default_:443>
    DocumentRoot /var/www/public
    ServerName passwork.local:443
    <Directory /var/www/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
		Require all granted
    </Directory>
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>

Мы закончили с изменениями в блоке VirtualHost. Сохраните изменения (Ctr+O) и выйдите (Ctr+X).

Перезапустите Apache, чтобы изменения вступили в силу.

systemctl restart httpd

Проверьте SSL-соединение, откройте ссылку https://passwork.local.

Руководство пользователя Пассворк

Скачать PDF

Оцените статью
( 1 оценка, среднее 5 из 5 )