Reverse-Proxy für Procurat!5
Einführung
Technischer Hintergrund
Die Procurat!5 Software wurde primär für den Einsatz in geschlossenen Netzwerkumgebungen konzipiert. Die Software exponiert auf dem URL-Pfad "/*" verschiedene Endpunkte, die nicht für den direkten Zugriff aus dem öffentlichen Internet konzipiert wurden und erhebliche Sicherheitsdefizite aufweisen. Der Zugriff auf diese Pfade direkt aus dem Internet würde ein erhebliches Sicherheitsrisiko darstellen.
Kontinuierliche API-Kommunikation des Elternportals
Das Triargos Elternportal benötigt für sämtliche Kernfunktionalitäten eine kontinuierliche Kommunikation mit der Procurat!5 API. Diese konstante Kommunikation erfolgt über zahlreiche Anfragen zur Authentifizierung, Datenabrufe und Verarbeitung von Benutzerinteraktionen. Der Datenfluss zwischen den Systemen muss daher permanent gewährleistet sein, jedoch unter strengen Sicherheitsvorkehrungen.
Technische Lösung durch Proxy-Implementation
Der zu implementierende Reverse-Proxy fungiert als Sicherheitsgateway zwischen dem öffentlichen Internet und Ihrer Procurat!5 Installation. Er erlaubt ausschließlich HTTP(S)-Requests auf den speziell abgesicherten "/api/*" Pfad der Procurat!5 Software, während alle anderen Pfade blockiert werden. Dies ist wesentlich sicherer als eine direkte Verbindung, da nur die speziell für externe Zugriffe konzipierten und abgesicherten API-Endpunkte erreichbar sind.
Die Proxy-Lösung gewährleistet somit eine deutlich erhöhte Sicherheit durch strikte Zugangskontrolle und Filterung aller eingehenden Anfragen. Gleichzeitig bleibt die konstante API-Kommunikation, die für die Funktionalität des Elternportals unerlässlich ist, in vollem Umfang erhalten.
Implementierungsdetails
Die technische Umsetzung erfolgt durch einen Reverse-Proxy, der als Sicherheitsschicht fungiert. Dieser leitet ausschließlich Anfragen an den "/api/*" Pfad weiter und blockiert jeglichen anderen Zugriff. Dies ist eine bewährte und sichere Methode, um die Angriffsfläche zu minimieren und gleichzeitig die notwendige Funktionalität zu gewährleisten.
TLDR
Ein Proxy, welcher die Procurat-Schulsoftware (nur die Pfade /api/*) auf einer öffentlich erreichbaren Domain (mit SSL Zertifikat) erreichbar ist, muss eingerichtet werden. Zur erhöhten Sicherheit kann die Domain (IP-Gruppe) dashboard.triargos.de in der Firewall gewhitelisted werden, sodass nur Anfragen von Triargos-Servern erlaubt werden. Bitte teilen Sie uns nach Abschluss der Einrichtung des Proxies die Domain (und ggf. den Port) mit, unter dem wir ihre Instanz erreichen können.
Installation - Windows
Allgemeine Einführung
Diese Anleitung beschreibt die Installation des Procurat-Proxies als Service unter Windows.
Firewall-Konfiguration
Unterstützt ihre Firewall keine IP-Gruppen via FQDN, darf keine Beschränkung eingerichtet werden, da die Anfragen je nach Auslastung des Systems von unterschiedlichen Servern kommen.
Um die Sicherheit zu erhöhen, kann die externe Firewall der Einrichtung konfiguriert werden, dass nur Anfragen der IP-Gruppe dashboard.triargos.de zugelassen werden
Vorbereitung
Schritt 1: Erstellen des Clients im Proxy Controller
- Öffnen Sie den Proxy Controller
- Erstellen Sie einen neuen Client mit
Add client. Die Funktiondynamically update DNSfunktioniert ähnlich wie DynDNS, ändert sich die IP-Adresse der Anfragen der Proxy-Healthchecks, wird der Cloudflare-DNS Record ebenfalls aktualisiert
Schritt 2: Konfigurieren des Clients
Der Client lädt die Konfiguration laufend vom Controller herunter, und wendet Änderungen automatisch an. Somit muss die Konfiguration initial in der Weboberfläche erfolgen
Verfügbare Konfigurationswerte
| Server Port | Der Port, auf welchem die installierte Anwendung startet und erreichbar ist (z.B 8080). Dieser Wert ist frei wählbar, muss allerdings auf dem Server frei sein (nicht durch z.B IIS oder andere Anwendungen bereits belegt) |
| Application URL | Die vollständige URL, unter welcher die Procurat-Software (nur Schnittstelle) erreichbar ist. Meist nach folgendem Schema: https://[domain]:8443/procurat/api/v1 |
Schritt 3: Erstellen einer Registrierung
Die Registrierungs-URL ist max. 24 gültig und kann nur einmal verwendet werden.
Bei der Installation des Services wird eine Registrierungs-URL benötigt. Diese wird verwendet, um den Client beim Controller anzumelden, einen API-Key zu erstellen und weitere Kommunikation zwischen Client und Controller zu sichern. Diese URL kann vorab erstellt werden
- Klicken Sie auf den Tab
Registrationsin der Übersicht eines Clients - Klicken Sie auf
Create Registrationum eine neue Registrierungs-URL zu erstellen - Die URL kann nun über einen Toast (unten rechts) kopiert werden
- Die Registrierung taucht mit Ablaufdatum und Status in der Übersicht auf. Falls sie durch ein Versehen erstellt wurde, kann sie hier wieder gelöscht werden
Die Serverseitige Einrichtung ist nun abgeschlossen, nun ist nur noch die Installation des Windows-Services nötig.
Einrichtung
Schritt 1: Herunterladen der ausführbaren Datei
Der Service (+ Installer) wird als .exe hier zur Verfügung gestellt: p5_proxy.exe
Schritt 2: Verschieben in Installationsverzeichnis
Der Dienst installiert sich im aktuellen Verzeichnis. Hier werden weitere Artefakte (Ein Verzeichnis für Zertifikate, Konfiguration und Logs) erstellt. Daher wird empfohlen, ein eigenes, wiedererkennbares Verzeichnis für den Dienst zu erstellen
- Verschieben Sie den Dienst in das gewünschte Installationsverzeichnis
Schritt 3: Registrieren des Clients
- Geben Sie folgenden Befehl (z.B in Powershell oder CMD) ein, um den Client zu registrieren
p5proxy.exe register
- Geben Sie die zuvor erstellte Registrierungs-URL ein.
Schritt 4: Installieren als Windows-Dienst
Für diesen Befehl werden Administrationsrechte benötigt
Damit das Proxy zu jeder Zeit läuft, kann es als Dienst registriert werden. Führen Sie dafür folgenden Befehl aus
p5proxy.exe install
Der Dienst ist nun erfolgreich registriert und wird beim nächsten Systemstart automatisch gestartet. Sie können den Dienst mit dem Namen Procurat Proxy Service in der Windows-Dienstübersicht direkt starten.
Schritt 5: Überprüfen der Verbindung
Ist der Client erfolgreich registriert + gestartet, sendet er minütlich Heartbearts an den Controller. Diese aktualisieren den Status in der Oberfläche auf Online
Wird der Client nach spätestens 2 Minuten nicht als Online markiert, ist die Installation nicht erfolgreich abgeschlossen.
Schritt 6: Überprüfen der lokalen Windows-Firewall
In den meisten Fällen ist noch eine lokale Windows-Firewall aktiviert. Hier muss noch der zuvor vergebene Server Port freigegeben werden, ansonsten ist die Verbindung hinter dem Proxy nicht erreichbar.
Schritt 7: API-Key generieren und in P5 einrichten
API-Key generieren
Generieren eines sicheren API Keys (z.B mit OpenSSL oder 1PasswordGenerator)
openssl rand -hex 32
API-Key in Procurat hinterlegen
- In Procurat!5 mit Administrativen Berechtigungen anmelden.
- In der Procurat Administration in den Tab
Alle Stammdatenwechseln - Tabelle ZApiKey
- Eintrag erstellen + generierten Wert eingeben
- API Key notieren bzw. im Elternportal eintragen