Saltar al contenido principal

Debian

info

Instrucciones para instalar Passwork en el sistema operativo:

  • Debian 11
  • Debian 12
peligro

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.

Familiarícese con los requisitos completos del sistema.

info

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:

sudo -i 
apt-get update

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

apt-get install -y apache2 unzip curl zip jq

3. Instalación de PHP

Instale paquetes para trabajar con repositorios HTTPS:

apt-get install -y apt-transport-https lsb-release ca-certificates

Obtenga y guarde la clave GPG del repositorio PHP:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Agregue el repositorio PHP a la lista de fuentes apt:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

Actualice el paquete local y la lista de repositorios:

apt update

Instale PHP y módulos de extensión:

apt install -y php8.3 php8.3-cli php8.3-bcmath php8.3-fpm php8.3-curl php8.3-gd php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-soap php8.3-zip php8.3-sqlite3 php8.3-xml php8.3-dev php-pear

Cambie la cantidad de RAM disponible para ejecutar scripts PHP:

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

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 php8.3-fpm esté ejecutándose:

systemctl status php8.3-fpm

Inicie y habilite el servicio para que se inicie automáticamente si se detiene:

systemctl start php8.3-fpm
systemctl enable php8.3-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 archivos de configuración para cargar y habilitar PHP MongoDB:

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

4. Instalación de la base de datos MongoDB

Descargue y agregue la clave GPG de MongoDB:

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Agregue el repositorio de MongoDB al archivo:

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Actualiza la lista de paquetes disponibles:

apt-get update

Instale MongoDB usando el administrador de paquetes apt:

apt-get install -y mongodb-org

Inicie el servicio mongod.service:

systemctl start mongod.service

Habilite el servicio para que se inicie automáticamente:

systemctl enable mongod.service

5. Obtención y configuración de Passwork

En línea

Obtenga el guión:

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

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

Asigne derechos de ejecución al script:

chmod +x passwork.sh

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

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

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:

Example of script launch

Ejemplo de ejecución exitosa de un script:

Successful script execution
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 Passwork no debe ubicarse en el directorio con los archivos del servidor de aplicaciones.

Asigne derechos 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 --input para especificar la ubicación (Obligatorio);
  • Obtenga la firma de archivo and public key of Passwork (optional if using the --skip argument).

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

  • Crear un directorio passwork_archive para copias de seguridad Passwork;
  • Extrayendo el archivo Passwork;
  • Instalación del archivo obtenido anteriormente en /var/www/
info

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:

Successful offline script execution

6. Configuración del servidor web para el protocolo HTTPS

info

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

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

mkdir /etc/apache2/ssl/

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

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/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.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;
info

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.

Configure los derechos de acceso del usuario raíz para proteger la clave privada y el certificado:

chmod 600 /etc/apache2/ssl/*

6.2 Configuración de host virtual para acceso HTTPS

peligro

Antes de configurar el servidor web con la terminación SSL habilitada, se recomienda familiarizarse con las funciones de configuración.

Habilite el módulo SSL en Apache2, permitiendo que el servidor admita el protocolo HTTPS:

a2enmod ssl

Habilite el archivo de configuración del host virtual para el sitio con la configuración de conexión SSL:

a2ensite default-ssl

Abra el archivo de configuración del host virtual para la conexión HTTPS:

nano /etc/apache2/sites-enabled/default-ssl.conf

Realice los siguientes cambios:

  • Agregue la línea ServerName y cambie www.example.com a la dirección o dominio IP del servidor (dependiendo del valor especificado en el Common Name del certificado);
  • Descomente la línea DocumentRoot y cambie la ruta al directorio raíz de Passwork (/var/www/public);
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
  • Agregue la directiva <Directory> después de ServerName:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
  • Actualice las rutas a los archivos de certificado generados anteriormente:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  • Cambie el controlador del archivo .php, especificando solicitudes de proxy al socket php-fpm:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
  • Después de realizar cambios, verifique que el archivo de configuración del host virtual coincida con el ejemplo:
<VirtualHost *:443>
ServerName passwork:443
DocumentRoot /var/www/public

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

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

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

Habilite módulos y reinicie servicios:

a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2

7. Lista de verificación para aprobar

Cuando se conecta por primera vez a Passwork, debe revisar la 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 pasar la lista de verificación, se le pedirá que cree el primer usuario en Passwork, donde deberá especificar el nombre de usuario, la contraseña y la dirección de correo electrónico para enviar notificaciones.

info

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