Alma/Rocky/CentOS
Installationsanleitung für Passwork auf dem Betriebssystem:
- CentOS 8 Stream, Alma Linux 8, Rocky Linux 8.
- CentOS 9 Stream, Alma Linux 9, Rocky Linux 9.
Die Anleitung verwendet umschaltbare Codeblöcke, um Befehle nach Betriebssystemversionen zu trennen.
1. Minimale Systemanforderungen
Passwork stellt keine hohen Anforderungen an die Systemressourcen, und die erforderliche Anzahl von Servern hängt von der Anzahl der aktiven Benutzer, dem Volumen der gespeicherten Daten und den Anforderungen an die Fehlertoleranz des Systems ab.
Bitte lesen Sie die vollständigen Systemanforderungen.
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-Rechte und aktualisieren Sie die lokale Paketdatenbank:
- shell
sudo -i
dnf makecache
Installieren Sie den Apache2-Webserver und das Datenübertragungsprogramm curl:
- shell
dnf install -y httpd unzip curl zip jq
Ersetzen Sie den DocumentRoot-Speicherort in der Apache-Konfiguration:
- shell
sed -i 's|^DocumentRoot "/var/www/html"|DocumentRoot "/var/www"|' /etc/httpd/conf/httpd.conf
Starten Sie den Dienst httpd.service:
- shell
systemctl start httpd.service
Aktivieren Sie den automatischen Start des Dienstes:
- shell
systemctl enable httpd.service
2.1 Installation und Grundkonfiguration von Firewalld
Installieren Sie den dynamischen Firewall-Verwaltungsdienst Firewalld:
- shell
dnf install firewalld -y
Starten Sie den Dienst firewalld.service:
- shell
systemctl start firewalld.service
Aktivieren Sie den automatischen Start des Dienstes:
- shell
systemctl enable firewalld.service
Fügen Sie das HTTPS-Protokoll zur Liste der erlaubten Dienste in der Firewalld-Konfiguration hinzu:
- shell
firewall-cmd --permanent --add-service=https
Übernehmen Sie die Änderungen in der Firewalld-Konfiguration:
- shell
firewall-cmd --reload
2.2 SELinux deaktivieren und Betriebssystem neu starten
Bearbeiten Sie die Konfigurationsdatei /etc/selinux/config:
- shell
nano /etc/selinux/config
Ändern Sie den Wert des Parameters SELINUX von enforcing auf disabled:
- shell
SELINUX=disabled
Speichern Sie die Änderungen (Ctrl+O) und beenden Sie den Editor (Ctrl+X). Starten Sie das System neu, um die SELinux-Änderungen zu übernehmen:
- shell
reboot
3. PHP-Installation
Installieren Sie das EPEL-Paket (epel-release) und die Paketverwaltungsprogramme yum (yum-utils):
- shell
dnf -y install epel-release yum-utils
Laden Sie das neueste EPEL-Repository herunter und installieren Sie es:
- 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
Laden Sie das Repository herunter und installieren Sie es, das Zugang zu PHP-Versionen bietet:
- 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
Aktivieren Sie das PHP 8.3-Modul aus dem REMI-Repository:
- shell
dnf module enable php:remi-8.3
Installieren Sie PHP und zusätzliche Erweiterungen:
- 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
Ändern Sie die für PHP-Skripte verfügbare RAM-Menge:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php.ini
Es wird empfohlen, den Parameter memory_limit von 256M auf 512M oder höher zu erhöhen, wenn eine große Anzahl von Benutzern Passwork verwenden soll.
Stellen Sie sicher, dass der Dienst php-fpm läuft:
- shell
systemctl status php-fpm
Starten Sie den Dienst und aktivieren Sie ihn, falls er gestoppt ist:
- shell
systemctl start php-fpm
systemctl enable php-fpm
3.1 PHP-MongoDB-Treiber installieren
Installieren Sie den PHP-MongoDB-Treiber:
- shell
pecl install mongodb
Drücken Sie Enter, um die Standard-Build-Optionen zu akzeptieren.
Erstellen Sie eine Konfigurationsdatei zum Laden und Aktivieren von PHP MongoDB:
- shell
echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini
4. MongoDB-Datenbank installieren
Erstellen Sie eine Datei, um das MongoDB-Repository zum yum-Paketmanager hinzuzufügen:
- shell
nano /etc/yum.repos.d/mongodb-org-7.0.repo
Fügen Sie den folgenden Inhalt in die Datei ein:
- 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
Installieren Sie MongoDB:
- shell
dnf install mongodb-org -y
Starten Sie den Dienst mongod.service:
- shell
systemctl start mongod.service
Aktivieren Sie den automatischen Start des Dienstes:
- shell
systemctl enable mongod.service
5. Passwork beschaffen und konfigurieren
Online
Beschaffen Sie das Skript:
- wget
- curl
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
Das Passwork-Installationsskript darf sich nicht im Verzeichnis mit den Anwendungsserverdateien befinden.
Weisen Sie dem Skript Ausführungsrechte zu:
chmod +x passwork.sh
Standardmäßig führt das Skript passwork.sh Folgendes durch:
- Erstellen einer versteckten
.script_env-Datei im aktuellen Verzeichnis; - Erstellen des Verzeichnisses
passwork_archivefür Passwork-Sicherungen; - Beschaffen der neuesten verfügbaren Passwork-Version, Signatur und des öffentlichen Schlüssels;
- Installation des zuvor beschafften Archivs nach
/var/www/
Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skript-Startparameter verwenden.
Führen Sie das Skript aus:
sudo ./passwork.sh
Beim ersten Start fordert das Skript einen API-Schlüssel an und führt grundlegende Umgebungsprüfungen durch:

