Veraltet: Linux (Alma)

Diese Anleitung beschreibt das Einrichten von Relution 5 auf Rocky / Alma Linux 9 oder 10. Diese Anleitung verwendet MariaDB als Datenbank und nginx als Reverse-Proxy.

Für zusätzliche Sicherheit und Leistung empfehlen wir, Relution zu installieren und MariaDB sowie nginx auf separaten Rechnern zu betreiben. Die Installation auf einer einzelnen Maschine oder auf einer oder mehreren virtuellen Maschinen sind ebenfalls möglich.

Diese Anleitung behandelt die Installation und Konfiguration einer einfachen Instanz von Relution.


Voraussetzungen

Vor dem Beginn ist sicherzustellen, dass:

  • Die Maschinen sich mit dem Internet verbinden können.
  • root- (oder sudo-)Rechte vorhanden sind.
  • Ein gültiges SSL-Zertifikat für den externen Hostnamen vorhanden ist.

Selbst signierte Zertifikate funktionieren nicht, da mobile Geräte ihnen nicht vertrauen. Das Root-Zertifikat lässt sich zwar manuell auf einem Gerät installieren, damit es dem Zertifikat vertraut, diese Vorgehensweise wird jedoch nicht empfohlen.

Zertifikate von Let’s Encrypt → sind getestet und funktionieren.


Vorbereitung

Sicherstellen, dass das System aktuell ist und wget installiert ist. Diese Anleitung verwenden wget, um Skripte aus unserem GitHub-Repository herunterzuladen. Bei Vertrautheit mit curl lässt sich wget alternativ durch curl ersetzen.

sudo yum -y update
sudo yum -y install wget

Während dieser Installation müssen einige Dateien manuell bearbeitet werden. Bei Vertrautheit mit vim lässt sich dieser mit den folgenden Befehlen als Standardeditor festlegen. Ist vim nicht vertraut, kann dieser Abschnitt übersprungen und weiterhin der Standardeditor verwendet werden.

sudo yum -y install vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

Optional: Passwortgenerator installieren

Im Standard ist pwgen (password generator) nicht in CentOS verfügbar. Um es zu verwenden, muss zunächst das epel (Extra Packages Enterprise Linux)-Repository aktiviert werden. Da es sich um ein nicht unterstütztes Repository eines Drittanbieters handelt, ist eine manuelle Installation nötig. Sollen diese Pakete nicht auf dem Server installiert werden, kann dieser Schritt übersprungen und stattdessen ein sicheres Kennwort auf einem anderen Rechner generiert werden.

sudo yum -y install epel-release
sudo yum -y install pwgen

MariaDB installieren

Es sollte eine LTS-Version von MariaDB ab V. 10.11 verwendet werden. Die aktuell stabile Version lässt sich hier prüfen: MariaDB →

Bei der Erstellung dieser Anleitung war die letzte stabile Version die 11.1. Bei der 10.11 und 11.4 handelt es sich jeweils um eine LTS Version, die ebenfalls verwendet werden können.

Zudem prüfen, welche Version direkt installiert werden kann:

sudo dnf module list mariadb

Es ist stattdessen möglich, die Version 11.1 zu installieren. Da es sich bei der Version 10.11 um eine LTS Version handelt, zeigen wir hier, wie diese installiert wird. Diesen Befehl ausführen:

sudo vi /etc/yum.repos.d/mariadb.repo

Anschließend diesen Abschnitt einfügen und die Datei speichern.

[mariadb]
name = MariaDB Server
baseurl = https://dlm.mariadb.com/repo/mariadb-server/11.4/yum/rhel/9/x86_64
gpgkey = https://mirror.mariadb.org/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
module_hotfixes = 1

Wie am Link zu sehen ist, handelt es sich um Version 10.11.

Als nächstes muss das Repository geupdatet werden.

sudo dnf update

Nun kann MariaDB installiert werden. Dabei den Bildschirmanweisungen folgen.

sudo dnf install mariadb-server mariadb

Konfiguration von MariaDB für Relution

