如何在 Ubuntu 22.04 上安装 SysPass 密码管理器
SysPass 是一个用 PHP 编写的开源密码管理器,采用 AES-256 CTR 加密。它专为集中式和协作式密码管理而设计。它提供先进的配置文件管理、多用户用户、组和配置文件管理。通过 MySQL/MariaDB 和 OpenLDAP Active Directory 支持多种身份验证方法。
SysPass 提供了一个 API,允许您集成其他应用程序。支持Keepass密码数据库和CSV文件的导入和导出。它还提供帐户历史记录和恢复点、多种语言以及无需登录的公共链接(匿名链接)。
在本指南中,您将学习如何在 Ubuntu 22.04 服务器上安装 SysPass 密码管理器。在本指南中,SysPass 与 LAMP 堆栈一起运行,因此我们还将介绍 Ubuntu 系统上 LAMP 堆栈(Apache2、MariaDB 和 PHP)的基本安装。
要求
对于本教程,您需要满足以下先决条件:
- Ubuntu 22.04 服务器 - 本指南使用主机名“syspass”的最新 Ubuntu 22.04 服务器。
- 具有 sudo root 权限的非 root 用户 - 您也可以使用 root 用户。
- 指向服务器 IP 地址的域名 - 如果您想在生产环境中安装 SysPass,这一点尤其重要。
现在让我们继续安装。
安装 Apache2 Web 服务器
SysPass 是一个主要用 PHP 编写的 Web 应用程序。您可以使用 Apache 或其他 Web 服务器(例如 Nginx)运行 SysPass。在本指南中,您将安装并使用 Apache2。
在安装软件包之前,请运行以下 apt 命令来更新并刷新您的 Ubuntu 软件包索引。
sudo apt update
现在运行以下 apt 命令来安装 Apache2 Web 服务器。默认的 Ubuntu 存储库包含最新版本的 Apache2 Web 服务器。
sudo apt install apache2
当提示确认安装时,输入 Y 并按 ENTER 继续。
安装 Apache2 后,检查“apache2”服务并确保其已启用并正在运行。运行以下 systemctl 命令。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
您将看到“apache2”服务已启用并在系统启动时自动运行。您还可以看到“apache2”服务正在运行。
最后,运行以下命令将 Apache Full 应用程序配置文件添加到 UFW。然后检查启用的规则列表。
Apache完整应用程序配置文件包含在 Apache2 软件包中。它打开 HTTP 和 HTTPS 端口(80 和 443)。
sudo ufw allow "Apach Full"
sudo ufw status
您将看到Apache Full应用程序配置文件已添加。
安装 MariaDB 服务器
SysPass 密码管理器支持 MySQL 和 MariaDB 数据库和身份验证。在本指南中,您将安装并使用 MariaDB 作为安装的默认数据库。
默认情况下,MariaDB 包在 Ubuntu 存储库中可用。运行以下 apt 命令来安装它。
sudo apt install mariadb-server
当提示确认安装时,键入Y,然后按ENTER继续。
MariaDB安装完成后,您可以使用systemctl命令来验证MariaDB服务是否正在运行并启用。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
您将看到如下屏幕截图所示的输出。 MariaDB 服务在启动时启用并自动运行。并且MariaDB服务的状态现在是“正在运行”。
现在 MariaDB 服务正在运行,请运行以下命令来配置 MariaDB 服务器。
sudo mysql_secure_installation
系统将提示您进行一些 MariaDB 服务器配置。输入 y 表示是,输入 n 表示否。
- 当提示输入 root 密码时,请先按ENTER。 MariaDB 默认安装不指定密码。
- 将 root 身份验证更改为 unix_socket?输入n。
- 设置 MariaDB root 密码?使用 y 确认,然后输入 MariaDB 服务器安装的新密码。
- 禁用 root 用户的远程身份验证?输入y。
- 从 MariaDB 中删除匿名用户?输入y。
- 从 MariaDB 中删除数据库测试?输入 j。
- 重新加载表权限并应用配置?
您现在已经在 Ubuntu 系统上完成并备份了 MariaDB。
安装和配置 PHP
SysPass 是一个用 PHP 编写的密码管理器。因此,您需要在系统上安装 PHP。 SysPass 的最新版本需要 PHP 7.4,您现在可以从 PPA 存储库安装它。
在开始 PHP 安装之前,请运行以下 apt 命令来安装用于存储库管理的软件包。
sudo apt install software-properties-common apt-transport-https -y
现在运行以下命令来添加 PHP PPA 存储库。默认的 Ubuntu 存储库提供 PHP 8.x,SysPass 尚不支持该版本,因此您将使用 PHP 7.4。
sudo add-apt-repository ppa:ondrej/php -y
您现在将看到新的 PPA 存储库已添加,并且您的包索引将自动更新。
添加 PPA 存储库后,运行以下 apt 命令来安装 PHP 7.4 软件包。当提示安装时键入 Y,然后按 ENTER。
sudo apt install libapache2-mod-php7.4 php-pear php7.4 php7.4-cgi php7.4-cli php7.4-common php7.4-fpm php7.4-gd php7.4-json php7.4-mysql php7.4-readline php7.4 curl php7.4-intl php7.4-ldap php7.4-mcrypt php7.4-xml php7.4-mbstring
安装 PHP 后,使用以下命令打开/etc/php/7.4/apache2/php.ini 文件。在此示例中,使用了 Nano 编辑器。
sudo nano /etc/php/7.4/apache2/php.ini
使用以下设置更改默认 PHP 配置。确保根据您的环境调整时区和内存限制。
post_max_size = 120M
upload_max_filesize = 120M
max_execution_time = 6000
memory_limit = 256M
date.timezone = Europe/Stockholm
完成后保存文件并退出编辑器。对于 Nano 编辑器,请按“Ctrl+x”并键入“y”以保存并退出。
最后,运行以下 systemctl 命令重新启动 Apache2 Web 服务器并应用 PHP 配置。
sudo systemctl restart apache2
这样就完成了运行 SysPass 密码管理器所需的基本 LAMP 堆栈安装。
安装作曲家
在开始安装 SysPass 之前,您还需要在 Ubuntu 系统上安装 Composer。这用于安装 SysPass 的 PHP 依赖项。
运行以下命令下载并安装 Composer。此命令应将 Composer 安装在“/usr/bin/composer”目录中。
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
现在运行以下命令以确保 Composer 二进制文件在您的系统上可用。然后使用以下命令检查 Composer 版本。
which composer
sudo -u www-data composer -v
您应该会看到 Composer 二进制文件位于“/usr/bin/composer”下,并且已安装的 Composer 版本是 v1.2.xx。
现在 Composer 已安装。接下来,开始安装SysPass。
安装 SysPass 密码管理器
在安装 SysPass 之前,请运行以下 apt 命令来安装并解压基础 git 包。
sudo apt install git unzip -y
现在使用下面的 git 命令将 SysPass 源代码下载到目标目录“/var/www/syspass”。
git clone https://github.com/nuxsmin/sysPass.git /var/www/syspass
接下来,为 Composer 工具创建一个新的 .cache 目录,并将所有者更改为 www-data。
sudo mkdir -p /var/www/.cache
sudo chown -R www-data:www-data /var/www/.cache
现在将工作目录更改为“/var/www/syspass”并运行 Composer 命令来安装 PHP 依赖项。
cd /var/www/syspass
sudo -u www-data composer install --no-interaction --no-dev
在下面的屏幕截图中,您可以看到 Composer 安装 PHP 依赖项。
安装 PHP 依赖项后,运行以下命令更改 SysPass 安装目录“/var/www/syspass”的权限和所有权。
sudo chown -R www-data:www-data /var/www/syspass
sudo chmod 750 /var/www/syspass/app/config /var/www/syspass/app/backup
为SysPass配置虚拟主机
在此步骤中,您将为 SysPass 密码管理器创建新的 Apache2 虚拟主机配置。在设置虚拟主机之前,请确保您的域名已经指向服务器的IP地址。另外,请确保您已创建 SSL 证书。
启用 Apache2 模块 ssl 并使用 a2enmod 命令重写(见下文)。
sudo a2enmod ssl rewrite headers
您将看到以下输出。
现在使用以下 nano 命令创建一个新的虚拟主机文件“/etc/apache2/sites-available/syspass.conf”。
sudo nano /etc/apache2/sites-available/syspass.conf
将 SysPass 的虚拟主机配置粘贴到文件底部。请务必更改 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 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/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>
完成后保存文件并退出编辑器。
接下来,使用命令 a2ensite 启用虚拟主机文件“syspass.conf”(见下文)。然后检查 Apache 配置以确保 Apache2 配置正确。
sudo a2ensite syspass.conf
sudo apachectl configtest
如果您的 Apache2 配置正确,您将看到类似“语法正常”的消息。
最后,运行以下 systemctl 命令重新启动 Apache2 服务并应用新的配置更改。
sudo systemctl restart apache2
您现在已经完成了 SysPass 安装并配置了 Apache2 虚拟主机。接下来,从 Web 浏览器访问 SysPass 配置。
SysPass 密码管理器配置
打开 Web 浏览器并访问 SysPass 安装的域名。在此示例中,SysPass 密码管理器安装在域 https://syspass.hwdomain.io/ 上。
输入 SysPass 管理员用户的用户名和密码。然后输入主密码。
在底部页面上,输入 MariaDB 用户 root 和密码的详细信息。然后,输入安装程序将自动创建的数据库名称。
另外,更改默认语言或为您的安装选择“英语”。
单击“安装”开始安装SysPass。
安装完成后,将显示SysPass密码管理器登录页面。
输入您的管理员用户和密码,然后单击“登录”按钮。
如果您使用正确的用户和密码,您现在应该会看到 SysPass 用户仪表板。
现在,您可以向 SysPass 添加更多配置,例如与 LDAP 集成、导入 Keepass 密码数据库或 CSV、添加新用户和组、设置电子邮件通知等。
结论
按照这些说明,您已在 Ubuntu 22.04 服务器上安装了 SysPass 密码管理器。您还在 Ubuntu 系统上安装并配置了 LAMP 堆栈(Apache2、MariaDB 和 PHP),并安装了 Composer 来管理应用程序的 PHP 依赖项。