Beispiel einer erfolgreichen Skriptausführung:

Offline
Beschaffen Sie das Skript auf einem anderen Rechner mit Internetzugang:
- 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")
Oder beschaffen Sie das Skript passwork.sh manuell über den Link
Das Passwork-Installationsskript darf 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:
- Passwork Version 7 von unserem Kundenportal beschaffen (obligatorisch);
- Im Startverzeichnis ablegen oder das Argument
--inputverwenden, um den Speicherort anzugeben (obligatorisch); - Die Archivsignatur und den öffentlichen Schlüssel von Passwork beschaffen (optional bei Verwendung des Arguments
--skip).
Standardmäßig führt das Skript passwork.sh Folgendes durch:
- Erstellen des Verzeichnisses
passwork_archivefür Passwork-Sicherungen; - Entpacken des Passwork-Archivs;
- Installation des zuvor beschafften Archivs nach
/var/www/
Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skript-Startparameter verwenden.
Führen Sie nach der Vorbereitung das Skript passwork.sh aus:
sudo ./passwork.sh -offline
Beispiel einer erfolgreichen Offline-Skriptausführung:

6. Webserverkonfiguration für das HTTPS-Protokoll
Für den korrekten Betrieb muss das HTTPS-Protokoll verwendet werden. Die Verwendung von HTTP führt zu Fehlern.
6.1 Selbstsigniertes SSL-Zertifikat generieren
Installieren Sie das SSL-Modul für Apache2:
- shell
dnf install mod_ssl -y
Erstellen Sie ein neues Verzeichnis zum Speichern des privaten Schlüssels und des Zertifikats:
- shell
mkdir /etc/ssl/private
Generieren Sie ein selbstsigniertes X.509-Zertifikat für Apache2 mit OpenSSL:
- shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Im Feld Common Name (CN) ist es wichtig, die IP-Adresse oder den Hostnamen Ihres Servers anzugeben, da Ihr Zertifikat mit der Domäne (oder IP-Adresse) der Website übereinstimmen muss.
Generieren Sie Diffie-Hellman-Parameter mit einer Schlüssellänge von 2048:
- shell
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Fügen Sie die Diffie-Hellman-Parameter zum selbstsignierten Zertifikat hinzu:
- shell
cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt
Setzen Sie die Berechtigungen des root-Benutzers, um den privaten Schlüssel und das Zertifikat zu schützen:
- shell
chmod 700 /etc/ssl/private
6.2 Konfiguration des virtuellen Hosts für HTTPS-Zugriff
Bevor Sie den Webserver mit aktivierter SSL-Terminierung konfigurieren, wird empfohlen, die Konfigurationsbesonderheiten zu lesen.
Öffnen Sie die Konfigurationsdatei zur Einrichtung des HTTPS-Protokolls:
- shell
nano /etc/httpd/conf.d/ssl.conf
Finden Sie den Abschnitt, der mit <VirtualHost _default_:443> beginnt, und nehmen Sie die folgenden Änderungen vor:
- Entkommentieren Sie die Zeile DocumentRoot und ändern Sie den Pfad zum Passwork-Stammverzeichnis
/var/www/public; - Entkommentieren Sie die Zeile ServerName und ändern Sie
www.example.comin die IP-Adresse oder Domäne des Servers (abhängig vom imCommon Namedes Zertifikats angegebenen Wert):
- shell
DocumentRoot /var/www/public
ServerName passwork:443
- Fügen Sie eine
<Directory>-Direktive nachServerNamehinzu:
- shell
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride All
Require all granted
</Directory>
- Aktualisieren Sie die Pfade zu den zuvor generierten Zertifikatsdateien:
- shell
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
- Ändern Sie den Handler für .php-Dateien, um Anfragen an den php-fpm-Socket weiterzuleiten:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
- Überprüfen Sie, ob der Block
SSL Virtual Host Contextdem Beispiel entspricht:
- 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>
Wichtig: Das Kopieren und Einfügen des obigen Beispiels in die Konfigurationsdatei führt zu Fehlern, da das Beispiel nur einen Ausschnitt des Blocks und nicht die vollständige Konfigurationsdatei zeigt.
Starten Sie die Dienste neu:
- shell
systemctl restart php-fpm
systemctl restart httpd
7. Checkliste durchführen
Beim erstmaligen Verbinden mit Passwork müssen Sie eine Parameter-Checkliste durchlaufen, wobei Folgendes durchgeführt wird:
- Überprüfung der erforderlichen Parameter
- Verbindung zur MongoDB-Datenbank
- Auswahl des Datenverschlüsselungsmodus
- Zufällig generierter Schlüssel zur Verschlüsselung der Daten in MongoDB
- Überprüfung des Lizenzschlüssels
Nach dem Durchlaufen der Checkliste werden Sie aufgefordert, den ersten Benutzer in Passwork zu erstellen, wobei Sie Login, Passwort und E-Mail-Adresse für den Versand von Benachrichtigungen angeben müssen.
Zusätzliche Komponentenparameter, Sicherheitseinstellungen und Passwork-Systemkonfigurationen sind im Abschnitt Erweiterte Einstellungen verfügbar.