Zum Hauptinhalt springen

Debian

Anweisungen zur Installation von Passwork auf dem Betriebssystem:

  • Debian 11
  • Debian 12

Die Anweisungen verwenden umschaltbare Codeblöcke, um Befehle entsprechend den Betriebssystemversionen zu trennen

1. Mindestsystemanforderungen

Passwork stellt keine Anforderungen an die Systemressourcen und die erforderliche Anzahl an Servern hängt von der Anzahl der aktiven Benutzer, der Menge der gespeicherten Daten und den Anforderungen an die Fehlertoleranz des Systems ab.

Machen Sie sich mit den vollständigen Systemanforderungen vertraut.

Wenn der Server über 2–4 GB RAM verfügt, empfehlen wir die Aktivierung einer SWAP-Datei.

2. Grundlegende Aktionen vor der Installation

Erhalten Sie root-Berechtigungen und aktualisieren Sie die lokale Paketdatenbank:

sudo -i 
apt-get update

Installieren Sie den Apache2-Webserver und das Datenübertragungsdienstprogramm curl:

apt-get install -y apache2 unzip curl zip jq

3. PHP-Installation

Installieren Sie Pakete für die Arbeit mit HTTPS-Repositorys:

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

Besorgen und speichern Sie den GPG-Schlüssel des PHP-Repositorys:

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

Fügen Sie das PHP-Repository zur apt-Quellenliste hinzu:

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

Aktualisieren Sie die lokale Paket- und Repository-Liste:

apt update

Installieren Sie PHP und Erweiterungsmodule:

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

Ändern Sie die Menge an RAM, die für die Ausführung von PHP-Skripten verfügbar ist:

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

Es wird empfohlen, den Parameter memory_limit von 256M auf 512M oder höher zu erhöhen, wenn erwartet wird, dass eine große Anzahl von Benutzern Passwork verwenden wird.

Stellen Sie sicher, dass der Dienst php8.3-fpm ausgeführt wird:

systemctl status php8.3-fpm

Starten Sie den Dienst und aktivieren Sie ihn so, dass er automatisch startet, wenn er gestoppt wird:

systemctl start php8.3-fpm
systemctl enable php8.3-fpm

3.1 Installation des PHP-MongoDB-Treibers

Installieren Sie den PHP MongoDB-Treiber:

pecl install mongodb

Drücken Sie Enter, um die Standard-Build-Optionen zu akzeptieren.

Erstellen Sie Konfigurationsdateien zum Laden und Aktivieren von 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. Installation der MongoDB-Datenbank

Laden Sie den MongoDB-GPG-Schlüssel herunter und fügen Sie ihn hinzu:

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

Fügen Sie der Datei das MongoDB-Repository hinzu:

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

Aktualisieren Sie die Liste der verfügbaren Pakete:

apt-get update

Installieren Sie MongoDB mit dem Paketmanager apt:

apt-get install -y mongodb-org

Starten Sie den Dienst mongod.service:

systemctl start mongod.service

Aktivieren Sie den automatischen Start des Dienstes:

systemctl enable mongod.service

5. Abrufen und Konfigurieren von Passwork

Online

Besorgen Sie sich das Skript:

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

Das Installationsskript Passwork sollte sich nicht im Verzeichnis mit den Anwendungsserverdateien befinden.

Weisen Sie dem Skript Ausführungsrechte zu:

chmod +x passwork.sh

Standardmäßig führt das passwork.sh-Skript Folgendes aus:

  • Erstellen einer versteckten .script_env-Datei im aktuellen Verzeichnis;
  • Erstellen eines passwork_archive-Verzeichnisses für Passwork-Backups;
  • Erhalten der neuesten verfügbaren Passwork-Version, Signatur und des öffentlichen Schlüssels;
  • Installation des zuvor erhaltenen Archivs in /var/www/

Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skriptstartparameter verwenden.

Führen Sie das Skript aus:

sudo ./passwork.sh

