global uid 80 gid 80 chroot /var/haproxy daemon stats socket /var/run/haproxy.socket group proxy mode 775 level admin nbthread 3 hard-stop-after 60s no strict-limits maxconn 5000 httpclient.resolvers.prefer ipv4 tune.ssl.default-dh-param 2048 ssl-server-verify none spread-checks 2 tune.bufsize 16384 tune.lua.maxmem 0 log /var/run/log local0 info lua-prepend-path /tmp/haproxy/lua/?.luadefaults log global option redispatch -1 maxconn 5000 timeout client 30s timeout connect 30s timeout server 30s retries 3 default-server init-addr last,libc default-server maxconn 5000# autogenerated entries for ACLs# autogenerated entries for config in backends/frontends# autogenerated entries for stats# Resolver: localhostresolvers 65f07c72079ab5.15927014 nameserver 127.0.0.1:53 127.0.0.1:53 parse-resolv-conf resolve_retries 3 timeout resolve 1s timeout retry 1s# Frontend: frontend_https_passthrough ()frontend frontend_https_passthrough bind 192.168.30.222:443 name 192.168.30.222:443 mode http option http-keep-alive # logging options option httplog # ACL: gitlab_*******_gmbh_condition_443 acl acl_65f8573505fac0.51650234 hdr(host) -i gitlab.*******.gmbh # ACTION: gitlab_*******_gmbh_rule_443 use_backend gitlab_*******_gmbh_443 if acl_65f8573505fac0.51650234# Frontend: frontend_http_passthrough ()frontend frontend_http_passthrough bind 192.168.30.222:80 name 192.168.30.222:80 mode http option http-keep-alive option forwardfor # logging options option httplog # ACL: gitlab_*******_gmbh_condition_80 acl acl_65f853365a5227.06377745 hdr(host) -i gitlab.*******.gmbh # ACTION: gitlab_*******_gmbh_rule_80 use_backend gitlab_*******_gmbh_80 if acl_65f853365a5227.06377745# Backend: gitlab_*******_gmbh_80 ()backend gitlab_*******_gmbh_80 # health check: gitlab_*******_gmbh_80_health mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src http-reuse safe option forwardfor server gitlab gitlab.*******.gmbh:80 check inter 5s port 80 # Backend: gitlab_*******_gmbh_443 ()backend gitlab_*******_gmbh_443 # health check: gitlab_*******_gmbh_443_health mode http balance source # stickiness stick-table type ip size 50k expire 30m stick on src http-reuse safe option forwardfor server gitlabs gitlab.*******.gmbh:443 check inter 5s port 443 ssl sni str(gitlab.*******.gmbh) alpn h2,http/1.1 verify none# statistics are DISABLED
root@OPNsense:~ # sockstat | grep haproxywww haproxy 79957 5 tcp4 192.168.30.222:443 *:*www haproxy 79957 6 tcp4 192.168.30.222:80 *:*www haproxy 79957 7 stream /var/run/haproxy.socket.78615.tmproot syslog-ng 19776 24 dgram /var/haproxy/var/run/logroot@OPNsense:~ # sockstat | grep lighttpdroot lighttpd 15613 7 tcp4 127.0.0.1:443 *:*root lighttpd 15613 8 tcp6 ::1:443 *:*root lighttpd 15613 9 tcp6 fe80::1%lo0:443 *:*root lighttpd 15613 10 tcp4 192.168.3.254:443 *:*root lighttpd 15613 11 tcp4 192.168.0.254:443 *:*root lighttpd 15613 12 tcp4 192.168.9.254:443 *:*root lighttpd 15613 13 tcp4 192.168.21.254:443 *:*root lighttpd 15613 14 tcp4 192.168.60.254:443 *:*root lighttpd 15613 15 dgram -> /var/run/logpriv
root@OPNsense:~ # sockstat | grep lighttpdroot lighttpd 94982 7 tcp4 *:8443 *:*root lighttpd 94982 8 tcp6 *:8443 *:*root lighttpd 94982 9 dgram -> /var/run/logprivroot@OPNsense:~ # sockstat | grep haproxywww haproxy 26828 5 tcp4 *:443 *:*www haproxy 26828 6 tcp4 *:80 *:*www haproxy 26828 7 stream /var/run/haproxy.socket.26719.tmpwww haproxy 26828 17 dgram (not connected)www haproxy 26828 18 dgram (not connected)www haproxy 26828 19 dgram (not connected)root syslog-ng 19776 24 dgram /var/haproxy/var/run/log
-------LAN [OPNSENSE] WAN --------------------------- GW [Router] ------- Internet192.168.1.1| |192.168.30.222 192.168.30.254| | ------- weiteres LAN z.b 192.168.0.0
(WAN_GW (active) 0WAN IPv4 255 (upstream) 192.168.30.254) ~~~ Interface WAN Gateway
- Gibt es nun eine Einstellung, die eine solche Kommunikation erlauben würde? (also aus dem 30.0-Netz) oder ist das mit Absicht so?
- Kann ich Haproxy so konfigurieren, dass Anfragen opnsense.************.gmbh:443 über den Haproxy auf localhost:444 (also die jetzt umgezogene Weboberfläche) weiterleitet?
In den WAN Interface-Settings ist standardmäßig "Block private networks" aktiviert. Hast du den Haken entfernt?
Ich würde aber empfehlen, generell keinen dauerhaften Zugriff auf die WebGUI zuzulassen und für diesen Zweck eine VPN einzurichten
QuoteIn den WAN Interface-Settings ist standardmäßig "Block private networks" aktiviert. Hast du den Haken entfernt?klar, wenn der Hacken gesetzt ist, blockt die Firewall alle Anfragen. Das war die erste Anlaufstelle.
das dient eher dem Internen Zugriff auf 443 (Trickshot fürs WPAD auf 443, obwohl lighttpd auf 444 läuft), die WebGUI wird nie von WAN aus Erreichbar sein. (ich hoffe, ich kann haproxy-Regeln so einstellen, dass die Anfragen auf die entsprechende URL nur aus internen Netzen verarbeitet werden)
In den Firewall Logs ist ja die zuständige Regel ersichtlich. Hilft diese Info nicht weiter?
Ich verstehe dennoch nicht den Sinn, von intern über HAproxy auf die WebGUI zu gehen.Du kannst du local auch eine zusätzlich IP dafür nutzen, wenn es Port 443 sein soll (warum auch immer).
HAproxy kennt die ACLs "Source IP is local" oder "Source IP matches specified IP". Damit sollte sich was machen lassen.Von pfSense kenne ich es jedenfalls, dass man in diesen ACLs auch Aliases mit (lokalen) IPs oder Subnetzen angeben kann. Das sollte doch bei OPNSense auch gehen. Ansonsten wäre ich hier ohnehin falsch
Wenn du keine WAF brauchst kannst du ja mal os-caddy ausprobieren. Dort hab ich auch ein NTLM Plugin eingebaut für sauberes Exchange Server Reverse Proxying (benutze es mit ein paar, da musst du nicht den Basic Auth Trick verwenden wie z.B. bei Nginx etc...).
HAproxy kennt die ACLs "Source IP is local" oder "Source IP matches specified IP"