Меню

Instalación y configuración de PIX Master


Instalación y configuración de PIX Master en un servidor Windows

Para instalar la última versión del PIX Master, siga estos pasos:
La versión actual del PIX Master puede descargarse del enlace.
1. Configuración del servidor necesaria antes de instalar el PIX Master
1.1. Instalación de IIS
Para empezar, en el servidor recién creado, se debe habilitar la disponibilidad de IIS para la configuración. Si el IIS ya está disponible, se puede omitir esta sección.
1.1.1. En el Administrador de servidores, haga clic en el botón "Añadir funciones y componentes":
1.1.2. Continuar con la configuración
1.1.3. Habilitar la configuración de IIS
Para trabajar con AD también debe habilitar los "Servicios IIS".
- "Servicios de Internet"
- "Seguridad"
- "Autenticación de Windows".
1.2. Instale los componentes necesarios para que la aplicación funcione.
1.2.1. Instalación de .Net Core
PIX Master requiere el paquete de alojamiento .Net Core.
Descargue el kit de distribución haciendo clic aquí:
- para versiones inferiores a 1.19.4: .NET Core 3.0
- para la versión 1.19.4 y superiores: .NET 6
1.2.2. Instalación de una base de datos: MSSQL Server o PostgreSQL
(1) Para descargar los archivos, vaya al sitio web y seleccione la versión deseada:
Enlace a la página de MS SQL Server
Enlace al sitio para desarrolladores de PostgreSQL
(2) Ejecute el archivo descargado para iniciar el proceso de instalación.
*Para MSSQL, elija opcionalmente instalar SQL Server Management Studio.
2. Instalación de PIX Master mediante el paquete de instalación
Puede solicitar un enlace para descargar el asistente.
Inicie el paquete de instalación de PIX Master. Aparecerá una ventana:
Pulse el botón [Siguiente], en la ventana que aparece, seleccione la carpeta en la que desea instalar el programa:
Pulse el botón [Siguiente], en la ventana "Configuración de IIS"y especificar los datos para desplegar la aplicación en IIS
- nombre de la aplicación, nombre del grupo de aplicaciones y puerto de la aplicación.
Pulse el botón "Siguiente", luego el botón "Puesta en marcha". Esto debería instalar la aplicación en la carpeta especificada e IIS debería desplegar el sitio con los parámetros especificados en la ventana de Opciones de IIS.
3. Configuración del sitio web principal
Ruta de ajuste: Sitios web\Master\Gestión de sitios web (W)\Parámetros adicionales (P)
  • Parámetros "Preinstalación incluida" configurar "True" (I)
