Cómo instalar SysPass Password Manager en Rocky Linux
SysPass es un gestor de contraseñas de código abierto escrito en PHP con encriptación AES-256 CTR. Está diseñado para la gestión centralizada y colaborativa de contraseñas. Proporciona una gestión avanzada de perfiles, multiusuario con usuarios, grupos y gestión de perfiles. Admite métodos de autenticación a través de MySQL/MariaDB y OpenLDAP Active Directory, y está diseñado de forma interactiva con material design a través de HTML5 y AJAX.
SysPass proporciona una API que te permite integrarte con otras aplicaciones. Admite la base de datos de contraseñas Keepass y el archivo CSV para importaciones y exportaciones. También proporciona el historial de la cuenta y restaura los puntos, el multilenguaje y los enlaces públicos sin necesidad de iniciar sesión (enlace anónimo).
En este tutorial, instalarás el gestor de contraseñas SysPass con Apache2, MariaDB y PHP en el servidor Linux Rocky. También asegurarás la instalación de SysPass con certificados SSL y también aprenderás a instalar Composer en Rocky Linux para gestionar las dependencias de PHP.
Requisitos previos
Para completar este tutorial, necesitarás los siguientes requisitos:
- Un servidor Rocky Linux – Puedes utilizar Rocky Linux v8 o v9.
- Un usuario no root con privilegios sudo de root.
- Un nombre de dominio completo que apunte a la dirección IP de tu servidor.
Instalación del servidor web Httpd
Para esta guía, ejecutarás el gestor de contraseñas SysPass con el servidor web Apache o httpd. En Rocky Linux, el servidor web httpd está disponible por defecto en los repositorios BaseOS y AppStream.
Instalarás el servidor web httpd fácilmente a través del repositorio oficial de Rocky Linux.
Ejecuta el siguiente comando dnf para instalar el servidor web httpd.
sudo dnf install httpd
Introduce Y para confirmar la instalación y pulsa ENTER para continuar.
Una vez instalado el httpd, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio httpd. El comando ‘systemctl enable’ te permite ejecutar servicios al arrancar el sistema.
sudo systemctl start httpd
sudo systemctl enable httpd
Ahora, ejecuta el siguiente comando para verificar el estado del servicio httpd y asegurarte de que el servicio se está ejecutando.
sudo systemctl status httpd
Recibirás la salida como la siguiente captura de pantalla. El servicio httpd se está ejecutando y está habilitado.
Ahora, si tienes el firewalld en marcha en tu servidor Rocky Linux, debes añadir los servicios HTTP y HTTPS al firewalld.
Ejecuta el siguiente comando firwewall-cmd para añadir el servicio HTTP y HTTPS al firewalld.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
Después, recarga el firewalld y verifica el estado de la regla con el siguiente comando.
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Deberías ver el resultado de que el servicio HTTP y HTTPS se ha añadido al firewalld.
Instalación del servidor MariaDB
El gestor de contraseñas SysPass admite MySQL o MariaDB para la base de datos. En este paso, instalarás MariaDB y lo asegurarás mediante el comando mysql_secure_installation.
El mysql_secure_installation es una línea de comandos proporcionada por los paquetes de MariaDB que te permite configurar tu instalación de MariaDB, como por ejemplo, configurar la contraseña de root, desactivar el inicio de sesión remoto para el usuario root, eliminar el usuario anónimo y probar la base de datos.
Para instalar MariaDB, ejecuta el siguiente comando dnf. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.
sudo dnf install mariadb-server
Una vez instalado MariaDB, inicia y habilita el servicio MariaDB mediante el siguiente comando systemctl.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Ahora verifica el servicio MariaDB para asegurarte de que el servicio está habilitado y funcionando.
sudo systemctl status mariadb
Deberías ver la salida del servicio MariaDB está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado del servicio MariaDB es de ejecución.
Ahora que el servicio MariaDB se está ejecutando, es el momento de asegurar la implementación de MariaDB mediante el comando‘mysql_secure_installation‘.
Ejecuta el siguiente comando para asegurar tu instalación de MariaDB.
sudo mysql_secure_installation
Ahora se te pedirán las siguientes configuraciones del servidor MariaDB:
- ¿Cambiar la autenticación a unix_socket? introduce n para no.
- ¿Cambiar la contraseña de la raíz de MariaDB? introduce y para confirmar, luego introduce la nueva contraseña de tu usuario raíz de MariaDB.
- ¿Desactivar el inicio de sesión remoto para el usuario raíz?
- ¿Eliminar el usuario anónimo? introduce y.
- ¿Eliminar la prueba de la base de datos por defecto?
- Por último, ¿recargar los privilegios de las tablas y aplicar las nuevas configuraciones? introduce y para confirmar.
Ahora has instalado y asegurado MariaDB en tu servidor.
Instalación de PHP
Después de instalar MariaDB, ahora vas a instalar PHP en tu servidor Rocky Linux. El gestor de contraseñas SysPass requiere la instalación de PHP 7.4, por lo que ahora lo instalarás a través del repositorio REMI.
Para Rocky Linux 8 – ejecuta el siguiente comando para añadir el repositorio REMI.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Para Rocky Linux 9 – ejecuta el siguiente comando para añadir el repositorio REMI
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Introduce «y» cuando se te pida que confirmes la instalación.
Ahora, ejecuta el siguiente comando dnf para verificar la lista de paquetes PHP disponibles. Y deberías ver que el repositorio REMI proporciona múltiples versiones de PHP 7.4, 8.0, 8.1 y 8.2.
sudo dnf module list php
Para la instalación de SysPass, instalarás PHP 7.4. Por tanto, ejecuta el siguiente comando para habilitar el módulo PHP ‘remi-7.4’. Introduce Y para confirmar y habilitar el módulo.
sudo dnf module enable php:remi-7.4
Ahora ejecuta el siguiente comando dnf para instalar PHP 7.4 en tu sistema.
sudo dnf install -y php php-pear php-cgi php-cli php-common php-gd php-json php-mysql php-readline php curl php-intl php-ldap php-mcrypt php-xml php-mbstring php-zip
La instalación debería comenzar y se te pedirá que confirmes la instalación. Introduce Y y pulsa ENTER para continuar.
Una vez instalado PHP, edita el archivo de configuración por defecto ‘/etc/php.ini’ con el siguiente comando.
sudo nano /etc/php/7.4/apache2/php.ini
Cambia la configuración por defecto de PHP con los siguientes ajustes. asegúrate de ajustar la zona horaria y el límite de memoria de acuerdo con el entorno de tu sistema.
post_max_size = 120M
upload_max_filesize = 120M
max_execution_time = 6000
memory_limit = 256M
date.timezone = Europe/Stockholm
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora, ejecuta el siguiente comando systemctl para reiniciar el servicio httpd y aplicar las configuraciones de PHP. Y ya has terminado la instalación básica de LAMP Stack para SysPass Password Manager.
sudo systemctl restart httpd
Instalación de Composer
Otra dependencia necesaria para SysPass es Composer. Este se utilizará para instalar las dependencias de PHP para la aplicación web de SysPass.
Ejecuta el siguiente comando para instalar Composer en tu máquina Rocky Linux.
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
A continuación recibirás la salida:
Ahora, verifica el Composer utilizando el siguiente comando. Deberías ver la versión de PHP Composer que está instalada en tu sistema.
sudo -u apache composer -v
Una vez instalado Composer, lo siguiente será iniciar la instalación de SysPass.
Instalación de SysPass Password Manager
Para empezar, ejecuta el siguiente comando dnf para instalar los paquetes git y unzip en tu sistema.
sudo dnf install git unzip -y
Ahora, descarga el código fuente de SysPass mediante el comando git en el directorio de instalación ‘/var/www/syspass’.
git clone https://github.com/nuxsmin/sysPass.git /var/www/syspass
Ejecuta el siguiente comando para cambiar la propiedad y el permiso del directorio de instalación de SysPass. El propietario debe ser el usuario‘apache‘, que es el que ejecuta el httpd.
sudo chown -R apache:apache /var/www/syspass
sudo chmod 750 /var/www/syspass/app/config /var/www/syspass/app/backup
A continuación, ejecuta el siguiente comando para crear un directorio de caché para Composer. Luego, cambia la propiedad al usuario apache. Este directorio se utilizará para almacenar las dependencias de PHP para tu aplicación.
sudo mkdir -p /usr/share/httpd/.cache
sudo chown -R apache:apache /usr/share/httpd/.cache
Por último, muévete al directorio de instalación de SysPass‘/var/www/syspass’ e instala las dependencias de PHP para SysPass mediante el siguiente comando de Composer.
cd /var/www/syspass
sudo -u apache composer install --no-interaction --no-dev
En la siguiente captura de pantalla, verás la instalación de las dependencias de PHP para el gestor de contraseñas SysPass.
Una vez instaladas las dependencias de PHP, pasa al siguiente paso.
Configurar SELinux
Si estás ejecutando SysPass con SELinux en el modo de refuerzo, debes añadir una nueva regla de SELinux a tu sistema.
Antes de empezar a gestionar SELinux, ejecuta el siguiente comando para asegurarte de que el siguiente paquete está instalado.
sudo dnf install policycoreutils-python-utils -y
Después, ejecuta el siguiente comando para añadir la política de SELinux que utilizará SysPass.
En este comando, permitirás que el servicio httpd se conecte al LDAP a través de la red (cuando estés utilizando la autenticación LDAP), y también estás etiquetando la etiqueta correcta para el código fuente de SysPass.
sudo setsebool -P httpd_can_connect_ldap 1
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/syspass/app/(config|backup|cache|temp)(/.*)?"
sudo restorecon -R -v /var/www/syspass
Configurar el host virtual Httpd
Ahora vas a configurar el host virtual httpd/apache2 para el gestor de contraseñas SysPass. antes de empezar, asegúrate de que tienes certificados SSL y de que el nombre de dominio apunta a la dirección IP de tu servidor.
Ejecuta el siguiente comando dnf para instalar el paquete mod_ssl para el servidor web httpd.
sudo dnf install mod_ssl -y
Una vez instalado mod_ssl, ejecuta el siguiente comando para generar certificados SSL para localhost. Debes generar este certificado, de lo contrario, el httpd no funcionará. Este certificado es utilizado por localhost en la configuración‘/etc/httpd/conf.d/ssl.conf‘.
sudo openssl req -newkey rsa:4096 -x509 -sha512 -days 365 -nodes -out /etc/pki/tls/certs/localhost.crt -keyout /etc/pki/tls/private/localhost.key
A continuación, crea una nueva configuración de host virtual ‘/etc/httpd/conf.d/syspass.conf’ utilizando el siguiente comando del editor nano.
sudo nano /etc/httpd/conf.d/syspass.conf
Añade la siguiente configuración al archivo. Y asegúrate también de cambiar el nombre de dominio y la ruta de los certificados SSL.
#
# File: syspass.conf
#
RedirectMatch "^/$" "/index.php"
<Directory "/var/www/syspass">
DirectoryIndex index.php
Options -Indexes -FollowSymLinks -Includes -ExecCGI
<RequireAny>
Require expr "%{REQUEST_URI} =~ m#.*/index\.php(\?r=)?#"
Require expr "%{REQUEST_URI} =~ m#.*/api\.php$#"
Require expr "%{REQUEST_URI} =~ m#^/?$#"
</RequireAny>
</Directory>
<FilesMatch ".(png|jpg|js|css|ttf|otf|eot|woff|woff2|ico)$">
Require all granted
</FilesMatch>
<VirtualHost *:80>
ServerName syspass.hwdomain.io
ServerAdmin webmaster@localhost
DocumentRoot /var/www/syspass
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
<IfModule mod_ssl.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName syspass.hwdomain.io
ServerAdmin webmaster@localhost
DocumentRoot /var/www/syspass
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/syspass.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/syspass.hwdomain.io/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando para verificar la configuración de httpd y asegúrate de que tienes una configuración httpd correcta.
sudo apachectl configtest
Si tienes una configuración httpd correcta y adecuada, verás un mensaje de salida como‘Sintaxis OK‘.
Por último, ejecuta el siguiente comando systemctl para reiniciar el servicio httpd y aplicar los nuevos cambios. Tu gestor de contraseñas SysPass está ahora instalado y listo para ser configurado.
sudo systemctl restart httpd
Configuración del gestor de contraseñas SysPass
Abre tu navegador web y visita el nombre de dominio de tu instalación de SysPass (por ejemplo: https://syspass.hwdomain.io).
Ahora tendrás que crear un nuevo usuario y contraseña de administrador para tu SysPass. A continuación, introduce la nueva contraseña maestra. Asegúrate de utilizar contraseñas fuertes y fáciles de recordar tanto para el administrador como para el maestro.
En la página inferior, introduce el nombre de usuario de la base de datos como root e introduce tu contraseña. A continuación, introduce el nombre de la base de datos que creará automáticamente el instalador de SysPass.
Además, puedes cambiar el idioma de instalación por defecto por el que prefieras.
Cuando estés listo, haz clic en«INSTALAR» para iniciar la instalación de SysPass.
Una vez instalado SysPass, aparecerá la página de inicio de sesión de SysPass Password Manager.
Introduce tu usuario y contraseña de administrador, y haz clic en el botón de inicio de sesión.
Si utilizas el usuario y la contraseña correctos, verás el panel de SysPass Password Manager.
Desde ahí, ahora puedes añadir nuevos usuarios y grupos, importar contraseñas de la base de datos desde archivos CSV o archivos de la base de datos Kepass, o también puedes integrar la autenticación mediante LDAP.
Conclusión
En este tutorial, has instalado y configurado el gestor de contraseñas SysPass en Rocky Linux. También has instalado la pila LAMP (Apache2/httpd, MariaDB y PHP) y Composer en tu servidor Rocky Linux.
Con SysPass instalado y asegurado, ahora puedes utilizarlo como tu gestor de contraseñas diario. o puedes añadir más usuarios para tu organización interna.