OCS Inventory: Организация проксирования

#1 2021.09.02 13:23:33

0

12.1. Установка и настройка Nginx.

Для организации проксирования Apache нам потребуется отдельный настроенный и работающий сервер Nginx.

Если у вас его еще нет, то вы можете настроить его по инструкции «CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем.»

Также вам потребуется получить 2 доменных имени DNS вида:

ocsi.site.ru
agent.ocsi.site.ru


12.2. Создание файлов конфигурации проксирования.

Создадим 2 файла конфигурации с учетом инструкции настройки Nginx c nginx.conf, который был предложен в тексте инструкции по его настройке, в противном случае работоспособность системы OCS Inventory не гарантируется!

ocsi.site.ru.conf
agent.ocsi.site.ru.conf


Создаем файл конфигурации ocsi.site.ru.conf для web-интерфейса OCS Inventory:

# mcedit /etc/nginx/conf.d/ocsi.hamsterden.ru.conf

Вводим в него текст:



server {
listen 80;
server_name ocsi.site.ru;
access_log /web/ocsi/log/access.log;
error_log /web/ocsi/log/error.log;

rewrite ^(.*) https://$host$1 permanent;
}

server {
listen 443 ssl http2;
server_name ocsi.site.ru;
access_log /web/ocsi/log/access.log;
error_log /web/ocsi/log/error.log;

ssl_certificate /etc/letsencrypt/live/ocsi.site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ocsi.site.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ocsi.site.ru/fullchain.pem;

proxy_redirect off;

location / {
auth_basic " ";
auth_basic_user_file /etc/nginx/htpasswd_osci;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://192.168.0.20/ocsreports/;
proxy_buffering off;
client_max_body_size 0;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
}
}



Сохраните файл и выйдите из текстового редактора.

Создаем файл конфигурации agent.ocsi.site.ru.conf для web-интерфейса OCS Inventory:

# mcedit /etc/nginx/conf.d/agent.ocsi.hamsterden.ru.conf

Вводим в него текст:



server {
listen 80;
server_name agent.ocsi.site.ru;
access_log /web/agent.ocsi/log/access.log;
error_log /web/agent.ocsi/log/error.log;

rewrite ^(.*) https://$host$1 permanent;
}

server {
listen 443 ssl http2;
server_name agent.ocsi.site.ru;
access_log /web/agent.ocsi/log/access.log;
error_log /web/agent.ocsi/log/error.log;

ssl_certificate /etc/letsencrypt/live/agent.ocsi.site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/agent.ocsi.site.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/agent.ocsi.site.ru/fullchain.pem;

proxy_redirect off;

location / {
auth_basic " ";
auth_basic_user_file /etc/nginx/htpasswd_agent.osci;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://192.168.0.20/ocsinventory/;
proxy_buffering off;
client_max_body_size 0;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
}
}



Сохраните файл и выйдите из текстового редактора.

12.3. Организация базовой аутентификации.

Название файла с паролями может быть любое. Назовем его исторически — htpasswd, но скрытым (точной перед файлом) делать не будем. Расположение файла так же может быть любое! Файл htpasswd содержит список имен пользователей и паролей. Nginx использует его для проверки учетных данных пользователей, которые хотят получить доступ к защищенным областям сайта.

Установим httpd-tools:

# yum -y install httpd-tools

Сначала создайте пустой файл с именем /etc/nginx/htpasswd_osci примерно так:

# touch /etc/nginx/htpasswd_osci

Далее создайте пустой файл с именем /etc/nginx/agent.htpasswd_osci примерно так:

# touch /etc/nginx/htpasswd_agent.osci

Далее требуется заказать первичное наполнение файла htpasswd_osci:

# htpasswd -c /etc/nginx/htpasswd_osci admin

Вам будет предложено ввести пароль дважды:

Аналогично требуется заказать первичное наполнение файла htpasswd_agent.osci:

# htpasswd -c /etc/nginx/htpasswd_agent.osci agent

Флажок -c указываем, когда только создаем htpasswd первично, /etc/nginx/htpasswd_xx — путь к файлу с логинами и паролями, admin — нужный логин для Администратора, agent — нужный логин для Агента.

Внимание! Если у вас уже существует файл с таким именем, то его содержимое будет заменено, поэтому перед процедурой обязательно удостоверьтесь, что такого файла нет или используйте любое другое имя, которого точно нет.

Теперь вы можете добавить имена пользователей и пароли в этот файл с помощью команды htpasswd, добавлять -c не надо уже, так как файл для хранения паролей уже создан и создавать его снова нам не надо.

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

Если вы хотите удалить пользователя из файла, используйте ключ -D следующим образом:

# htpasswd -D /etc/nginx/htpasswd_xx john

Файл htpasswd представляет собой простой текстовый файл, и вы можете проверить его с помощью текстового редактора. Имена пользователей хранятся как есть, но пароли хешируются и шифруются.

# cat /etc/nginx/htpasswd_xx

12.4. Создание сертификата шифрования Let’s Encrypt.

Если у вас его еще нет Let’s Encrypt, то вы можете настроить его по инструкции «CentOS 7: Настройка web-сервера Nginx и выход в Интернет со своим доменным именем.»

Создайте 2 сертификата для доменных имен.

ocsi.site.ru
agent.ocsi.site.ru


12.5. Перезапустим Nginx:

# systemctl restart nginx

Если всё сделано без ошибок и опечаток, то вам станут доступны два web-адреса с базовой аутентификацией:

https://ocsi.site.ru — тождественен https://192.168.0.20/ocsreports/ — путь входа в web-панель управления OSC Inventory.
https://agent.ocsi.site.ru — тождественен https://192.168.0.20/ocsinventory/ — путь входа для Агентов, по нему они передают информацию в OCS Inventory.

При попытке перейти по пути https://agent.ocsi.site.ru, нас встретит техническая надпись о том, что браузер и сервер друг друга не понимают. Это нормально. В этой точке происходит общение Агентов с сервером OCS Inventory.
Отредактировано: Panda 2022.08.15 15:08:32