Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Fuschio

#1
Hallo zusammen,

ich betreibe ein RDP-Gateway hinter dem HAProxy.
Dafür habe ich meine feste öffentliche IP per A-Record auf einer meiner Subdomains (gw.homepage.de) zur OPNsense geroutet.

Zur Kommunikation mit dem RDP-Gateway wird zwingend HTTPS-Port 443 benötigt (sofern man es nicht abändert) und optional UDP-Port 3391.

Grundsätzlich funktioniert das Gateway bzgl. der Port 443 Weiterleitung mit dieser Config:

#
# Automatically generated configuration.
# Do not edit this file manually.
#

global
    uid                         80
    gid                         80
    chroot                      /var/haproxy
    daemon
    stats                       socket /var/run/haproxy.socket group proxy mode 775 level admin
    nbthread                    1
    hard-stop-after             60s
    no strict-limits
    tune.ssl.default-dh-param   2048
    spread-checks               2
    tune.bufsize                16384
    tune.lua.maxmem             0
    log                         /var/run/log local0 info
    lua-prepend-path            /tmp/haproxy/lua/?.lua
    ssl-default-bind-options prefer-client-ciphers ssl-min-ver TLSv1.2
    ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
    ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

defaults
    log     global
    option redispatch -1
    maxconn 1000
    timeout client 60s
    timeout connect 60s
    timeout server 60s
    retries 3
    default-server init-addr last,libc
    default-server maxconn 1000

# autogenerated entries for ACLs

# autogenerated entries for config in backends/frontends

# autogenerated entries for stats

# Frontend: Gateway-Public-Service_Port_443 ()
frontend Gateway-Public-Service_Port_443
    bind gw.homepage.de:443 name gw.homepage.de:443 ssl  crt-list /tmp/haproxy/ssl/64ba7929d90698.13956110.certlist
    mode http
    option http-keep-alive

    # logging options
    # ACL: Gateway-Condition
    acl acl_64ba7837e39c91.64621111 hdr_beg(host) -i gw.homepage.de

    # ACTION: Gateway Rule
    use_backend Gateway-Backendpool if acl_64ba7837e39c91.64621111

# Backend: Gateway-Backendpool ()
backend Gateway-Backendpool
    # health checking is DISABLED
    mode http
    balance source

    http-reuse safe
    server gw.homepage.local 192.168.1.10 ssl verify required ca-file /etc/ssl/cert.pem

# statistics are DISABLED


Mein Problem ist, dass ich den UDP Port 3391 nicht zusätzlich zum Gateway bekomme.

Ich bin mir recht sicher, dass ich den "Real Server" Eintrag korrekt habe.
Einfach die IP des lokalen Servers ohne Portangabe damit der gleiche Port genutzt wird der vom Frontend weitergereicht wird...klappt beim Port 443 auch problemlos.

Bei Rules & Condition bin ich mir auch einigermaßen sicher...dort prüfe ich einfach auf "Host starts with" --> gw.homepage.de und dann "Use backendpool" --> Gateway-Backendpool und hinterlege die Regel im Frontend.

Beim Backend und Frontend bin ich mir allerdings unsicher.

Benötige ich ein neues Backend in dem ich wieder den "Real Server" hinterlege oder kann ich das bisherige weiter nutzen?
Ich habe gelesen, man soll den Mode von "HTTP (Layer 7)" auf "TCP (Layer 4)" im Backend ändern um den UDP Port 3391 weiterleiten zu können?

Benötige ich ein neues Frontend? Eines das auf gw.homepage.de:3391 lauscht, oder?
Muss ich dort in den Frontend-Einstellungen den Type auf "TCP" ändern anstatt HTTP/HTTPS (SSL Offloading)?

Vielleicht kann mir hier jemand Tipps zur korrekten Konfiguration geben, ich habe gefühlt schon alles durchprobiert und nie eine UDP-Verbindung aufbauen können.  :-\

Vielen Dank schon mal! Ich kann auch noch Screenshots liefern o.ä. falls dies hilft.