Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?
-
Hallo,
ich habe vor, mehrere PCs in der DMZ zu betreiben.
Videokonverenz auf dem einen PC und email,etc. auf dem anderen PC.
Zugriff von extern auf Port 80, 443 etc. wäre schön, wenn das dann irgendwie zuteilbar ist.
DNS eintrag wäre z.B. video.asdf.de für die eine Maschine und mail.asdf.de für die andere.
Geht sowas? Gibt es da eine Anleitung?
Grüße
Heinz -
Moin. @krischeu
Schmeißt die Suchmaschine nichts raus?
-
Zuviel
Nicht passend
Eventuell etwas mit Reverse Proxy -
HAproxy mit SSLoffloading
Mit ACL (host Match) funktioniert
LgNP
-
@krischeu
Hallo,deine Beschreibung passt nicht zur Überschrift! In der Überschrift schreibst du
abhängig von der Quelle
aber
DNS eintrag wäre z.B. video.asdf.de für die eine Maschine und mail.asdf.de für die andere
deutet eher auf den Zielhost hin. Ich nehme an, das sind deine Hostnamen.
Wenn es die Ziele betrifft, diese nach Hostnamen unterschiedlich zu routen, ist ein Reverse-Proxy das Mittel zum Ziel. Geht auch gar nicht anders bei nur einer WAN-IP. Der Proxy muss hier in den Hostheader schauen und die Pakete entsprechend den Zielhosts weiterleiten. Auf Layer 3, auf dem der Paketfilter arbeitet, ist das nicht möglich.
Grüße
-
Reverse-Proxy hatte ich auch schon im Blick.
Das funktioniert dann auch mit ssl und UDP? -
ssl kein Problem
udp? HmmmHier gibt's ein paar Beiträge zu HAproxy im forum aber sollte alles gehen.
-
UDP ist verbindungslos. Das ist nicht wirklich zu "proxy'n". HAproxy genauso wie Squid arbeiten mit TCP, nicht UDP. Andernfalls sind Port Forwards das (einzige) Mittel zur Q/Wahl
-
Danke für die Rückmeldungen. Das hat mir schon mal geholfen. Ist es aufwändig, HAProxy einzurichten für meinen Bedarf?
-
Eigentlich nicht. Es gibt direkt nach Installation von HAproxy bereits ein Template, welches man "installieren" kann, das den Einstatzzweck "shared fontend" abbildet.
Shared Frontend: Das Frontend von HAproxy, also die "Seite" von HA, die Verbindungen annimmt, wird für mehrere Domains/URLs geteilt, daher der Name.
Backends: Server in DMZ oder LAN, die die eigentlichen Seiten ausliefern sollen.Beim Backend werden quasi die Server konfiguriert (und ein Check, damit HAproxy weiß ob da überhaupt was läuft oder ob er eine temporäre Fehlerseite ausliefern soll), beim Frontend - oder Frontends - die IP(s), auf denen von extern was angenommen wird (und auf welchem Port). Dann wird durch sog. ACLs (access control lists) definiert, was bei welchem Event ausgeführt wird.
Das Shared Frontend Template bspw. definiert 3 Backends und konfiguriert ein Frontend, welches je nach Hostname (host1/2/3.domain.tld) dann ein anderes Backend "selektiert" und sich damit verbindet. Das sollte recht einfach anpassbar sein.
Wenn man das noch mit SSL und ACME spicken möchte, wirds ein klein wenig umfangreicher. Kommt aber drauf an, ob das SSL Zertifikat auf der pfSense durch den Proxy ausgeliefert werden soll (SSL Termination) oder ob der Zugriff einfach durchgereicht wird und die Endgeräte selbst SSL sprechen (SSL Passthrough). Geht beides, je nachdem ist das eine oder das andere gewünscht oder einfacher.
-
Hallo Jens,
danke für die Erklärung. Die Funktionsweise hab ich geschnallt. Ich schau mir das mal an.
Grüße
Heinz -
das dilemma ist ein shared frontend für mehrere TLDs auf
1 ext IP auf :443zb: zeigen mittels A Record alle auf die 1 (eine) IP
service.sandy.xyz
service.lexi.xyz
service.kenzie.xyzund alles sollte auf das backend service.stars.xyz zeigen
funny ist das alle (also sandy lexie & kenzie) auf stars hinkommen
klar durch das port forwarding auf der pfS-boxallerdings immer das wildcard zertifikat von sandy.xyz verwendet wird
was wieder nicht das ziel ist.sandy hat ein LE wildcard
lexie & kenzie sind LE Certs p hoststars.xyz ist nur der interne name des apache :)
irgendwo hängt die logik.
PS nein es sind nicht die "wirklich verwendeten namen" ;)
-
@noplan said in Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?:
funny ist das alle (also sandy lexie & kenzie) auf stars hinkommen
klar durch das port forwarding auf der pfS-boxWas für ein Forwarding? Das ist doch Quark. Wenn ich mit HAProxy auf einer externen IP:443 Pakete annehme brauche ich kein Forwarding.
allerdings immer das wildcard zertifikat von sandy.xyz verwendet wird
Warum sollte? Es wird normalerweise das Zert von HAProxy verwendet und davon das was benötigt wird.
sandy hat ein LE wildcard
lexie & kenzie sind LE Certs p hostWarum ist das überhaupt relevant? Du willst doch Certs per ACME auf der Sense machen, also kümmert das Backend Zert überhaupt nicht?
-
-
list itemad forwarding jop das stimmt.
die bringt ja wirklich nix da sie auf die interne IP der pfS box zeigt (himmel)
das 443 port ist ja eh in der firewall open.(die forward sache kommt wohl noch aus alten Tagen ..... ;)
Danke für den Hinweis !! -
ad Zertifikate
ja das versteh ich auch nicht.
das Backend wird ohne Probleme von der sandy aus erreicht und funktioniert
will ich das gleiche Backend von lexi oder kenzie aus erreichen
komm ich zwar zum backend aber die Browser laufen Amok weil das Zert nicht passt (da es das wildcard von sandy ist)irgendwas versteh ich nicht richtig.
ich hab 3 https frontends gebaut
frontend 1 als shared basis
frontend 2 für sandy mit primary frontend= frontend-1
frontend 3 für kenzie mit primary frontend= frontend-1
frontend 4 für lexie mit primary frontend= frontend-1ich muss doch sowohl am backend unter
das CA und das Client Cert angebenals auch im frontend unter
a) das LE wildcard oder wenn per host das host cert
b) die certs die ich am frontend verwende
c) und hier die CA
irgendwo faslch abgebogen ?
-
-
Im Backend "musst" du gar keine Zertifikate angeben. Entweder du stellst ein, dass das Backend strikt geprüft wird ob es ein valides Zert hat oder nicht. Normalerweise macht mans nicht, weil oft der Sinn des Proxies ja genau darin liegt, überhaupt ordentliche Zerts zu haben.
Das Zert das vom Proxy ausgeliefert wird, ist nur im Frontend definiert und bei den Mikroscreenshots kann ich leider nichts von der Konfig erkennen, bei dem ich so helfen könnte, sorry. Ohne vernünftig mal deine Konfig zu posten und was genau von wo aus nicht geht, wird das schwer mit der Glaskugel und so :)
-
@JeGr said in Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?:
wenn am backend keine zerts abgelegt werden müssen auch ok
funktioniert nur leider mit einem shared frontend nicht ohne zerts am backenddas problem besteht darin
das ich zwar auf die backends (via frontend-2) für domain-2 komm aber
die zerts für domain-1 (also die von frontend-1) bekomm.ich seh mir das morgen in ruhe noch mal an.
btw.
wie machst du einen service aus dem internet erreichbar wenn du kein forwarding machst ? -
@noplan said in Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?:
btw.
wie machst du einen service aus dem internet erreichbar wenn du kein forwarding machst ?HA-Proxy sollte direkt auf der WAN-Schnittstelle laufen und deswegen wäre jegliches Portforwarding hier schädlich und könnte ggf. auch deine Problem erklären, wenn du denn welches eingerichtet hast. Den/die Port/s öffnen musst du natürlich trotzdem in der Firewall.
-
ergo musst du ein forwarding auf zB
destinationPort 443 destination firewall itself setzen
nur
in der rule das port zu öffnen funktionierte hier nichtaber danke für den input gleich mal testen
-
@noplan said in Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?:
funktioniert nur leider mit einem shared frontend nicht ohne zerts am backend
Öm doch. Schon mehrfach eingerichtet :) In Backends muss kein Zert hinterlegt werden - warum auch? Proxy spricht mit Backend Server, Server präsentiert sein Zert. Warum sollte ich dazu erst eines installieren müssen?
die zerts für domain-1 (also die von frontend-1) bekomm.
Dann kommst du komischerweise bei Frontend 1 raus und nicht bei 2. Das ist obskur und würde eher für einen Fehler der Konfiguration sprechen.
ich seh mir das morgen in ruhe noch mal an.
Das macht immer Sinn :)
wie machst du einen service aus dem internet erreichbar wenn du kein forwarding machst ?
Ömm wie jeder andere Server auch der DIREKT am Internet hängt? Port aufmachen und "lauschen"? ;)
Deine Firewall hängt ja direkt im Internet und ist auf dem WAN direkt erreichbar. Dein Proxy hört auf das WAN. Oder eine IP die dort aufliegt (VIP, Alias etc.). Warum sollte ich also umständlich noch irgendwas forwarden, was "eh einfach da" ist?
Du leitest ja nichts nach innen zu privatem IP Space weiter, sondern antwortest auf deiner WAN IP auf dem HTTPS Port ganz normal als wäre die Firewall der Server selbst. Das ist die Jobbeschreibung des Proxies ^^ergo musst du ein forwarding auf zB
destinationPort 443 destination firewall itself setzen
Nein eben nicht Das machst du wenn du Port 443 ÜBER die Firewall hinweg ins LAN _weiter_leiten willst. Du willst aber nichts WEITERleiten, sondern es am Proxy direkt beantworten!
Sorry aber ich weiß nicht wie man es dir anders erklären soll als es Bob oder ich schon haben. Deine Firewall hat die WAN IP, eine echte IP (wahrscheinlich) und antwortet DORT auf Anfragen aus dem Internet. Da muss NICHTS weitergeleitet werden, weil es kein "weiter" gibt! Der HAProxy läuft nicht HINTER der Firewall, sondern darauf und hört per default auf 80 oder/und 443. Und wenn du sauber bei HAproxy im Frontend als "Listen Address" das WAN ausgewählt hast, dann hört der HAproxy schon auf das WAN, dann musst du dem WAN nicht erst noch irgendwas weiterleiten :)
-
@noplan said in Port 443 und Port 80 Weiterleiten abhängig von der Quelle - Ist das Möglich?:
ich hab 3 https frontends gebaut
frontend 1 als shared basis
frontend 2 für sandy mit primary frontend= frontend-1
frontend 3 für kenzie mit primary frontend= frontend-1
frontend 4 für lexie mit primary frontend= frontend-1Um das hier nochmals aufzugreifen, dazu kurz ein paar Fragen.
- Sandy, Kenzie und Lexie haben alle als Adresse sowas wie <name>.domain.tld - korrekt?
- Kannst du kein wildcard Zertifikat (per LE/ACME) ausstellen, dass alle Namen abdeckt oder geht das aus irgendeinem Grund nicht?
- Wenn es nicht geht - kommt ja vor - kannst du per LE/ACME und deinem Provider ein SAN Zertifikat ausstellen? (ein Zertifikat, in dem alle 3 Domains enthalten sind, funktioniert recht einfach)
Beide Varianten - Wildcard und SAN - sind in Verbindung mit HAproxy wesentlich einfacher zu handeln als 3 einzelne Zertifikate und können jederzeit ergänzt oder geändert werden wenn benötigt. Hält auch den Zertifikatsspeicher und die Konfiguration kleiner.
Ansonsten würde ich ggf. statt dieser Shared Frontend Konfiguration, die das Template da vorschlägt statt dessen die ACL Variante vorschlagen, die das Template ebenfalls enthält. Also EIN Frontend auf Port 80 und auf 443 packen und per ACLs und Actions das "Routing" auf die Backend vornehmen. Hört sich schlimm an, ist aber extrem simpel und wenn du etwas mehr Details zu deinem "was ich gerne hätte" Setup postest, wäre das auch in kurzer Zeit erledigt :)
Schnellstes Setup war erst kürzlich für einen Kunden zwei Seiten hinter Proxy mit Acme/LE packen. Knapp 1h mit ACME LE MultiSAN Zertifikat, automatischer Erneuerung, ACME Redirect, SSL Setup etc. - also wirklich kein großer Aufriß.
Grüße