Das relution.cnf-Template aus dem GitHub-Repository herunterladen und unter /etc/my.cnf.d/relution.cnf speichern.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/my.cnf.d/relution.cnf.template
sudo mv relution.cnf.template /etc/my.cnf.d/relution.cnf
sudo chmod og-w /etc/my.cnf.d/relution.cnf

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind die Berechtigungen für die Datei nach dem Verschieben falsch.

Zur Korrektur den folgenden Befehl ausführen. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/my.cnf.d/relution.cnf

MariaDB starten und sicherstellen, dass der Dienst nach einem Systemneustart automatisch gestartet wird.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

MariaDB Installation prüfen

Nun sollte eine Verbindung zu dieser MariaDB-Instanz möglich sein. Aus Gründen der Abwärtskompatibilität verwenden die Kommandozeilen-Tools weiterhin mysql, dies ist kein Fehler.

mysql -u root

Es sollte eine ähnliche Ausgabe wie die folgende erscheinen:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Zur Überprüfung, ob die Kollation von Server und Datenbank wie gewünscht auf utf8mb4 gesetzt ist, diesen Befehl eingeben:

SHOW VARIABLES LIKE '%collation%';

Sicherstellen, dass collation_database und collation_server auf utf8mb4_general_ci konfiguriert sind.

Ctrl+D drücken, um die Verbindung zur Datenbank zu trennen und zur Eingabeaufforderung zurückzukehren.

Relution Datenbank erstellen

Als Nächstes erstellen wir die Datenbank relution und einen zugehörigen Datenbank-Benutzer. Dieser Benutzer wird vom Dienst Relution verwendet, um sich mit der Datenbank zu verbinden. Das Skript von GitHub herunterladen.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/scripts/create_database.sh --directory-prefix=/opt

Sicherstellen, dass die Datei von root ausführbar ist:

chmod 700 /opt/create_database.sh

(Optional) pwgen nutzen, um ein sicheres Passwort zu erzeugen:

pwgen -snc 48 1

Das Skript ausführen, um die Datenbank zu erstellen:

/opt/create_database.sh "relution" "<password>"

Dadurch wird eine neue Datenbank namens relution und ein neuer Datenbankbenutzer mit dem Namen relution, der volle Rechte auf diese Datenbank hat, erstellt.

Dieser Benutzer wird vom Dienst Relution für den Zugriff auf die Datenbank verwendet. Wenn administrativer Zugriff auf die Datenbank für Wartungszwecke benötigt wird, empfehlen wir, dafür einen separaten Datenbankbenutzer anzulegen.

Sicherstellen, dass das Kennwort ohne die Anführungszeichen an einem sicheren Ort gespeichert wird. Dieses Kennwort wird später benötigt, um Relution Zugriff auf die Datenbank zu gewähren.

Prüfen, ob sich als dieser Benutzer eine Verbindung zur Datenbank herstellen lässt:

mysql -u relution -p relution

Das Passwort eingeben, sobald danach gefragt wird. In der MariaDB-Eingabeaufforderung wie oben beschrieben Strg+D verwenden, um sich wieder abzumelden.

Firewall-Konfiguration

Wird Relution auf einem anderen Rechner installiert, muss der Port 3306 auf diesem Rechner geöffnet werden, damit Relution mit MariaDB kommunizieren kann. Wird Relution auf demselben Rechner installiert, können diese Schritte übersprungen werden.

ADDRESS durch die IP-Adresse und Netzmaske des Rechners oder Netzwerks ersetzen, dem Zugriff auf diese MariaDB-Instanz gewährt werden soll. Beispiele: 192.168.0.1/32 verwenden, um den Zugriff auf den Rechner mit der IP-Adresse 192.168.0.1 zu geben. 192.168.0.0/24 verwenden, um den Zugriff von jeder Maschine im IP-Adressbereich 192.168.0.x zu gewähren. Im Zweifelsfall den Netzwerkadministrator fragen.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="###ADDRESS###" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

Relution installieren

JAVA

Die folgenden Pakete installieren, inklusive Java.

sudo yum -y install java-21-openjdk unzip wget

Java home konfigurieren

echo "export JAVA_HOME=/usr" | sudo tee -a /etc/profile.d/relution_profile.sh
source /etc/profile

Sicherstellen, dass die Änderungen angewendet wurden

