Zum Hauptinhalt springen

Alma/Rocky/CentOS

info

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.
gefahr

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.

info

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:

sudo -i 
dnf makecache

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

dnf install -y httpd unzip curl zip jq

Ersetzen Sie den DocumentRoot-Speicherort in der Apache-Konfiguration:

sed -i 's|^DocumentRoot "/var/www/html"|DocumentRoot "/var/www"|' /etc/httpd/conf/httpd.conf

Starten Sie den Dienst httpd.service:

systemctl start httpd.service

Aktivieren Sie den automatischen Start des Dienstes:

systemctl enable httpd.service

2.1 Installation und Grundkonfiguration von Firewalld

Installieren Sie den dynamischen Firewall-Verwaltungsdienst Firewalld:

dnf install firewalld -y

Starten Sie den Dienst firewalld.service:

systemctl start firewalld.service

Aktivieren Sie den automatischen Start des Dienstes:

systemctl enable firewalld.service

Fügen Sie das HTTPS-Protokoll zur Liste der erlaubten Dienste in der Firewalld-Konfiguration hinzu:

firewall-cmd --permanent --add-service=https

Übernehmen Sie die Änderungen in der Firewalld-Konfiguration:

firewall-cmd --reload

2.2 SELinux deaktivieren und Betriebssystem neu starten

Bearbeiten Sie die Konfigurationsdatei /etc/selinux/config:

nano /etc/selinux/config

Ändern Sie den Wert des Parameters SELINUX von enforcing auf disabled:

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:

reboot

3. PHP-Installation

Installieren Sie das EPEL-Paket (epel-release) und die Paketverwaltungsprogramme yum (yum-utils):

dnf -y install epel-release yum-utils

Laden Sie das neueste EPEL-Repository herunter und installieren Sie es:

dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Laden Sie das Repository herunter und installieren Sie es, das Zugang zu PHP-Versionen bietet:

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Aktivieren Sie das PHP 8.3-Modul aus dem REMI-Repository:

dnf module enable php:remi-8.3

Installieren Sie PHP und zusätzliche Erweiterungen:

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:

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

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:

systemctl status php-fpm

Starten Sie den Dienst und aktivieren Sie ihn, falls er gestoppt ist:

systemctl start php-fpm
systemctl enable php-fpm

3.1 PHP-MongoDB-Treiber installieren

Installieren Sie den PHP-MongoDB-Treiber:

pecl install mongodb
gefahr

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

Erstellen Sie eine Konfigurationsdatei zum Laden und Aktivieren von PHP MongoDB:

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:

nano /etc/yum.repos.d/mongodb-org-7.0.repo

Fügen Sie den folgenden Inhalt in die Datei ein:

[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

Installieren Sie MongoDB:

dnf install mongodb-org -y

Starten Sie den Dienst mongod.service:

systemctl start mongod.service

Aktivieren Sie den automatischen Start des Dienstes:

systemctl enable mongod.service

5. Passwork beschaffen und konfigurieren

Online

Beschaffen Sie das Skript:

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

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_archive für Passwork-Sicherungen;
  • Beschaffen der neuesten verfügbaren Passwork-Version, Signatur und des öffentlichen Schlüssels;
  • Installation des zuvor beschafften Archivs nach /var/www/
info

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 des Skriptstarts

Beispiel einer erfolgreichen Skriptausführung:

Erfolgreiche Skriptausführung
Offline

Beschaffen Sie das Skript auf einem anderen Rechner mit Internetzugang:

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

Oder beschaffen Sie das Skript passwork.sh manuell über den Link

gefahr

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 --input verwenden, 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_archive für Passwork-Sicherungen;
  • Entpacken des Passwork-Archivs;
  • Installation des zuvor beschafften Archivs nach /var/www/
info

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:

Erfolgreiche Offline-Skriptausführung

6. Webserverkonfiguration für das HTTPS-Protokoll

info

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:

dnf install mod_ssl -y

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

mkdir /etc/ssl/private

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' -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
gefahr

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:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Fügen Sie die Diffie-Hellman-Parameter zum selbstsignierten Zertifikat hinzu:

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:

chmod 700 /etc/ssl/private

6.2 Konfiguration des virtuellen Hosts für HTTPS-Zugriff

gefahr

Bevor Sie den Webserver mit aktivierter SSL-Terminierung konfigurieren, wird empfohlen, die Konfigurationsbesonderheiten zu lesen.

Öffnen Sie die Konfigurationsdatei zur Einrichtung des HTTPS-Protokolls:

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.com in die IP-Adresse oder Domäne des Servers (abhängig vom im Common Name des Zertifikats angegebenen Wert):
DocumentRoot /var/www/public
ServerName passwork:443
  • Fügen Sie eine <Directory>-Direktive nach ServerName hinzu:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride All
Require all granted
</Directory>
  • Aktualisieren Sie die Pfade zu den zuvor generierten Zertifikatsdateien:
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:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
  • Überprüfen Sie, ob der Block SSL Virtual Host Context dem Beispiel entspricht:
<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>
gefahr

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:

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.

info

Zusätzliche Komponentenparameter, Sicherheitseinstellungen und Passwork-Systemkonfigurationen sind im Abschnitt Erweiterte Einstellungen verfügbar.