Saltar al contenido principal

Alma/Rocky/CentOS

info

Instrucciones de instalación de Passwork para el SO:

  • CentOS 8 Stream, Alma Linux 8, Rocky Linux 8.
  • CentOS 9 Stream, Alma Linux 9, Rocky Linux 9.
peligro

Las instrucciones utilizan bloques de código intercambiables para separar los comandos según las versiones del sistema operativo.

1. Requisitos mínimos del sistema

Passwork no es exigente en cuanto a recursos del sistema, y el número de servidores necesarios depende de la cantidad de usuarios activos, el volumen de datos almacenados y los requisitos de tolerancia a fallos del sistema.

Consulte los requisitos completos del sistema.

info

Si el servidor tiene 2-4 GB de RAM, le recomendamos habilitar un archivo SWAP.

2. Acciones básicas antes de la instalación

Obtenga privilegios de root y actualice la base de datos de paquetes local:

sudo -i 
dnf makecache

Instale el servidor web Apache2 y la utilidad de transferencia de datos curl:

dnf install -y httpd unzip curl zip jq

Reemplace la ubicación de DocumentRoot en la configuración de Apache:

sed -i 's|^DocumentRoot "/var/www/html"|DocumentRoot "/var/www"|' /etc/httpd/conf/httpd.conf

Inicie el servicio httpd.service:

systemctl start httpd.service

Habilite el inicio automático del servicio:

systemctl enable httpd.service

2.1 Instalación y configuración básica de Firewalld

Instale el servicio de gestión dinámica de firewall Firewalld:

dnf install firewalld -y

Inicie el servicio firewalld.service:

systemctl start firewalld.service

Habilite el inicio automático del servicio:

systemctl enable firewalld.service

Agregue el protocolo HTTPS a la lista de servicios permitidos en la configuración de Firewalld:

firewall-cmd --permanent --add-service=https

Aplique los cambios a la configuración de Firewalld:

firewall-cmd --reload

2.2 Deshabilitación de SELinux y reinicio del SO

Edite el archivo de configuración /etc/selinux/config:

nano /etc/selinux/config

Cambie el valor del parámetro SELINUX de enforcing a disabled:

SELINUX=disabled

Guarde los cambios (Ctrl+O) y salga (Ctrl+X). Reinicie el sistema para aplicar los cambios de SELinux:

reboot

3. Instalación de PHP

Instale el paquete EPEL (epel-release) y las utilidades de gestión de paquetes yum (yum-utils):

dnf -y install epel-release yum-utils

Descargue e instale el último repositorio EPEL:

dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Descargue e instale el repositorio que proporciona acceso a versiones de PHP:

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Habilite el módulo PHP 8.3 del repositorio REMI:

dnf module enable php:remi-8.3

Instale PHP y extensiones adicionales:

dnf install -y php-cli php-fpm php-curl php-devel php-pear php-gd php-intl php-ldap php-bcmath php-mbstring php-mysqlnd php-opcache php-pgsql php-soap php-zip php-sqlite3 php-xml

Modifique la cantidad de RAM disponible para la ejecución de scripts PHP:

sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php.ini
aviso

Se recomienda aumentar el parámetro memory_limit de 256M a 512M o superior si se espera que un gran número de usuarios utilice Passwork.

Asegúrese de que el servicio php-fpm esté en ejecución:

systemctl status php-fpm

Inicie y habilite el servicio si está detenido:

systemctl start php-fpm
systemctl enable php-fpm

3.1 Instalación del controlador PHP MongoDB

Instale el controlador PHP MongoDB:

pecl install mongodb
peligro

Presione Enter para aceptar las opciones de compilación predeterminadas.

Cree un archivo de configuración para cargar y habilitar PHP MongoDB:

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

4. Instalación de la base de datos MongoDB

Cree un archivo para agregar el repositorio de MongoDB al gestor de paquetes yum:

nano /etc/yum.repos.d/mongodb-org-7.0.repo

Coloque el siguiente contenido en el archivo:

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc

Instale MongoDB:

dnf install mongodb-org -y

Inicie el servicio mongod.service:

systemctl start mongod.service

Habilite el inicio automático del servicio:

systemctl enable mongod.service

5. Obtención y configuración de Passwork

En línea

Obtenga el script:

wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
peligro

El script de instalación de Passwork no debe ubicarse en el directorio con los archivos del servidor de aplicaciones.

Asigne permisos de ejecución al script:

chmod +x passwork.sh

De forma predeterminada, el script passwork.sh realizará:

  • Creación de un archivo oculto .script_env en el directorio actual;
  • Creación del directorio passwork_archive para copias de seguridad de Passwork;
  • Obtención de la última versión disponible de Passwork, firma y clave pública;
  • Instalación del archivo previamente obtenido en /var/www/
