Установка GLPI 10 на Astralinux 1.8.1
Описание
GLPI - это решение с открытым исходным кодом для управления сервисами. Позволяет управлять службой поддержки (Helpdesk) и ИТ-активами (Asset Management).
Установка
Проверяем нашу версию ОС.
cat /etc/astra_version && cat /etc/debian_version
Результат вывода команды:
1.8.1
12.0
Установка дополнительных пакетов.
apt -y install chrony htop mc wget ufw
Настройка часового пояса.
dpkg-reconfigure tzdata
Nginx
Установка Nginx + PHP-FPM
apt -y install nginx php-fpm
Создаем конфигурационный файл nginx для нашего сайта
nano /etc/nginx/sites-available/glpi
HTTP
Для работы через HTTP, приводим его к следующему виду:
#
# Конфигурация для GLPI
#
server {
listen 80;
root /var/www/glpi/public;
# Добавить index.php в список, если вы используете PHP
index index.html index.htm index.nginx-debian.html;
# Указать домен
server_name example.com;
# Настройки для GLPI
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php$ {
# Следующую строку необходимо адаптировать, так как она меняется в зависимости от ОС системы и версии PHP
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
HTTPS
Для работы через HTTPS, необходимо иметь, получить или сгенерировать SSL сертификаты.
Сертификаты помещаем на сервер в удобное Вам место. В данном случае сертификаты будут размещены в каталог /etc/ssl/.
/etc/ssl/example.com.crt
/etc/ssl/example.com.key
Для работы через HTTPS необходимо добавить в конфигурационный файл порт и указать где лежат сертификаты.
listen 443 ssl;
...
# Указать путь к SSL сертификатам
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
Приводим файл конфигурации к следующему виду:
#
# Конфигурация для GLPI
#
# HTTP
server {
listen 80;
# Указать домен
server_name example.com;
}
# HTTPS
server {
listen 443 ssl;
# Указать домен
server_name example.com;
#
root /var/www/glpi/public;
# Добавить index.php в список, если вы используете PHP
index index.html index.htm index.nginx-debian.html;
# Указать путь к SSL сертификатам
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
# Настройки для GLPI
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php$ {
# Следующую строку необходимо адаптировать, так как она меняется в зависимости от дистрибутива ОС и версии PHP
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
По желанию можно добавить дополнительные параметры для работы с HTTPS.
# Настройки для работы с HTTP/2
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Кеширование сессий
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Оптимизация производительности
keepalive_timeout 70;
# Настройки для OCSP stapling
ssl_stapling on;
ssl_trusted_certificate /etc/ssl/example.com.crt;
resolver 77.88.8.8;
Перенаправление HTTP -> HTTPS
Для настройки перенаправления с HTTP на HTTPS необходимо добавить строку в блок HTTP, в файлe конфигурации.
# Перенаправление HTTP -> HTTPS
return 301 https://$host$request_uri;
Финальный файл конфигурации для работы с HTTPS
#
# Конфигурация для GLPI
#
# HTTP
server {
listen 80;
# Указать домен
server_name example.com;
# Перенаправление HTTP -> HTTPS
return 301 https://$host$request_uri;
}
# HTTPS
server {
listen 443 ssl;
# Указать домен
server_name example.com;
#
root /var/www/glpi/public;
# Добавить index.php в список, если вы используете PHP
index index.html index.htm index.nginx-debian.html;
# Указать путь к SSL сертификатам
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
# Настройки для работы с HTTP/2
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Кеширование сессий
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Оптимизация производительности
keepalive_timeout 70;
# Настройки для OCSP stapling
ssl_stapling on;
ssl_trusted_certificate /etc/ssl/example.com.crt;
resolver 77.88.8.8;
# Настройки для GLPI
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php$ {
# Следующую строку необходимо адаптировать, так как она меняется в зависимости от дистрибутива ОС и версии PHP
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Активация
Для активации сайта необходимо сделать символическую ссылку в sites-enabled.
ln -s /etc/nginx/sites-available/glpi /etc/nginx/sites-enabled/
Перезапускаем nginx.
nginx -s reload
или
systemctl restart nginx
PHP
Установка php8.2 так как эта версия уже присутствует в репозитории по умолчанию.
apt -y install php8.2-{fpm,common,cli,curl,gd,intl,mysqli,session,zlib,bz2,phar,zip,exif,ldap,openssl,opcache,dom,simplexml,xmlreader,xmlwriter}
apt -y install php8.2-mbstring
Проверка установленной версии
php -v
Настройка параметров PHP в соответствии с рекомендациями GLPI. Настройка производиться в файле php.ini.
nano /etc/php/8.2/fpm/php.ini
Находим блок session.cookie_secure, раскоментируем строку и выставляем в параметре "1".
; https://php.net/session.cookie-secure
session.cookie_secure = 1
Находим блок session.cookie_httponly, раскоментируем строку и выставляем в параметре "1".
; Whether or not to add the httpOnly flag to the cookie, which makes it
; inaccessible to browser scripting languages such as JavaScript.
; https://php.net/session.cookie-httponly
session.cookie_httponly = 1
Находим session.cookie_samesite, раскоментируем строку и выставляем в параметре "Lax".
; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF)
; Current valid values are "Strict", "Lax" or "None". When using "None",
; make sure to include the quotes, as `none` is interpreted like `false` in ini files.
; https://tools.ietf.org/html/draft-west-first-party-cookies-07
session.cookie_samesite = Lax
Перезапускаем php-fpm.
systemctl restart php8.2-fpm
MariaDB
Установка.
apt -y install mariadb-server
Запуск и добавление в автозагрузку.
systemctl start mariadb
systemctl enable mariadb
Проверить статус службы.
systemctl status mariadb
Настройка
sudo mysql_secure_installation
Во время настройки необходимо будет задать root пароли для базы данных.
Подключаемся к MariaDB и указываем заданный root пароль на предыдущем шаге.
mysql -u root -p
Создаем пользователя.
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
Создаем базу данных.
CREATE DATABASE name_database;
Назначаем права пользователю на базу данных.
GRANT ALL PRIVILEGES ON name_database.* TO 'user_name'@'localhost';
Применяем права.
FLUSH PRIVILEGES;
Разрешить пользователю glpi доступ к часовым поясам.
GRANT SELECT ON mysql.time_zone_name TO 'glpi'@'localhost';
Для выхода из CLI MariaDB.
\q
Перезапускаем MariaDB.
systemctl restart mysql
GLPI
Переходим в каталог
cd /var/www/
Скачиваем архив с последней на текущий момент версией GLPI.
wget https://github.com/glpi-project/glpi/releases/download/10.0.18/glpi-10.0.18.tgz
Распаковываем архив в текущий каталог /var/www/.
tar -xvf glpi-10.0.18.tgz
После распаковки в каталоге /var/www/ должен появиться каталог "glpi" /var/www/glpi/.
Задаем права доступа к каталогу
chown -R -v www-data:www-data /var/www/glpi
Открываем браузер и переходим по ссылке
https://example.com
Вы будете перенаправлены на страницу мастера установки.
https://example.com/install/install.php
Шаг 0.
Во время проверки на совместимость с GLPI, если все шаги по инструкции были выполнены, то мы получим "ОК" по всем пунктам.
Шаг 1.
Указываем данные для подключения к нашей базе данных. Логин и пароль, те которые создавали в MariaDB для нашей базы данных.
Шаг 2.
Выбираем нашу созданную БД.
Шаг 3.
Если всё сделано правильно, увидимо сообщение, что наша БД проинициализирована.
Шаг 4.
Телеметрия, здесь на своё усмотрение.
Шаг 5.
Информационный, для ознакомления.
Шаг 6.
Заключительный шаг в котором указаны логины и пароли по умолчанию, для разных ролей.
В целях безопасности измените пароли для пользователей по умолчанию: glpi, post-only, tech и normal.
В целях безопасности удалите файл: install/install.php
Для удаления файла install.php необходимо открыть консоль сервера и выполнить команду:
rm /var/www/glpi/install/install.php
UFW
Настройка фаервола ufw.
Установка. Ранее мы уже установили данный пакет в пункте "Установка дополнительных пакетов".
apt -y install ufw
Настройка политик по умолчанию, запрещаем входящий и разрешаем исходящий трафик.
ufw default deny incoming
ufw default allow outgoing
Открываем необходимые порты.
HTTP и HTTPS порты 80 и 443. Если необходим удаленный доступ по SSH открываем порт 22.
ufw allow http
ufw allow https
ufw allow ssh
После того как добавили необходимые правила включаем фаервол.
ufw enable
Добавляем в автозагрузку.
systemctl enable ufw
Для проверки статуса и набора правил.
ufw status
No comments to display
No comments to display