Alma/Rocky/CentOS
Passwork instrucciones de instalación para el sistema operativo:
- CentOS 8 Stream, Alma Linux 8, Rocky Linux 8.
- CentOS 9 Stream, Alma Linux 9, Rocky Linux 9.
Las instrucciones utilizan bloques de código intercambiables para separar comandos según las versiones del sistema operativo.
1. Requisitos mínimos del sistema
Passwork no exige recursos del sistema y la cantidad requerida de servidores depende de la cantidad de usuarios activos, el volumen de datos almacenados y los requisitos de tolerancia a fallas del sistema.
Revise los requisitos completos del sistema.
Si el servidor tiene entre 2 y 4 GB de RAM, recomendamos habilitar un archivo SWAP.
2. Acciones básicas antes de la instalación
Obtenga privilegios root y actualice la base de datos del paquete local:
- shell
sudo -i
dnf makecache
Instale el servidor web Apache2 y la utilidad de transferencia de datos curl:
- shell
dnf install -y httpd unzip curl zip jq
Reemplace la ubicación DocumentRoot en la configuración de Apache:
- shell
sed -i 's|^DocumentRoot "/var/www/html"|DocumentRoot "/var/www"|' /etc/httpd/conf/httpd.conf
Inicie el servicio httpd.service:
- shell
systemctl start httpd.service
Habilite el servicio para que se inicie automáticamente:
- shell
systemctl enable httpd.service
2.1 Instalación y configuración básica de Firewalld
Instale el servicio de administración dinámica de firewall Firewalld:
- shell
dnf install firewalld -y
Inicie el servicio firewalld.service:
- shell
systemctl start firewalld.service
Habilite el servicio para que se inicie automáticamente:
- shell
systemctl enable firewalld.service
Agregue el protocolo HTTPS a la lista de servicios permitidos en la configuración del Firewalld:
- shell
firewall-cmd --permanent --add-service=https
Aplicar cambios a la configuración del Firewalld:
- shell
firewall-cmd --reload
2.2 Deshabilitar SELinux y reiniciar el sistema operativo
Edite el archivo de configuración /etc/selinux/config:
- shell
nano /etc/selinux/config
Cambie el valor del parámetro SELINUX de enforcing a disabled:
- shell
SELINUX=disabled
Guarde los cambios (Ctrl+O) y salga (Ctrl+X). Reinicie el sistema para aplicar los cambios de SELinux:
- shell
reboot
3. Instalación de PHP
Instale el paquete EPEL (epel-release) y las utilidades de administración de paquetes yum (yum-utils):
- shell
dnf -y install epel-release yum-utils
Descargue e instale el último repositorio EPEL:
- OS 9
- OS 8
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Descargue e instale el repositorio que brinda acceso a las versiones de PHP:
- OS 9
- OS 8
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Habilite el módulo PHP 8.3 desde el repositorio REMI:
- shell
dnf module enable php:remi-8.3
Instale PHP y extensiones adicionales:
- shell
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
Cambie la cantidad de RAM disponible para ejecutar scripts PHP:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php.ini
Se recomienda aumentar el parámetro memory_limit de 256M a 512M o superior si se espera que una gran cantidad de usuarios utilicen Passwork.
Asegúrese de que el servicio php-fpm esté ejecutándose:
- shell
systemctl status php-fpm
Inicie y habilite el servicio si está detenido:
- shell
systemctl start php-fpm
systemctl enable php-fpm
3.1 Instalación del controlador PHP MongoDB
Instale el controlador PHP MongoDB:
- shell
pecl install mongodb
Presione Enter para aceptar las opciones de compilación predeterminadas.
Cree un archivo de configuración para cargar y habilitar PHP MongoDB:
- shell
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 administrador de paquetes yum:
- shell
nano /etc/yum.repos.d/mongodb-org-7.0.repo
Coloque el siguiente contenido en el archivo:
- OS 9
- OS 8
[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
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
Instalar MongoDB:
- shell
dnf install mongodb-org -y
Inicie el servicio mongod.service:
- shell
systemctl start mongod.service
Habilite el servicio para que se inicie automáticamente:
- shell
systemctl enable mongod.service
5. Obtención y configuración de Passwork
En línea
Obtenga el guión:
- wget
- curl
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
El script de instalación Passwork no debe estar ubicado 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:
- Cree un archivo
.script_envoculto en el directorio actual; - Cree un directorio
passwork_archivepara las copias de seguridad Passwork; - Obtenga la última versión, firma y clave pública de Passwork disponibles;
- Instale el archivo obtenido anteriormente en
/var/www/
Para utilizar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar parámetros de inicio de script.
Ejecute el script:
sudo ./passwork.sh
En la primera ejecución, el script solicitará una clave API y realizará comprobaciones básicas del entorno:

Ejemplo de ejecución exitosa de un script:

Sin conexión
Obtenga el script en otra máquina con acceso a Internet:
- wget
- curl
- PowerShell
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/linux/scripts/passwork.sh", "$PWD\passwork.sh")
O obtenga el script passwork.sh manualmente usando el enlace
El script de instalación Passwork no debe estar ubicado 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:
- Obtenga Passwork versión 7 de nuestro Portal del Cliente (mandatory);
- Colóquelo en el directorio de inicio o use el argumento
--inputpara especificar la ubicación (obligatorio); - Obtenga la firma de archivo and public key of Passwork (optional if using the
--skipargument).
De forma predeterminada, el script passwork.sh:
- Cree un directorio
passwork_archivepara las copias de seguridad Passwork; - Extraiga el archivo Passwork;
- Instale el archivo obtenido anteriormente en
/var/www/
Para utilizar una ruta de instalación no estándar, deshabilitar la verificación de certificados o cambiar el comportamiento, puede utilizar parámetros de inicio de script.
Después de la preparación, ejecute el script passwork.sh:
sudo ./passwork.sh -offline
Ejemplo de ejecución exitosa de un script sin conexión:

6. Configuración del servidor web para el protocolo HTTPS
Para garantizar un correcto funcionamiento es necesario utilizar el protocolo HTTPS. El uso de HTTP generará errores.
6.1 Generación de certificado SSL autofirmado
Instale el módulo SSL para Apache2:
- shell
dnf install mod_ssl -y
Cree un nuevo directorio para almacenar la clave privada y el certificado:
- shell
mkdir /etc/ssl/private
Genere un certificado X.509 autofirmado para Apache2 usando OpenSSL:
- shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100' -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Common Name (CN): especifique la dirección IP o el nombre de host de su servidor para que coincida con la forma en que los usuarios llegan al sitio (por nombre de dominio o dirección IP);subjectAltName (SAN): pase-addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100'y reemplace el nombre de host y el ejemplo IP con los valores que sus clientes realmente usan;
Navegadores y SAN: los navegadores se basan principalmente en la extensión Nombre alternativo del sujeto (SAN) al validar HTTPS, no solo en CN (nombre común). Para evitar que los nombres de host no coincidan, incluya entradas SAN para DNS y IP que coincidan con las direcciones que los usuarios ingresan en el navegador.
Genere parámetros Diffie-Hellman con una longitud de clave de 2048:
- shell
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Agregue parámetros Diffie-Hellman al certificado autofirmado:
- shell
cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt
Establezca permisos de usuario raíz para proteger la clave privada y el certificado:
- shell
chmod 700 /etc/ssl/private
6.2 Configuración de host virtual para acceso HTTPS
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:
- shell
nano /etc/httpd/conf.d/ssl.conf
Busque 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 Passwork
/var/www/public; - Descomente la línea ServerName y cambie
www.example.compor la dirección o dominio IP del servidor (según el valor especificado enCommon Namedel certificado):
- shell
DocumentRoot /var/www/public
ServerName passwork:443
- Agregue una directiva
<Directory>después deServerName:
- shell
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride All
Require all granted
</Directory>
- Actualice las rutas a los archivos de certificado generados anteriormente:
- shell
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
- Cambie el controlador del archivo .php a solicitudes de proxy al socket php-fpm:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
- Verifique que el bloque
SSL Virtual Host Contextcoincida con el ejemplo:
- shell
<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>
Importante: copiar y pegar el ejemplo anterior en el archivo de configuración provocará errores porque el ejemplo muestra solo un fragmento del bloque, no el archivo de configuración completo.
Reiniciar servicios:
- shell
systemctl restart php-fpm
systemctl restart httpd
7. Completar la lista de verificación
Cuando se conecta por primera vez a Passwork, debe completar una lista de verificación de parámetros, durante la cual se realizará lo siguiente:
- Comprobando los parámetros necesarios
- Conexión a la base de datos MongoDB
- Elegir un modo de cifrado de datos
- Clave generada aleatoriamente para cifrar datos en MongoDB
- Verificación de clave de licencia
Después de completar la lista de verificación, se le pedirá que cree el primer usuario en Passwork, donde deberá especificar un nombre de usuario, contraseña y dirección de correo electrónico para enviar notificaciones.
Los parámetros de componentes adicionales, configuraciones de seguridad y configuraciones del sistema Passwork están disponibles en la sección configuración avanzada.