echo $JAVA_HOME

Es sollte dieser Pfad angezeigt werden (/usr).

Einen Relution User anlegen

Einen User ohne Berechtigungen anlegen, sodass Relution durch ihn ausgeführt werden kann:

useradd -s /usr/bin/false -r relution

Dadurch wird ein unprivilegierter Benutzer mit dem Namen relution angelegt, der verwendet wird, um den Relution-Dienst auszuführen. Dies geschieht aus Sicherheitsgründen, da das Ausführen von Diensten mit root-Rechten nicht empfohlen wird.

Relution herunterladen

Das Relution Paket herunterladen und entpacken:

wget https://repo.relution.io/package/latest/relution-package.zip --directory-prefix=/opt
unzip /opt/relution-package.zip -d /opt

Eigentümer vom relution Verzeichnis setzen:

sudo chown -R relution:relution /opt/relution

Relution Basiskonfiguration

Relution Konfigurationsdatei herunterladen:

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/opt/relution/application.yml.template

Die application.yml.template bearbeiten und an die eigene Umgebung anpassen. Alle Parameter mit Platzhaltern wie %VALUE%, zum Beispiel %MYSQL_PASSWORD%, müssen angepasst werden. Folgende Parameter müssen angepasst werden:

PlatzhalterBeschreibung
%EXT_HOSTNAME_URL%Die externe Adresse des Relution-Servers, z.B.https://mdm.example.com
%MYSQL_PASSWORD%Das Passwort des Relution-Datenbank-Benutzers
%SYSTEM_ADMIN_PASSWORD%Das initiale Passwort des Systemadministrator. Nach dem ersten Login ändern und die Zeile anschließend entfernen.
%SYSTEM_ADMIN_EMAIL%Die Mailadresse des Systemadministrators

HINWEIS: Für das anfängliche Passwort des administrativen Kontos empfiehlt sich die Verwendung von pwgen. Außerdem sollte das Passwort nach der ersten Anmeldung geändert werden.

Die Datei in das Installationsverzeichnis des Relution-Servers verschieben:

mv application.yml.template /opt/relution/application.yml

Sicherstellen, dass nur root diese Datei bearbeiten kann, und relution das Lesen erlauben.

chown root:relution /opt/relution/application.yml
chmod 640 /opt/relution/application.yml

Installation testen

Um zu überprüfen, ob die Einrichtung bis zu diesem Punkt korrekt ist, den Relution-Dienst im Vordergrund starten.

cd /opt/relution
sudo -u relution JAVA_HOME=/usr bin/relution-foreground.sh

Warten, bis der Relution-Dienst gestartet ist. Sobald die Terminalausgabe aufgehört hat, sich zu bewegen, sollte eine Verbindung zum Portal über einen Browser möglich sein. Für eine Verbindung von einem entfernten Rechner aus muss der Port 8080 in der Firewall des Rechners geöffnet sein. Aus Sicherheitsgründen sollte dieser Port geschlossen werden, sobald Relution und Nginx konfiguriert sind. Ein Login über Port 8080 ist aus Sicherheitsgründen ohnehin nur von localhost oder 127.0.0.1 aus möglich.

http://<hostname>:8080

So werden vorübergehend Verbindungen über Port 8080 bis zum nächsten Server-Neustart zugelassen:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Wenn alles funktioniert, sollte das Relution-Portal sichtbar sein und eine Anmeldung mit dem administrativen Konto möglich sein, das in der Datei application.yml definiert wurde. Aus Sicherheitsgründen sollte das Passwort des Administrators nach der Anmeldung geändert werden. Empfehlenswert ist außerdem, die ursprüngliche Organisation und die Administratorkonfiguration aus der application.yml zu entfernen.

Bei Fehlern prüfen, ob alle oben genannten Schritte durchgeführt wurden. Mit Strg+C lässt sich der Dienst anhalten; anschließend abwarten, bis der Dienst heruntergefahren ist. Wird der Dienst nicht beendet, erzwingt ein erneutes Strg+C das Beenden des Dienstes.

Erstellen des systemd service files

Um Relution als Systemdienst zu starten, wird eine systemd-Dienstdatei für Relution benötigt. Die Datei lässt sich vom GitHub-Repository herunterladen.

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/systemd/system/relution.service.template