3.1. Configuración del grupo de aplicaciones y de la conexión a la base de datos
Configuración del grupo de aplicaciones
- Versión del framework CLR.NET "v4" (v)
- Modo de transporte controlado (Managed Pipeline Mode) = Integrated
- Modo de inicio (Start Mode) = Always Running (R)
Por defecto, el grupo de aplicaciones está configurado para ejecutarse durante un periodo de tiempo tras el cual se reinicia, lo que puede provocar la desconexión de los agentes conectados. Para evitar que esto ocurra, en el menú Configuración avanzada del grupo de aplicaciones, en «Intervalo de tiempo permanente (minutos)» fijar valor «0».
Para que las claves criptográficas del Asistente se almacenen correctamente, el ajuste "Cargar perfil de usuario" del grupo de aplicaciones debe estar configurado como «True» (U).
Parámetro «Tiempo de inactividad (minutos)» = 0 (T)
3.2. Configuración de la identificación del grupo de aplicaciones
Para que la aplicación funcione correctamente con MS SQL Server debe obtener la certificación de seguridad de los pools de seguridad.
Opción 1 - una cuenta especial para certificar el pool
Con el fin de cambiar la identidad del grupo de aplicaciones seleccione "Parámetros adicionales":
Seleccionar opción "Credenciales":
Al pulsar el botón del campo "Credenciales" aparecerá una ventana para configurar la cuenta - seleccione "Cuenta especial":
A continuación, pulse "Instalar" y rellene los datos de la cuenta existente:
Tras la configuración y los ajustes del pool, reinicie el pool de aplicaciones:
Si el usuario configurado para autenticar la aplicación tiene acceso al SGBD, la base de datos se creará automáticamente la primera vez que se inicie la aplicación.
Opción 2 - Conceder acceso a la base de datos al grupo de aplicaciones
(Identity - ApplicationPoolIdentity)
(1) Cree una nueva base de datos en MS SQL Server Managment Studio:
(2) En la nueva base de datos, cree un nuevo usuario con el nombre
IIS APPPOOL\<Nombre del pool que (será) instalado en IIS>.
(3) Configurar un esquema para el usuario de la base de datos [dbo].
En la pestaña "Membresía" otorgue al usuario los derechos que se muestran en la ilustración:
(4) Debe crearse el mismo usuario (con el mismo nombre) para acceder a SQL Server
(5) En los roles, sólo el rol público debe tener una casilla de verificación:
4. Configuración de la autenticación
4. 1. Configuración de la autenticación mediante Active Directory
Para que la autenticación de Active Directory funcione correctamente, debe configurarse la autenticación para el sitio.
En la sección "Autenticación" de la configuración del sitio debe activar la autenticación de Windows, como se muestra en la ilustración:
Para asociar un usuario del Asistente a una cuenta de Active Directory, en el menú de edición de usuarios debe activar la opción «Utilizar la autenticación de Active Directory» y seleccione en el menú la cuenta Active Directory que desea asignar al usuario del Asistente.
4.2. Configuración de la autenticación OpenID
Para que los ajustes relacionados con la integración del proveedor OpenID aparezcan en el Asistente, debe añadirse la siguiente sección con los ajustes de OAuth al archivo de configuración appsettings.json:
"OAuth": {
"AuthorizationEndpoint": "https://domain.com/authorize",
"UserInfoEndpoint": "https://domain.com/userinfo",
"TokenEndpoint": "https://domain.com/oauth/token",
"ClientId": "someId",
"ClientSecret": "someClientSecret"
}
  • AuthorizationEndpoint – dirección de autorización en el proveedor OpenID
  • UserInfoEndpoint – Dirección API para recuperar la información del usuario
  • TokenEndpoint – la dirección API para recibir el token
  • CliendId – identificador de la aplicación en el proveedor OpenID
  • ClientSecret – el secreto de la aplicación en el proveedor OpenID
En el propio proveedor de OpenID, es posible que tenga que especificar una dirección de devolución de llamada (callback). Ruta relativa de esta dirección - "/openid/callback".
Si todo está configurado correctamente, el ajuste de integración de OpenID debería aparecer en el menú de edición del usuario:
Sección de configuración del asistente.
El menú de administración contiene la sección "Ajustes", responsable de la configuración de la aplicación en su conjunto.
La opción "Usar confirmación de correo de usuario" le permite habilitar el envío de correos electrónicos de confirmación de registro, pero los usuarios con correo electrónico no confirmado no podrán iniciar sesión. Cuando esta opción está activada, todos los usuarios que ya están en el sistema tendrán su registro confirmado, por lo que no necesitarán confirmar su correo electrónico. Debe completar la configuración en la sección Configuración del Servidor de Correo para que el envío de correo funcione.

El botón [Cambiar clave secreta] permite cambiar la clave criptográfica utilizada para cifrar los datos de tipo Credencial y las contraseñas de otras partes del sistema almacenadas en la base de datos.

El botón [Solicitar a todos los usuarios que cambien la contraseña] requiere que todos los usuarios cambien su contraseña al iniciar sesión.
5. Configuración del certificado
Emisión de un certificado local
Opción 1 - emisión de certificados a través de un script.
1) Ejecutar PowerShell
2) Ejecutar el script alternativamente (Nota: el DNS debe coincidir con la dirección en la que se publica el sitio web):

