Reverse Proxy für OWA, Webserver and Seafile
-
Hallo Leute,
ich hoffe Ihr könnt mir helfen. Ich möchte zu Hause ein Testlab aufbauen. Mit Exchange, Webserver und einen Seafile Server als Dropbox Ersatz. Dazu möchte ich all die Server mit Reverse Proxy absichern.
Ich habe pfSense installiert und konnte mit Squid Reverse Proxy bereits den Exchange Server bzw OWA EAS und Autodiscovery und RPC bereitstellen. Aber ich schaffe es nicht den Webserver bereitzustellen.Hat das jemand von Euch schon gemacht und kann mir da helfen?
Ich wäre sehr Dankbar für jeden Tipp.
Gruß Eddie -
Hi meddie,
was genau versuchst du mit dem Reverse Proxy zu bezwecken?
Ich habe selber schon viel mit Reverse Proxys gearbeitet und kann dir auf jeden Fall den Varnish, der auch in der Paketverwaltung der Pfsense ist empfehlen.In meinen Setup habe ich allerdings einen HAproxy als erstes vorgeschaltet, der sich dann um die Balaning bzw. SSL Offloading kümmert.
Dahinter steht dann der Varnish der sinnvolle Sachen cached.aber sowohl Seafile als auch Exchange sehe ich jetzt nicht als sinnvoll zu cachen an.
Da wäre es eher aus meiner Sicht sinnvoll die Sachen redundant (HA) aufzusetzen. -
Hallo tommytiger,
danke für die Antwort, da ich das wie gesagt zu Hause als Testlab bzw. Exchange für Eigengebrauch haben will, brauche ich kein HA und Balancing.
Den Reverse Proxy habe ich gedacht in erster Linie nicht um zu Cachen sondern einfach weil ich die Server nicht einfach durch Portforwarding von außen erreichbar machen will. Da sollte dann schon ein Reverse Proxy dazwischen sein.ich sehe mir den Varnish an.
Gruß Eddie -
Wenn du nur einen reinen Reverse Proxy haben möchtest, der schlank ist, dann nimm lieber HAProxy (auch in den Paketen enthalten).
Der Varnish ist primär zum Cachen gedacht. -
Ich habe selber schon viel mit Reverse Proxys gearbeitet und kann dir auf jeden Fall den Varnish, der auch in der Paketverwaltung der Pfsense ist empfehlen.
Der Varnish ist primär zum Cachen gedacht.Eben dies und Varnish hat ein ganz anderes Problem: Varnish gibt es nicht für HTTPS. Wenn du also TLS sprechen willst (und das willst du bei OWA und Co.) scheidet Varnish schonmal aus. HA-Proxy ist eigentlich genau dafür konzipiert: Loadbalancing, HA und Proxy. Da würde ich auch zugreifen, zudem kann mit dem neuesten HA-Proxy auch HTTPS gesprochen und auch transparent weitergereicht (oder terminiert) werden.
Grüße
-
Hattest du bei deinem Einsatzszenario (Seafile, Exchange) mit HAproxy erfolg?
Stehe nämlich vor der gleichen Aufgabe.
Tutorials für HAproxy unter pfSense konnte ich keine brauchbaren finden - würde mich freuen, wenn du deine Konfig teilen würdest. -
Hi,
nein mit HA Proxy nicht, aber mit dem Squid bin ich etwas weitergekommen ich konnte meinen Webserver und meinen Seafile veröffentlichen. Allerdings stimmt noch etwas nicht, denn ich kann keine Dateien von extern uploaden. Ich hatte aber auch noch keine Zeit da weiter zu machen.
Ich komme praktisch über verschiedene Namen auf die richtigen Server, z.B.:http(s)://www.domain.tld geht auf den intern 192-168.0.15 Webserver
https://cloud.domain.tld geht auf den Seafile Server 192.168.0.22Das mach der Squid soweit schon richtig, nur funktioniert der Upload der Dateien nicht, irgendwas muss der Squid noch verschlucken. Den Intern geht es. Intern habe ich meinen DNS so dass die Adresse cloud.domain.tld auf die interne Adresse verweist. Und da klappt es auch.
-
Ich hatte selbst erst mit Pound begonnen, dann Varnish dazu genommen und bin dann schließlich bei haproxy gelandet:
Bei der Suche nach einer funktionierenden Config bin ich dann auf http://ezoltan.blogspot.de/2014/10/highly-available-l7-load-balancing-for.html gestoßen:
Here is the content of the haproxy.conf file:
global
log 127.0.0.1 local0 info
maxconn 10000
daemon
quiet
tune.ssl.default-dh-param 2048defaults
log global
mode http
option httplog
option dontlognull
timeout connect 60000ms
timeout client 30000ms
timeout server 60000ms
timeout check 60000ms
stats enable
stats uri /statsfrontend fe_ex2013
mode http
bind *:443 ssl crt /etc/ssl/certs/exchange_certificate_and_key_nopassword.pem
acl autodiscover url_beg /Autodiscover
acl mapi url_beg /mapi
acl rpc url_beg /rpc
acl owa url_beg /owa
acl eas url_beg /microsoft-server-activesync
acl ecp url_beg /ecp
acl ews url_beg /ews
acl oab url_beg /oab
use_backend be_ex2013_autodiscover if autodiscover
use_backend be_ex2013_mapi if mapi
use_backend be_ex2013_rpc if rpc
use_backend be_ex2013_owa if owa
use_backend be_ex2013_eas if eas
use_backend be_ex2013_ecp if ecp
use_backend be_ex2013_ews if ews
use_backend be_ex2013_oab if oab
default_backend be_ex2013backend be_ex2013_autodiscover
mode http
balance roundrobin
option httpchk GET /autodiscover/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_mapi
mode http
balance roundrobin
option httpchk GET /mapi/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_rpc
mode http
balance roundrobin
option httpchk GET /rpc/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_owa
mode http
balance roundrobin
option httpchk GET /owa/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_eas
mode http
balance roundrobin
option httpchk GET /microsoft-server-activesync/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_ecp
mode http
balance roundrobin
option httpchk GET /ecp/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_ews
mode http
balance roundrobin
option httpchk GET /ews/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013_oab
mode http
balance roundrobin
option httpchk GET /oab/healthcheck.htm
option log-health-checks
http-check expect status 200
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crtbackend be_ex2013
mode http
balance roundrobin
server lab-ex01 10.30.1.11:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt
server lab-ex02 10.30.1.12:443 check ssl inter 15s verify required ca-file /etc/ssl/certs/ca-bundle.crt