Die Datei in das systemd-Verzeichnis verschieben.

sudo mv relution.service.template /etc/systemd/system/relution.service

Den systemd-Daemon neu laden, um den neuen Dienst zu übernehmen.

sudo systemctl daemon-reload

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind ggf. die Berechtigungen für die Datei nach dem Verschieben falsch.

Zur Korrektur den folgenden Befehl ausführen. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/systemd/system/relution.service

Sicherstellen, dass die Verzeichnisse von Relution für den Dienst noch zugänglich sind. Wurde die Anwendung zuvor als root gestartet, kann es vorkommen, dass Relution nicht in die Logfiles schreiben kann.

sudo chown -R relution:relution /opt/relution
sudo chown -R relution:relution /tmp/relution.tmp

Relution starten und sicherstellen, dass der Dienst nach einem Neustart des Systems automatisch gestartet wird.

sudo systemctl start relution
sudo systemctl enable relution

Um den Start des Dienstes zu überwachen, lässt sich die Logfile verfolgen (STRG+C zum Beenden drücken).

tail -f /opt/relution/log/relution.log

Warten, bis der Relution-Dienst gestartet ist. Anschließend sollte sich das Relution-Portal wieder über einen Browser öffnen lassen.

http://<hostname>:8080

Es ist auch ratsam, den Firewall-Port zu schließen, der für den Test geöffnet war. Andernfalls bleibt der Port bis zum nächsten Neustart des Systems offen. Soll Nginx auf einem anderen Rechner installiert werden, kann dieser Schritt übersprungen und mit der Firewall-Konfiguration unten fortgefahren werden.

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Firewall Konfiguration

Wird Nginx auf einem anderen Rechner installiert, muss der Port 8080 auf diesem Rechner dauerhaft geöffnet bleiben, damit Nginx mit Relution kommunizieren kann. Soll Nginx auf demselben Rechner installiert werden, können diese Schritte übersprungen werden.

ADDRESS durch die IP-Adresse und Netzmaske des Rechners oder Netzwerks ersetzen, dem diese Relution-Instanz zugänglich gemacht werden soll. Beispiele: 192.168.0.1/32 verwenden, für den Zugriff auf den Rechner mit der IP-Adresse 192.168.0.1. 192.168.0.0/24 verwenden, um den Zugriff auf jeden Rechner im IP-Adressbereich 192.168.0.x zu gewähren. Im Zweifelsfall den Netzwerkadministrator fragen.

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="###ADDRESS###" port protocol="tcp" port="8080" accept'
sudo firewall-cmd --reload

Nginx installieren

Voraussetzungen

Ein gültiges SSL-Zertifikat und ein Zertifikatsschlüssel vom SSL-Anbieter (Zertifizierungsstelle, CA) sollten vorliegen. Bei Verwendung von OCSP Stapling → wird zusätzlich eine Datei für die Zertifikatskette benötigt.

SSL Zertifikat umwandeln →

Diese Dateien auf den Server kopieren, auf dem Nginx eingerichtet werden soll (z.B. über SSH). Anschließend die Dateien in die entsprechenden Verzeichnisse verschieben und bei Bedarf sichern.

Die Zertifikatsdatei an ihren Standardspeicherort verschieben:

mv server.pem /etc/pki/tls/certs
chown root:root /etc/pki/tls/certs/server.pem
chmod 644 /etc/pki/tls/certs/server.pem

Das Zertifikat ist öffentlich, es wird an jeden gesendet, der eine Verbindung zur Website herstellt. Es ist unbedenklich, diese Datei für jeden lesbar zu machen.

Den Zertifikatsschlüssel an seinen Standardspeicherort verschieben:

mv server.key /etc/pki/tls/private
chown root:root /etc/pki/tls/private/server.key
chmod 600 /etc/pki/tls/private/server.key

Wenn SELinux im erzwingenden (enforcing) Modus ist (Standard), kann der Sicherheitskontext der Dateien nach dem Verschieben falsch sein. Zur Korrektur die folgenden Befehle ausführen. Andernfalls verhindert SELinux den Zugriff von Diensten auf diese Dateien aus Sicherheitsgründen.