# setup certificate properties including the commonName (DNSName) property for Chrome 58+
$certificate = New-SelfSignedCertificate `
-Subject pixrpa `
-DnsName VPS-2002 `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-NotBefore (Get-Date) `
-NotAfter (Get-Date).AddYears(2) `
-CertStoreLocation "cert:CurrentUser\My" `
-FriendlyName "pixrpa" `
-HashAlgorithm SHA256 `
-KeyUsage DigitalSignature, KeyEncipherment, DataEncipherment `
-TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
$certificatePath = 'Cert:\CurrentUser\My\' + ($certificate.ThumbPrint)
# create temporary certificate path
$tmpPath = "C:\tmp"
If(!(test-path $tmpPath))
{
New-Item -ItemType Directory -Force -Path $tmpPath
}
# set certificate password here
$pfxPassword = ConvertTo-SecureString -String "11111" -Force -AsPlainText
$pfxFilePath = "c:\tmp\pixpra.pfx"
$cerFilePath = "c:\tmp\pixpra.cer"
# create pfx certificate
Export-PfxCertificate -Cert $certificatePath -FilePath $pfxFilePath -Password $pfxPassword
Export-Certificate -Cert $certificatePath -FilePath $cerFilePath
# import the pfx certificate
Import-PfxCertificate -FilePath $pfxFilePath Cert:\LocalMachine\My -Password $pfxPassword -Exportable
# trust the certificate by importing the pfx certificate into your trusted root
Import-Certificate -FilePath $cerFilePath -CertStoreLocation Cert:\CurrentUser\Root
3) El certificado creado puede cargarse ahora en IIS
4) El certificado descargado debe configurarse para acceder al sitio (en lugar del valor predeterminado).
5) Vuelva a publicar el sitio web y compruebe la disponibilidad a través de su navegador.
Opción 2 - emisión de certificados a través de la interfaz IIS
(1) Abra IIS y haga clic en el nodo del servidor raíz
(2) Haga doble clic en el componente "Certificados de servidor (Server Certificates)
Главное окно IIS
(3) Vaya a "Emitir un certificado autofirmado". (Create Self-Signed Certificate)
Окно управления сертификатами сервера
(4) En la ventana que se abre, especifique el nombre del certificado y seleccione la ubicación de alojamiento del servicio web
Окно настроек создаваемого сертификата
(5) Tras pulsar el botón "Aceptar", verá que el certificado aparece en la lista de certificados disponibles.
Список доступных сертификатов
(6) Es necesario instalar un certificado para acceder al sitio web (en lugar del valor por defecto)
7) Vuelva a Editar el sitio web y compruebe la disponibilidad a través de su navegador.
Configuración de un certificado en el lado del cliente (Agente)
Como la conexión se realiza a través de un canal seguro, antes de conectar un Agente al Asistente, debe añadir el certificado del Asistente a los de confianza en el equipo donde está instalado el Agente.
(1) Compruebe que el sitio web es accesible desde el navegador.
(2) Descargar el certificado que causa conflicto con Chrome.
(3) Establece el certificado como de confianza para el usuario actual.
(4) Compruebe la conexión con el Asistente desde el agente (Agent.exe).
6. Establecer la configuración de la aplicación
Para que la aplicación funcione, la conexión a la base de datos, el registro, la autenticación, etc. deben estar configurados en el archivo de configuración.

Vaya a la carpeta donde se ha instalado la aplicación.
Localice y abra el archivo appsettings.json.
Su contenido es aproximadamente el siguiente
{
"Provider": "MSSQL",
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=master_test;Trusted_Connection=True;MultipleActiveResultSets=true;Persist Security Info=False;",
"PostgreSqlConnection": "User ID=postgres;Password=1222212123;Host=localhost;Port=5432;Database=master_test;Pooling=true;"
},
"Logging": {
"LogLevel": {
"Default": "Warning",
"Hangfire": "Information"
}
},
"AllowedHosts": "*",
"PasswordValidationOptions": {
"RequiredLength": "8",
"RequireNonAlphanumeric": "true",
"RequireLowercase": "true",
"RequireUppercase": "true",
"RequireDigit": "true"
}
}
  • Para el parámetro "Provider" debe especificar el SGBD que se va a utilizar.
  • Valores permitidos - MSSQL y PostgreSQL;
Para la sección [ConnectionString] debe introducirse uno de los parámetros de la string de conexión a la base de datos:
  • DefaultConnection, si "Provider" = MSSQL,
  • PostgreSqlConnection, si el parámetro "Provider" = PostgreSQL;

En la sección [PasswordValidationOptions] estan los ajustes para la complejidad de la contraseña de usuario.
Si esta sección no está disponible, se aplicarán los ajustes de complejidad de contraseña por defecto en el PIX Master:
- la longitud mínima de la contraseña es de 8 caracteres,
- requiere un carácter no alfanumérico, letras en minúsculas y mayúsculas, y números;
  • Parámetro RequiredLength es numérico y es responsable del requisito de longitud mínima de la contraseña.
  • Parámetro RequireNonAlphanumeric es una lógica (true/false) y es responsable de exigir un carácter no alfanumérico en la contraseña;
  • Parámetro RequireLowercase es lógico y se encarga de exigir una letra minúscula en la contraseña;
  • Parámetro RequireUppercase es lógico y se encarga de exigir una letra mayúscula en la contraseña;
  • Parámetro RequireDigit es lógico y se encarga de exigir un dígito en la contraseña.
Después de cambiar los ajustes de complejidad de la contraseña de usuario en la configuración, el grupo de aplicaciones debe reiniciarse para que los cambios surtan efecto. Si lo desea, el administrador puede solicitar un cambio de contraseña para todos los usuarios en la sección de configuración del panel de administración para que todas las contraseñas cumplan los nuevos requisitos.

Más información sobre los ajustes de configuración en appsettings.json se describen en el siguiente enlace.

Datos de acceso del usuario administrador:
Usuario: admin
Contraseña: Admin1Default@

Instalación y configuración del PIX Master en un servidor Linux
*El asistente no funciona en las distribuciones Ubuntu 22 y Centos (las versiones del asistente hasta la 15 funcionan).

L1. Configuración del servidor necesaria antes de instalar el PIX Master
Instalación de módulos .Net Core en Linux
Para instalar los módulos necesarios, utilice una terminal (puede encontrarla en el cuadro de búsqueda utilizando la palabra cmd).
Para ejecutar los siguientes comandos, es necesario el acceso del usuario root. Para ello, ejecute la instrucción "su root" en la línea de comandos e introduzca la contraseña del usuario root especificada al instalar el sistema operativo.
Para instalar los módulos .Net Core en la línea de comandos, hay que realizar las siguientes operaciones:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-6.0
Si se produce un error al instalar los paquetes, siga las instrucciones dadas en las subsecciones de distribuciones Linux en la página web.
Instalación y configuración del servidor Apache

sudo apt-get install apache2
Crear un certificado:

cd /etc/apache2
mkdir ssl
cd ssl
sudo openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj "/C=RU/ST=Msk/L=Msk/O=YourCompany/OU=IT Department/CN=master.yourcompany.local/CN=master"
sudo a2enmod proxy_http proxy_html proxy_wstunnel ssl
sudo a2enmod rewrite
sudo systemctl restart apache2
Después de esto tendrá que crear un archivo de configuración para instalar un proxy en Apache. Para ello, ejecute el comando:

sudo nano /etc/apache2/conf-enabled/netcore.conf
Copie el siguiente texto en el archivo de configuración:

<VirtualHost *:443>
ServerName www.CurrentDomain.com
DocumentRoot /var/pixmaster
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
#SSLCertificateChainFile ssl/cert.ca-bundle
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P]
ErrorLog /var/log/apache2/netcore-error.log
CustomLog /var/log/apache2/netcore-access.log common
</VirtualHost>
A continuación, deberá reiniciar el servidor Apache escribiendo en la línea de comandos:

sudo apachectl configtest
Debería obtener Sintaxis Ok. Reinicie el servicio:

sudo service apache2 restart
Comprobación del estado:

sudo service apache2 status
Si tiene éxito, el estado es Activo: active (running).
Si se detiene, falla: debe volver a comprobarse la configuración.
Puede comprobar si apache está instalado correctamente yendo a http://localhost. Debería aparecer la página de bienvenida de apache.
Instalación de Docker + Postgres en Linux
Instalación de Docker:

sudo apt update
sudo apt install docker.io
A continuación, puede trabajar con Docker según el manual ejecutando comandos en modo superusuario (sudo).

Ejecutar Docker:

sudo systemctl start docker
sudo systemctl enable docker
Cargar el servidor Postgres:

sudo docker pull postgres
Utilice el siguiente comando para iniciar automáticamente el servidor Postgres:

sudo docker run -d --restart unless-stopped --name pix-postgres -e POSTGRES_PASSWORD=123456789 -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres
L2. Configuración de una aplicación desplegada
Para que la aplicación funcione, hay que configurar la ruta en su base de datos y especificar una carpeta para almacenar las claves cifradas.

Establecer la configuración de la aplicación
Vaya a la carpeta donde se ha instalado la aplicación y abra el archivo appsettings.json.
Debe tener aproximadamente el siguiente contenido:

{
"Provider": "PostgreSQL",
"CryptographyKeysFolder": "Keys",
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=master_test;Trusted_Connection=True;MultipleActiveResultSets=true;Persist Security Info=False;",
"PostgreSqlConnection": "User ID=postgres;Password=123456789;Host=localhost;Port=5432;Database=master_test;Pooling=true;"
},
"Logging": {
"LogLevel": {
"Default": "Warning",
"Hangfire": "Information"
}
},
"AllowedHosts": "*",
"PasswordValidationOptions": {
"RequiredLength": "8",
"RequireNonAlphanumeric": "true",
"RequireLowercase": "true",
"RequireUppercase": "true",
"RequireDigit": "true"
},
"UseSwagger": "false"
}
La clave Proveedor especifica el SGBD (sistema de gestión de bases de datos) que se utilizará: MSSQL o PostgreSQL.

En ConnectionStrings para la clave de PostgreSqlConnection debe especificar la string de conexión de la base de datos.

¡DEBE! En la casilla de CryptographyKeysFolder debe especificar la ruta a la carpeta donde se almacenarán las claves cifradas y los derechos de acceso:

sudo mkdir /var/pixmaster/Keys
sudo chmod 777 /var/pixmaster/Keys
Cree también una carpeta para almacenar los registros del Asistente y dele derechos de acceso.

sudo mkdir MasterLog
sudo chmod 777 MasterLog

Este artículo es específico de Linux.
L3. Configurar y ejecutar el servicio
Puede mover la carpeta con el proyecto publicado utilizando el comando:

sudo cp -a <folder> <target folder>
<folder> - la ruta de la carpeta a migrar, <target folder> - la ruta donde se desplegará la aplicación.
En el siguiente ejemplo, se utilizará la ruta /var/pixmaster/ como carpeta para la aplicación.

Por ejemplo:

sudo cp -a /home/user/pix-master/ /var/pixmaster
Se puede crear un archivo de servicio utilizando el siguiente comando:

sudo nano /etc/systemd/system/Master.service
# Master.service – название сервиса для проекта.
Los siguientes datos deben copiarse en este archivo:

[Unit]
Description=ASP .NET Web Application
[Service]
#Указываем путь к директории с установленным Мастером
WorkingDirectory=/var/pixmaster
ExecStart=/usr/bin/dotnet /var/pixmaster/Master.dll
Restart=always
RestartSec=10
SyslogIdentifier=netcore-demo
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
A continuación, deberá iniciar el servicio utilizando los siguientes comandos:

sudo systemctl enable Master.service
sudo systemctl start Master.service

Ahora es posible acceder a la aplicación a través del puerto 5000.
Comprobar el estado:

sudo service apache2 status
Si tiene éxito, el estado es Activo: active (running).
Puede ejecutar el siguiente comando para recuperar los datos del servicio:

sudo journalctl -fu Master.service
Credenciales de acceso por defecto:
Usuario: admin
Contraseña: Admin1Default@