info

Para usar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar los parámetros de ejecución del script.

Ejecute el script:

sudo ./passwork.sh

En la primera ejecución, el script solicitará una clave API y realizará verificaciones básicas del entorno:

Ejemplo de ejecución del script

Ejemplo de ejecución exitosa del script:

Ejecución exitosa del script
Sin conexión

Obtenga el script en otra máquina con acceso a Internet:

wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
info

O obtenga el script passwork.sh manualmente usando el enlace

peligro

El script de instalación de Passwork no debe ubicarse en el directorio con los archivos del servidor de aplicaciones.

Asigne permisos de ejecución al script:

chmod +x passwork.sh

Antes de ejecutar passwork.sh, necesita:

  • Obtener Passwork versión 7 desde nuestro Portal de cliente (obligatorio);
  • Colocarlo en el directorio de ejecución o usar el argumento --input para especificar la ubicación (obligatorio);
  • Obtener la firma del archivo y la clave pública de Passwork (opcional si usa el argumento --skip).

De forma predeterminada, el script passwork.sh realizará:

  • Creación del directorio passwork_archive para copias de seguridad de Passwork;
  • Extracción del archivo de Passwork;
  • Instalación del archivo previamente obtenido en /var/www/
info

Para usar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar los parámetros de ejecución del script.

Después de la preparación, ejecute el script passwork.sh:

sudo ./passwork.sh -offline

Ejemplo de ejecución exitosa del script sin conexión:

Ejecución exitosa del script sin conexión

6. Configuración del servidor web para protocolo HTTPS

info

Para garantizar el correcto funcionamiento, es necesario utilizar el protocolo HTTPS. El uso de HTTP provocará errores.

6.1 Generación de certificado SSL autofirmado

Instale el módulo SSL para Apache2:

dnf install mod_ssl -y

Cree un nuevo directorio para almacenar la clave privada y el certificado:

mkdir /etc/ssl/private

Genere un certificado X.509 autofirmado para Apache2 usando OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
peligro

En el campo Common Name (CN), es importante especificar la dirección IP de su servidor o el nombre de host, ya que su certificado debe coincidir con el dominio (o dirección IP) del sitio web.

Genere parámetros Diffie-Hellman con una longitud de clave de 2048:

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

Agregue los parámetros Diffie-Hellman al certificado autofirmado:

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

Establezca los permisos del usuario root para proteger la clave privada y el certificado:

chmod 700 /etc/ssl/private

6.2 Configuración del host virtual para acceso HTTPS

peligro

Antes de configurar el servidor web con la terminación SSL habilitada, se recomienda revisar las características de configuración.

Abra el archivo de configuración para configurar el protocolo HTTPS:

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

Encuentre la sección que comienza con <VirtualHost _default_:443> y realice los siguientes cambios:

  • Descomente la línea DocumentRoot y cambie la ruta al directorio raíz de Passwork /var/www/public;
  • Descomente la línea ServerName y cambie www.example.com por la dirección IP o el dominio del servidor (dependiendo del valor especificado en el Common Name del certificado):
DocumentRoot /var/www/public
ServerName passwork:443
  • Agregue la directiva <Directory> después de ServerName:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride All
Require all granted
</Directory>
  • Actualice las rutas a los archivos de certificado generados anteriormente:
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
  • Cambie el manejador de archivos .php para redirigir solicitudes al socket php-fpm:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
  • Verifique que el bloque SSL Virtual Host Context coincida con el ejemplo:
<VirtualHost _default_:443>

DocumentRoot "/var/www/public"
ServerName passwork:443

<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride All
Require all granted
</Directory>

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLHonorCipherOrder on
SSLCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite PROFILE=SYSTEM

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

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>
peligro

Importante: copiar y pegar el ejemplo anterior en el archivo de configuración causará errores porque el ejemplo muestra solo un fragmento del bloque, no el archivo de configuración completo.

Reinicie los servicios:

systemctl restart php-fpm
systemctl restart httpd

7. Completar la lista de verificación

Al conectarse por primera vez a Passwork, necesita completar una lista de verificación de parámetros, durante la cual se realizará lo siguiente:

  • Verificación de parámetros necesarios
  • Conexión a la base de datos MongoDB
  • Elección del modo de cifrado de datos
  • Generación aleatoria de clave para cifrar datos en MongoDB
  • Verificación de la clave de licencia

Después de completar la lista de verificación, se le solicitará crear el primer usuario en Passwork, donde necesitará especificar un inicio de sesión, contraseña y dirección de correo electrónico para el envío de notificaciones.

info

Los parámetros adicionales de componentes, configuraciones de seguridad y configuraciones del sistema de Passwork están disponibles en la sección de configuración avanzada.