sudo restorecon -v /etc/pki/tls/certs/server.pem
sudo restorecon -v /etc/pki/tls/private/server.key

Aus Sicherheitsgründen werden diese Dateien ignoriert, wenn ihre Berechtigungen nicht korrekt gesetzt sind. Sicherstellen, dass die Berechtigungen wie oben beschrieben gesetzt sind. Der private Schlüssel darf nur von root lesbar sein und sollte sicher aufbewahrt werden. Jeder, der Zugang zu diesem Schlüssel hat, kann Daten im Namen des Zertifikatsinhabers signieren und für ihn bestimmte private Informationen entschlüsseln.

Bei Verwendung von Let's Encrypt und Certbot → sollte darauf geachtet werden, dass die Schlüssel an einem sicheren Platz gespeichert werden.

Installation von Nginx

Die notwendigen Pakete installieren:

sudo yum -y install epel-release
sudo yum -y install nginx

Erzeugen sicherer Diffie-Hellman-Parameter

sudo openssl dhparam -out /etc/nginx/dhparams.pem 4096

Dies kann, abhängig von der Serverperformance sehr lange dauern. Ein Cache-Verzeichnis für nginx erstellen. Dieses wird zum Zwischenspeichern heruntergeladener großer Dateien verwendet.

sudo mkdir /usr/share/nginx/cache
sudo chown nginx:nginx /usr/share/nginx/cache

Die Konfigurationsdateien herunterladen:

wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/nginx/conf.d/relution-ssl.conf.template
wget https://raw.githubusercontent.com/relution-io/relution-setup/master/native/Linux/etc/nginx/conf.d/relution-location.include.template

Die relution-ssl.conf.template bearbeiten und an die eigene Umgebung anpassen. Alle Parameter mit Platzhaltern %VALUE% müssen konfiguriert werden, zum Beispiel %EXT_HOSTNAME%. Es handelt sich um diese Parameter:

ParameterBeschreibung

%EXT_HOSTNAME%

Muss mit dem Common Name (cn) des SSL Zertifikats zusammenpassen

%SSL_CERT_PATH%

Pfad zum SSL Zertifikat

%SSL_CERT_KEY_PATH%

Pfad zum Key des SSL Zertifikats

%SSL_CERT_CHAIN_PATH%

Pfad zur SSL Zertifikatskette

Befindet sich der Relution-Server auf einem anderen Rechner, muss die IP-Adresse in den Parametern proxy_pass auf die IP-Adresse des Relution-Servers geändert werden. Diese Option ist sowohl in relution-ssl.conf.template als auch in relution-location.include.template vorhanden.

  • Von proxy_pass http://127.0.0.1:8080;
  • Auf proxy_pass http://<relution-ip>:8080;

Soll OCSP Stapling → nicht verwendet werden, die folgenden Optionen auskommentieren:

# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate %SSL_CERT_CHAIN_PATH%;

