Scenario
Sie betreiben Ihr ELO im Selfhosted-Betrieb auf einem eigenen Server in Ihrem Hause, oder ein Partner von Ihnen betreibt Ihr ELO im Selfhosted-Betrieb in seinem Rechenzentrum und Sie möchten Anwender z.B. zur einfachen Freigabe von Rechnungen einen Zugriff auf Ihr ELO über den ELO WebClient ermöglichen. Dabei soll kein zusätzliches VPN notwendig sein, z.B. weil die Masse und Diversität an Freigebern eine Lösung mit VPN zu aufwendig macht.
Bitte beachten Sie unsere Hinweise zur Sicherheit insb. im letzten Absatz dieses Artikels.
Unsere Empfehlung
Wir empfehlen in so einem Fall die Veröffentlichung des ELO WebClient über einen sogenannten Reverse-Proxy oder eine Application Firewall. Dabei werden interne Services (in diesem Fall Ihr ELO System) basierend auf URL-Mustern des HTTP-Protokolls nach außen freigeschaltet, ohne dass z.B. eine direkte Port-Weiterleitung auf der ELO-System notwendig ist.
Dabei müssen folgende URL-Pfade weitergeleitet werden:
- /ix-elo
- /wf-elo
- /web-elo
Einrichtung mit nginx
Da es in der Praxis eine Vielzahl von Implementationen / Softwarelösungen für solche Reverse-Proxies gibt und wir unmöglich Konfigurationsbeispiele für alle Lösungen vorhalten können, zeigen wir hier beispielhaft eine Konfiguration eines nginx Web-Servers. Diese können Sie als Referenz für Ihre eigene Umsetzung nutzen:
################################################################################
## Wir empfehlen dringend, ausschließlich einen Zugriff per HTTPS zuzulassen
## und alle Nicht-HTTPS-Anfragen automatisch auf HTTPS umzuleiten
################################################################################
server {
listen 80;
server_name ~.*;
return 301 https://$host$request_uri;
}
################################################################################
## Hier stellen Sie die IP-Adresse oder den Namen Ihres Selfhost ELO Server ein
################################################################################
upstream elo {
server 192.168.0.101;
}
################################################################################
## Konfiguration der eigentlichen Proxy-Regeln
################################################################################
server {
# Zugriff ausschließlich per HTTPS
listen 443 ssl;
# TLS-Zertifiakt
ssl_certificate /etc/nginx/ssl/fullchain.pem; # Pfad zu Ihrem TLS-Zertifikat
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # Pfad zu Ihrem TLS-Zertifikat
# Upload von Dateien bis zu 1GB erlauben
client_max_body_size 1000m;
# Zugriff auf ELOix erlauben
location /ix-elo {
proxy_pass http://elo;
# Proxy-Header setzen, damit ELO weiß, dass es sich um eine Weitergeleitete Anfrage handelt
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto 'https';
# Für den Upload von großen Dateien sind längere Timeouts notwendig
proxy_read_timeout 86400;
proxy_send_timeout 86400;
# Für den Upload von großen Dateien hat es sich bewährt request buffering auszuschalten
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
}
# Zugriff auf ELO Web Client erlauben
location /web-elo {
proxy_pass http://elo;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto 'https';
proxy_read_timeout 86400;
proxy_send_timeout 86400;
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
}
# Zugriff auf ELOwf erlauben (Formulare und Feed)
location /wf-elo {
proxy_pass http://elo;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto 'https';
proxy_read_timeout 86400;
proxy_send_timeout 86400;
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
}
}
Bitte beachten Sie, dass diese Konfiguration lediglich als als Referenz genutzt werden darf. Eine Nutzung 1:1 per Copy&Paste ist nicht vorgesehen.
Wichtige Hinweise zur Sicherheit
Bitte beachten Sie, dass die Nutzung eines Reverse-Proxys grundsätzlich eine Verbindung von überall auf der Welt zu Ihrem ELO Server bedeutet. Daher ist es besonders wichtig, die damit einhergehenden Sicherheitsimplikationen genau zu verstehen. Bitte stellen Sie sicher, dass jederzeit ausschließlich aktuelle Software-Releases von allen Softwarekomponenten genutzt werden, die Teil dieser Zugriffslösung sind.
DNS und TLS-Zertifikate
Bitte beachten Sie, dass Sie bei dieser Lösung ein eigenes vertrauenswürdiges TLS-Zertifikat benötigen. Sie sind selbst verantwortlich das Zertifikat zu erwerben und dieses auszutauschen, bevor es abläuft. Grundsätzlich ist die Nutzung von https://letsencrypt.org/ Sinnvoll. Damit können Sie kostenfrei ein geeignetes Zertifikat beziehen und die Erneuerung des Zertifikats lässt sich leicht automatisieren.
Bitte beachten Sie, dass Sie selbst für die Einrichtung und Pflege einer geeigneten Domain soweit einem DNS-Eintrag für den Reverse-Proxy zuständig sind. Der DNS-Name muss uns unbedingt mitgeteilt werden, da dieser in ELO hinterlegt werden muss. Danach ist nur noch der Zugriff über die externe Adresse auf Ihr ELO System möglich (sowohl mit dem ELO JavaClient, als auch mit dem ELO WebClient).
DNS-Splitting
Wir unterstützen auch die Möglichkeit des DNS-Splitting. Dabei wird sichergestellt, dass alle Zugriff aus Ihrem internen Netzwerk intern bleiben und nur externe Zugriffe über das externe Interface laufen. Es muss allerdings jeder Zugriff (intern wie extern) über den Reverse-Proxy erfolgen, damit jederzeit der richtige DNS Name für den Zugriff auf das ELO-System genutzt wird.
Unterstützung und Support
Zu weiteren Details beraten wir Sie gern persönlich, wenden Sie sich dazu einfach an unseren Support. Bitte beachten Sie, dass die Betriebsverantwortung sowohl im Bereich der korrekten Funktionalität und Sicherheit weiterhin bei Ihnen liegt.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.