Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen

The load balancer can be connected to the outside world to allow access to the jtel System from the internet.

Connecting the LB to the outside world directly


Warning
titleNot recommended

This is not the recommended approach. If you do decide to do this, then consider the following carefully.

  • DO NOT CONNECT THE INTERNAL NETWORK INTERFACE DIRECTLY TO THE INTERNET. 
    There are more ports open in the firewall on the load balancer for the operation of the solution than just the http and https ports.
    The load balancer should be given a second network interface with the public IP address.

  • Only open port 80 and port 8080 on the second network interface.

  • Consider installing additional protection such as fail2ban to protect against some attacks.

  • Consider using https only.

Connecting the LB to the outside world via a firewall

The following ports should be forwarded to the jtel Load Balancer:

  • Port 80
  • Port 443

It is highly recommended to install a certificate for your domain on the load balancer.

See also Rolle LB - Selbst signiertes Zertifikat and Rolle LB - Zertifikate für Load-BalancerSSL/TLS Certificates - Self-signed certificate and Role LB - Certificates for load balancers.

Note: you can use https only (i.e. open only port 443 in the firewall) if you do not require http access. See below for details of extra configuration required in the load balancer to do this.

Connecting the LB to the outside world via a reverse proxy

The preceeding reverse proxy should perform the following tasks:

  • SSL Offloading
    Decode https using an installed certificate, and forward decoded http requests to the jtel load balancer onto port 80.

  • Insert the following headers into the http request:
    X-Forwarded-For 
    X-Forwarded-Proto

Note: this configuration must be performed by the administrators of the reverse proxy and depends on the exact reverse proxy used.

Addition LB Configuration if only Port 443 is opened (via Firewall or via previous Reverse Proxy)

If only port 443 is available to the outside world, then the following must be considered:

  • All requests to the jtel webservers must include the https protocol in the URI.

Because of redirections which are made in the web application, it is necessary to inform the web server that the redirected URL should refer to https and not http.

This is achieved using the X-Forwarded-Proto header in most webservers. Wildfly can do this. However, JBOSS does not do this correctly and so haproxy must be configured to perform this task.

JBOSS

When running JBOSS webservers, add the following to haproxy.cfg in the backend configuration section for jtel_portal and jtel_soap

code
Translations Ignore
http-response   replace-header Location http:(.*) https:\1
This is because JBOSS does not process the X-Forwarded-Proto header correctly when redirections are made.

Wildfly

When running Wildfly on the webservers, the configuration, make sure the following is in standalone.xml on the http listener:

proxy-address-forwarding="true"

Translations Ignore
Code Block

For example:

Translations Ignore

<http-listener

name="default"

socket-binding="http"

max-post-size="20971520"

enable-http2="false"

proxy-address-forwarding="true"/>

The wildfly servlet container deals with the protocol differences correctly on its own by interpreting the X-Forwarded-Proto header.For example:


http-response   replace-header Location http:(.*) https:\1

Dies liegt daran, dass JBOSS den X-Forwarded-Proto-Header bei Umleitungen nicht korrekt verarbeitet.

Wildfly

Wenn Sie Wildfly auf den Webservern ausführen, stellen Sie bei der Konfiguration sicher, dass die folgende Datei in der Datei standalone.xml auf dem http-Hörer vorhanden ist:

proxy-address-forwarding="true"

Zum Beispiel:

translations-ignore

<http-listener name="default" socket-binding="http" max-post-size="20971520" enable-http2="false" proxy-address-forwarding="true"/>

Der Servlet-Container wildfly behandelt die Protokollunterschiede selbständig korrekt, indem er den X-Forwarded-Proto-Header interpretiert.

Sv translation
languagede

Der Load Balancer kann mit der Außenwelt verbunden werden, um den Zugriff auf das Jtel-System vom Internet aus zu ermöglichen.

Die LB direkt mit der Außenwelt verbinden


Warning
titleNicht Empfohlen

Dies ist nicht der empfohlene Ansatz. Wenn Sie sich dazu entschließen, dann überlegen Sie sich das Folgende sorgfältig.

  • VERBINDEN SIE DIE INTERNE NETZWERKSCHNITTSTELLE NICHT DIREKT MIT DEM INTERNET. 
    In der Firewall auf dem Load Balancer sind für den Betrieb der Lösung mehr Ports offen als nur die http- und https-Ports.
    Der Load Balancer sollte eine zweite Netzwerkschnittstelle mit der öffentlichen IP-Adresse erhalten.

  • Öffnen Sie nur Port 80 und Port 8080 an der zweiten Netzwerkschnittstelle.

  • Erwägen Sie die Installation eines zusätzlichen Schutzes wie fail2ban, um sich gegen einige Angriffe zu schützen.

  • Ziehen Sie in Betracht, nur https zu verwenden.

Verbindung der LB mit der Außenwelt über eine Firewall

Die folgenden Ports sollten an den jtel Load Balancer weitergeleitet werden:

  • Port 80
  • Port 443

Es wird dringend empfohlen, ein Zertifikat für Ihre Domain auf dem Load Balancer zu installieren.

Siehe auch: Rolle LB - Selbst signiertes Zertifikat und Rolle LB - Zertifikate für Load-BalancerSSL/TLS Certificates - Self-signed certificate und Role LB - Certificates for load balancers.

Hinweis: Sie können nur https verwenden (d.h. nur Port 443 in der Firewall öffnen), wenn Sie keinen http-Zugang benötigen. Siehe unten für Einzelheiten über die dazu erforderliche zusätzliche Konfiguration im Load Balancer.