Bei der ersten Ausführung fordert das Skript einen [API-Schlüssel](URL0 an und führt grundlegende Umgebungsprüfungen durch:

Beispiel für den Skriptstart

Beispiel für eine erfolgreiche Skriptausführung:

Skriptausführung erfolgreich
Offline

Rufen Sie das Skript auf einem anderen Computer mit Internetzugang ab:

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

Oder rufen Sie das passwork.sh-Skript manuell über den [Link](URL1 ab.

Das Installationsskript Passwork sollte sich nicht im Verzeichnis mit den Anwendungsserverdateien befinden.

Weisen Sie dem Skript Ausführungsrechte zu:

chmod +x passwork.sh

Bevor Sie passwork.sh ausführen, müssen Sie Folgendes tun:

  • Erhalten Sie Passwork Version 7 von unserem [Kundenportal](URL0 (Mandatory);
  • Platzieren Sie es im Startverzeichnis oder verwenden Sie das Argument --input, um den Speicherort anzugeben (obligatorisch);
  • Erhalten Sie die [Archivsignatur](URL1 and [public key](URL2 of Passwork (optional if using the IC0 argument).

Standardmäßig führt das passwork.sh-Skript Folgendes aus:

  • Erstellen eines passwork_archive-Verzeichnisses für Passwork-Backups;
  • Extrahieren des Passwork-Archivs;
  • Installation des zuvor erhaltenen Archivs in /var/www/

Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skriptstartparameter verwenden.

Führen Sie nach der Vorbereitung das Skript passwork.sh aus:

sudo ./passwork.sh -offline

Beispiel für eine erfolgreiche Offline-Skriptausführung:

Erfolgreiche Offline-Skriptausführung

6. Webserverkonfiguration für das HTTPS-Protokoll

Um einen korrekten Betrieb zu gewährleisten, ist die Verwendung des HTTPS-Protokolls erforderlich. Die Verwendung von HTTP führt zu Fehlern.

6.1 Generieren eines selbstsignierten SSL-Zertifikats

Erstellen Sie ein neues Verzeichnis zum Speichern des privaten Schlüssels und des Zertifikats:

mkdir /etc/apache2/ssl/

Generieren Sie ein selbstsigniertes X.509-Zertifikat für Apache2 mit 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) – Geben Sie die IP-Adresse oder den Hostnamen Ihres Servers an, damit dieser mit der Art und Weise übereinstimmt, wie Benutzer die Site erreichen (per Domänenname oder IP-Adresse);
  • subjectAltName (SAN) – Übergeben Sie -addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100' und ersetzen Sie den Hostnamen und das Beispiel IP durch die Werte, die Ihre Clients tatsächlich verwenden;

Browser und SAN – Browser verlassen sich bei der Validierung von HTTPS in erster Linie auf die Erweiterung Subject Alternative Name (SAN), nicht nur auf CN (Common Name). Um eine Nichtübereinstimmung der Hostnamen zu vermeiden, fügen Sie SAN-Einträge für DNS und IP ein, die mit den Adressen übereinstimmen, die Benutzer im Browser eingeben.

Legen Sie Root-Benutzerzugriffsrechte fest, um den privaten Schlüssel und das Zertifikat zu schützen:

chmod 600 /etc/apache2/ssl/*

6.2 Virtuelle Host-Konfiguration für HTTPS-Zugriff

Bevor Sie den Webserver mit aktivierter SSL-Terminierung konfigurieren, wird empfohlen, sich mit den Konfigurationsfunktionen vertraut zu machen.

Aktivieren Sie das Modul SSL in Apache2, damit der Server das Protokoll HTTPS unterstützen kann:

a2enmod ssl

Aktivieren Sie die virtuelle Host-Konfigurationsdatei für die Site mit den Verbindungseinstellungen SSL:

a2ensite default-ssl

Öffnen Sie die Konfigurationsdatei des virtuellen Hosts für die Verbindung HTTPS:

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

Nehmen Sie die folgenden Änderungen vor:

  • Fügen Sie die Zeile ServerName hinzu und ändern Sie www.example.com in die IP-Adresse oder Domäne des Servers (abhängig vom im Common Name des Zertifikats angegebenen Wert);
  • Kommentieren Sie die Zeile DocumentRoot aus und ändern Sie den Pfad zum Stammverzeichnis von Passwork (/var/www/public);
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
  • Fügen Sie die <Directory>-Direktive nach ServerName hinzu:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
  • Aktualisieren Sie die Pfade zu den zuvor generierten Zertifikatsdateien:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  • Ändern Sie den .php-Datei-Handler und geben Sie Proxy-Anfragen an den PHP-FPM-Socket an:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
  • Überprüfen Sie nach dem Vornehmen von Änderungen, ob die Konfigurationsdatei des virtuellen Hosts mit dem Beispiel übereinstimmt:
<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>

Module aktivieren und Dienste neu starten:

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

7. Checkliste zum Bestehen

Wenn Sie sich zum ersten Mal mit Passwork verbinden, müssen Sie die Parameter-Checkliste durchgehen, bei der Folgendes durchgeführt wird:

  • Überprüfung notwendiger Parameter
  • Verbindung zur MongoDB-Datenbank herstellen
  • Auswahl eines Datenverschlüsselungsmodus – Zufällig generierter Schlüssel zum Verschlüsseln von Daten in MongoDB
  • Überprüfung des Lizenzschlüssels

Nachdem Sie die Checkliste bestanden haben, werden Sie aufgefordert, den ersten Benutzer in Passwork zu erstellen, wo Sie den Benutzernamen, das Passwort und die E-Mail-Adresse zum Senden von Benachrichtigungen angeben müssen.

Weitere Komponentenparameter, Sicherheitseinstellungen und die Passwork-Systemkonfiguration sind im Abschnitt erweiterte Einstellungen verfügbar.