diff --git a/hosts/proxy/default.nix b/hosts/proxy/default.nix index dacd122..95149dc 100644 --- a/hosts/proxy/default.nix +++ b/hosts/proxy/default.nix @@ -157,6 +157,7 @@ timeout client 30s timeout server 30s +# stats seite zeigt backend connection status, wenn check gesetzt ist frontend stats bind 127.0.0.1:8404 mode http @@ -170,12 +171,16 @@ frontend http-in bind *:80 + # hier wird eine regel pro domain aus der forwarder liste generiert ${lib.foldlAttrs ( prev: name: value: prev + "acl is_${name} hdr(host) -i ${value.domain}\n" ) "" forwards} + + # ist request eine acme challenge? acl is_acme path_beg /.well-known/acme-challenge/ + # pro domain wird ein backend festgelegt und auf https redirected wenn es keine acme request ist ${lib.foldlAttrs ( prev: name: value: prev + '' @@ -184,11 +189,15 @@ '' ) "" forwards} + # das default backend zeigt die liste aller redirects an + # die liste darf nicht auf 443 redirected werden, da cert fehlt default_backend default_backend + # ssh redirect srs2 frontend ssh_jump_alt bind *:2142 mode tcp + # gönn mal session timeout timeout client 30m log-format "%ci:%cp [%t] %ft %b/%s %Tw/%Tc/%Tt %B %ts %ac/%fc/%bc/%sc/%rc %sq/%bq dst:%[var(sess.dst)] " use_backend ssh_srs2 @@ -197,19 +206,22 @@ frontend sni_router bind *:443 mode tcp + # mehrere pakete puffern und connection beenden wenn es kein ssl handshake sieht tcp-request inspect-delay 1s tcp-request content accept if { req_ssl_hello_type 1 } - # terminated here + # tcp redirect der anwendung basierend auf ssl_sni handshake parameter ${lib.foldlAttrs ( prev: name: value: prev + "use_backend ${name}_443 if { req_ssl_sni -i ${value.domain} }\n" ) "" forwards} + # default backend http static file generated above backend default_backend mode http http-request return status 200 content-type "text/html" file ${indexPage} + # ssh srs2 backend backend ssh_srs2 mode tcp timeout server 30m @@ -217,6 +229,7 @@ option tcpka server srs2 141.56.51.2:80 check + # ein backend pro forwards eintrag für port 80 und 443 ${lib.foldlAttrs ( prev: name: value: prev @@ -236,8 +249,6 @@ }; environment.systemPackages = with pkgs; [ - openvpn - tcpdump ]; system.stateVersion = "25.11";