Verbindung der LB mit der Außenwelt über einen Reverse-Proxy

Der vorangehende Reverse-Proxy sollte folgende Aufgaben erfüllen:

  • SSL Offloading
    Dekodieren Sie https unter Verwendung eines installierten Zertifikats und leiten Sie dekodierte http-Anforderungen an den Jtel-Loadbalancer auf Port 80 weiter.

  • Fügen Sie die folgenden Überschriften in die http-Anforderung ein:
    X-Forwarded-For 
    X-Forwarded-Proto

Hinweis: Diese Konfiguration muss von den Administratoren des Reverse-Proxys durchgeführt werden und hängt genau vom verwendeten Reverse-Proxy ab.

Hinzufügen der LB-Konfiguration, wenn nur Port 443 geöffnet ist (über Firewall oder über vorherigen Reverse Proxy)

Wenn der Außenwelt nur der Port 443 zur Verfügung steht, muss Folgendes berücksichtigt werden:

  • Alle Anfragen an die Jtel-Webserver müssen das https-Protokoll in der URI enthalten.

Wegen der Umleitungen, die in der Webanwendung vorgenommen werden, ist es notwendig, dem Webserver mitzuteilen, dass die umgeleitete URL auf https und nicht auf http verweisen soll.

Dies wird durch die Verwendung des X-Forwarded-Proto-Headers in den meisten Webservern erreicht. Wildfly kann dies tun. JBOSS macht dies jedoch nicht korrekt, so dass Haproxy für diese Aufgabe konfiguriert werden muss.

JBOSS

Wenn Sie JBOSS-Webserver ausführen, fügen Sie in der haproxy.cfg im Abschnitt Backend-Konfiguration für jtel_portal und jtel_soap Folgendes hinzu

Translations Ignore
Translations Ignore
Sv translation
languagefr

L'équilibreur de charge peut être connecté au monde extérieur pour permettre l'accès au système jtel depuis l'internet.

Relier directement le LB au monde extérieur


Warning
titleNon recommandé

Ce n'est pas l'approche recommandée. Si vous décidez de le faire, réfléchissez bien à ce qui suit.

  • NE PAS CONNECTER L'INTERFACE DE RÉSEAU INTERNE DIRECTEMENT À L'INTERNET. 
    Il y a plus de ports ouverts dans le pare-feu sur l'équilibreur de charge pour le fonctionnement de la solution que seulement les ports http et https.
    L'équilibreur de charge doit être doté d'une seconde interface réseau avec l'adresse IP publique.

  • N'ouvrez que le port 80 et le port 8080 sur la deuxième interface réseau.

  • Envisager l'installation de protections supplémentaires telles que fail2ban pour se protéger contre certaines attaques.

  • Envisagez d'utiliser uniquement le protocole https.

Connexion de la LB au monde extérieur via un pare-feu

Les ports suivants doivent être transmis au Load Balancer de jtel :

  • Port 80
  • Port 443

Il est fortement recommandé d'installer un certificat pour votre domaine sur l'équilibreur de charge.

Voir aussi SSL/TLS Certificates - Self-signed certificate et Role LB - Certificates for load balancers.

Remarque : vous ne pouvez utiliser le protocole https (c'est-à-dire ouvrir uniquement le port 443 dans le pare-feu) que si vous n'avez pas besoin d'un accès http. Voir ci-dessous pour plus de détails sur la configuration supplémentaire requise dans l'équilibreur de charge pour ce faire.

Connexion de la LB au monde extérieur via un reverse proxy

Le mandataire inverse précédent doit accomplir les tâches suivantes :

  • Déchargement SSL
    Décoder le https en utilisant un certificat installé, et transmettre les requêtes http décodées au load balancer de jtel sur le port 80.

  • Insérez les en-têtes suivants dans la requête http :
    X-Forwarded-For 
    X-Forwarded-Proto

Note : cette configuration doit être effectuée par les administrateurs du reverse proxy et dépend de l'exact reverse proxy utilisé.

Ajout de la configuration LB si seul le port 443 est ouvert (via le pare-feu ou via le Reverse Proxy précédent)

Si seul le port 443 est accessible au monde extérieur, il faut alors tenir compte de ce qui suit :

  • Toutes les demandes adressées aux serveurs web de jtel doivent inclure le protocole https dans l'URI.

En raison des redirections qui sont effectuées dans l'application web, il est nécessaire d'informer le serveur web que l'URL redirigée doit faire référence à https et non à http.

Pour ce faire, la plupart des serveurs web utilisent l'en-tête X-Forwarded-Proto. Wildfly peut le faire. Cependant, le JBOSS ne le fait pas correctement et l'haproxy doit donc être configuré pour effectuer cette tâche.

JBOSS

Lorsque vous utilisez des serveurs web JBOSS, ajoutez ce qui suit au fichier haproxy.cfg dans la configuration de section backend pour jtel_portal et jtel_soap

Translations Ignore
http-response   replace-header Location http:(.*) https:\1
Cela est dû au fait que le JBOSS ne traite pas correctement l'en-tête X-Forwarded-Proto lorsque des redirections sont effectuées.

Wildfly

Lorsque vous exécutez Wildfly sur les serveurs web, la configuration, assurez-vous que ce qui suit est dans standalone.xml sur l'auditeur http :

Translations Ignore

proxy-address-forwarding="true"

Par exemple:

Translations Ignore

<http-listener name="default" socket-binding="http" max-post-size="20971520" enable-http2="false" proxy-address-forwarding="true"/>

Le conteneur de servlet wildfly traite correctement les différences de protocole par lui-même en interprétant l'en-tête X-Forwarded-Proto.