Ist die Installation nativer Windows-Apps mit Relution auf Windows-Geräten geplant, bei folgenden Zeilen die Kommentarzeichen (#) entfernen:

# location ~ /api/management/v1/system/files
# proxy_cache cache;
# proxy_cache_key $host$uri;        # must NOT include query params!
# proxy_cache_revalidate on;
# proxy_cache_lock on;
# proxy_cache_lock_age 60s;
# proxy_cache_lock_timeout 60s;

# proxy_pass http://127.0.0.1:8080;

Andernfalls wird die Installation der Apps fehlschlagen.

Die Dateien in die Zielverzeichnisse verschieben:

sudo mv relution-ssl.conf.template /etc/nginx/conf.d/relution-ssl.conf
sudo mv relution-location.include.template /etc/nginx/conf.d/relution-location.include

Wenn SELinux im Enforcing Mode betrieben wird (Standard), sind die Berechtigungen für die Datei nach dem Verschieben falsch. Zur Korrektur den folgenden Befehl ausführen. Andernfalls wird SELinux den Dienst aus Sicherheitsgründen am Zugriff auf die Datei hindern.

sudo restorecon -v /etc/nginx/conf.d/relution-ssl.conf
sudo restorecon -v /etc/nginx/conf.d/relution-location.include

Die Konfiguration mit diesem Befehl prüfen:

sudo nginx -t

Es sollte eine Meldung wie syntax is okay und test is successful erscheinen. Bei Fehlern die Nginx-Konfiguration auf Tippfehler überprüfen.

Standardserver

Die Standardkonfiguration von Nginx konfiguriert eine Site für ihre Platzhalter Webseite. Ist die Webanwendung von Relution die einzige Seite, die auf diesem Server gehostet wird, kann dieser „Standard-Server" deaktiviert und Relution zum Standard gemacht werden. Werden mehrere Sites gehostet (“virtuelle Hosts”), kann dieser Schritt übersprungen werden.

Die globale Nginx-Konfiguration öffnen:

sudo vi /etc/nginx/nginx.conf

Den server { ... } Bereich auskommentieren:

# server {
# listen       80 default_server;
# listen       [::]:80 default_server;
        [...]
# }

Es gibt noch einen weiteren server { ... } Bereich für SSL (i.e. HTTPS). Diesen ebenfalls auskommentieren:

# server {
# listen       443 ssl default_server;
# listen       [::]:443 ssl;
        [...]
# }

Die Nginx-Konfiguration für Relution ändern:

sudo vi /etc/nginx/conf.d/relution-ssl.conf

default_server an die erste Listen-Option jedes Servers anfügen. Das Ergebnis sollte ähnlich wie folgt aussehen:

    server {
        listen 0.0.0.0:80 default_server;
        listen [::]:80;
    [...]

    server {
        listen 0.0.0.0:443 ssl default_server;
        listen [::]:443 ssl;
    [...]

Ist die Installation nativer Windows-Apps mit Relution auf Windows-Geräten geplant, bei folgenden Zeilen die Kommentarzeichen (#) entfernen:

# location ~ /api/management/v1/system/files
# proxy_cache cache;
# proxy_cache_key $host$uri;        # must NOT include query params!
# proxy_cache_revalidate on;
# proxy_cache_lock on;
# proxy_cache_lock_age 60s;
# proxy_cache_lock_timeout 60s;

# proxy_pass http://127.0.0.1:8080;

Andernfalls wird die Installation der Apps fehlschlagen.

Prüfen, dass die Nginx-Konfiguration gültig ist:

sudo nginx -t

Erscheint eine Meldung wie syntax is okay und test is successful, ist dies der Fall. Bei Fehlermeldungen die Konfiguration bitte prüfen.

Nginx Dienst starten und aktivieren

Wenn alles in Ordnung ist, den Nginx-Dienst starten und aktivieren:

sudo systemctl start nginx
sudo systemctl enable nginx

Bei Fehlermeldungen oder falls der Dienst nicht startet, in dieses Log schauen: (/var/log/nginx/error.log).


Firewall

Die Ports 80 und 443 in der Firewall öffnen, sodass HTTP und HTTPS funktionieren.

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload

SELinux Konfiguration

Möglicherweise ist nicht sofort eine Verbindung zu https://<Ihr-fqdn-hostname> möglich. In diesem Fall die Fehlerprotokolle von Nginx überprüfen.

cat /var/log/nginx/relution_error.log | grep "13: Permission denied"

Möglicherweise erscheinen Fehlermeldungen wie diese:

2022/06/27 18:12:41 [crit] 11111#0: *2 connect() to <relution-ip>:8080 failed (13: Permission denied) while connecting to upstream, client: <client-ip>, server: <your-fqdn-hostname>, request: "GET / HTTP/1.1", upstream: "http://<relution-ip>:8080/", host: "<nginx-ip>"

Prüfen, ob es sich tatsächlich um ein SELinux-Problem handelt:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied

Es sollten eine oder mehrere denied-Nachrichten ähnlich dieser erscheinen:

type=AVC msg=audit(1524845545.644:365): avc:  denied  { name_connect } for  pid=11111 comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

nginx erlauben, sich mit dem anderen Rechner zu verbinden:

sudo setsebool -P httpd_can_network_connect 1

Nun sollte eine Verbindung zur eigenen Relution-Instanz über HTTPS möglich sein.

Top