KeyHelp im Parallelbetrieb mit dnsdist

Locked
Andre86
Posts: 5
Joined: Thu 5. Apr 2018, 09:59

KeyHelp im Parallelbetrieb mit dnsdist

Post by Andre86 »

Moin liebe KeyHelp Gemeinde,

nachdem ich nun schon seit einigen Jahren KeyHelp aktiv im Einsatz habe und dies auch echt immer nur weiterempfehlen kann (es läuft alles wie es soll, super einfach und super stabil), stehe ich allerdings jetzt mal vor einem "Problem", wo ich keine Lösung für finde. Nun hoffe ich auf eure Hilfe :)

In der 2. Corona Welle habe ich mir zum basteln einen RPi 4 (8GB RAM) angeschafft, auf welchem per Docker u.a. ein AdGuard Home, sowie ein Pi-hole und noch einiges mehr drauf läuft.
Mittlerweile ist dort auch ein Unbound mit dnsdist als Loadbalancer konfiguriert. Das ganze läuft auch echt geschmeidig.

Nun würde ich aber ganz gerne (rein zur Sicherheit) noch nen 2. Loadbalancer auf dem Host des KeyHelp konfigurieren und mit dem 1. Loadbalancer verbinden (ist per Konfiguration durchaus möglich)
Im großen und ganzen hat soweit auch alles funktioniert... Das Problem scheint jedoch zu sein, dass trotz Anpassungen im KeyHelp, KeyHelp auf jegliche IP Adressen des Hosts lauscht?!
Im KeyHelp selbst sind jeweils eine IPv4 und eine IPv6 des Hosts ausgewählt. Per SSH habe ich zusätzlich noch die bind9 und die Apache2 Config angepasst, sodass diese nur noch auf 127.0.0.1, sowie diese jeweiligen IPs aus KeyHelp lauschen.
Laut einem "netstat -tulpn | grep LISTEN" ist dies auch erfolgreich der Fall.

Der Loadbalancer arbeitet auf einer eigenen IPv4/IPv6 per Port 53, sowie DoT (853) ohne Probleme... Doch DoH (443) scheint nicht zu funktionieren, da die Subdomain einfach (trotz dass diese nicht in KeyHelp hinterlegt ist!) von KeyHelp geschluckt wird?

Selbst wenn ich 127.0.0.1 aus den Configs raus nehme, funktioniert es nicht. Nur dass dann eben auch keine Dashboard Abfrage der Ports mehr möglich ist?!

Wäre schön wenn es hierfür eine Lösung geben würde, oder wofür können in KeyHelp die IP Adressen ausgewählt werden?

Danke euch!
User avatar
Florian
Keyweb AG
Posts: 1243
Joined: Wed 20. Jan 2016, 02:28

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Florian »

Hallo,

wenn der Apache den Port 443 belegt kann da kein anderer Dienst lauschen.
Keyhelp konfiguriert für die angelegten Domains immer alle IPs via Wildcard:

<VirtualHost *:80>

Man kann aber z.B. den Apache mittels Änderungen in /etc/apache2/ports.conf auch auf eine bestimmte IP binden, sodass bei anderen IPs die Ports dann frei sind.
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Andre86
Posts: 5
Joined: Thu 5. Apr 2018, 09:59

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Andre86 »

Hallo,

das habe ich (wie aus meinem Text zu entnehmen sein sollte) bereits getan.

Angepasste Configs:
/etc/apache2/ports.conf
/etc/bind/named.conf.options

Damit dachte ich reicht es eigentlich aus. Scheinbar war dem nicht so.

Kurzes Beispiel (fiktive IPs):
192.168.0.100 ist die primäre Host IP
192.168.0.101 ist die sekundäre Host IP
100.64.1.3 ist die primäre Tunnel IP von WireGuard (spielt im weiteren Verlauf keine Rolle)

KeyHelp lauscht standardgemäß auf allen IPs, okay.
1.) In KeyHelp wurden zur Konfiguration alle IPs abgewählt, bis auf die primäre Host IP
2.) Die oben genannten Konfigurationsdateien wurden zusätzlich angepasst
3.) Der Host wurde neugestartet
4.) "dnsdist" wurde installiert und per Konfiguration so angepasst, dass es nur auf die sekundäre IP lauschen soll (Ports = normal 53, DoH 443, DoT 853)
5.) "dnsdist" wurde gestartet (es kam keine Fehlermeldung und die Log sagt auch, dass alles läuft und die Verbindung zur anderen Instanz aufgebaut wurde)
6.) Der Versuch auf die Subdomain, welche ich dem Dienst zugewiesen habe, zu kommen funktioniert, leitet mich jedoch auf Google weiter
!!! Google wurde hierbei für die Hauptdomain als Weiterleitung in KeyHelp gesetzt !!!
!!! Die Subdomain wurde jedoch NICHT in KeyHelp hinzugefügt und beinhaltet auch keinen A/AAAA-Eintrag zu den primären Host IPs (IPv4/IPv6) !!!

Interessanterweise funktioniert die Nutzung per normal (53), sowie auch per DoT (853) ohne Probleme.
Nur DoH (443) macht Probleme, wobei genau das für Querys per Browser interessant wäre (bsp. auf einem Firmenrechner o.ä. Szenarien)
Am Browser Cache kanns nicht liegen, das Problem tritt auch mit einem anderen Browser auf und genauso auch von einem anderen Gerät (bsp. dem Smartphone)

Leider bin ich nicht in der Thematik des "mod_proxy" drin, sonst würde ich damit ggf. mal mein Glück versuchen.
Und "nginx" wird von KeyHelp nicht unterstützt, bzw. könnte im Parallelbetrieb vermutlich zu Problemen führen?


// Noch etwas zur Ergänzung:
Wenn ich versuche per IP den Dienst aufzurufen (https://192.168.0.101/dns-query) funktioniert das ganze auch ohne Probleme.
Ist nur blöd wenn dort dann kein Zertifikat genutzt werden kann, bzw. das Zertifikat eben für eine "andere" (Sub)domain ausgestellt wurde (Zertifikatswarnung)
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Tobi »

Dieser Schritt ist aber nicht korrekt.
Andre86 wrote: Tue 20. Apr 2021, 15:40 4.) "dnsdist" wurde installiert und per Konfiguration so angepasst, dass es nur auf die sekundäre IP lauschen soll (Ports = normal 53, DoH 443, DoT 853)

Denn wie Florian schrieb:
Florian wrote: Tue 20. Apr 2021, 14:44 wenn der Apache den Port 443 belegt kann da kein anderer Dienst lauschen.

Also musst du für den Port 443 bei dnsdist eine Alternative finden.

Zum Thema KeyHelp und Reverse Proxy fiindest du einige Beiträge hier im Forum.
Nginx braucht es gar nicht.



Andre86 wrote: Tue 20. Apr 2021, 15:40 Ist nur blöd wenn dort dann kein Zertifikat genutzt werden kann, bzw. das Zertifikat eben für eine "andere" (Sub)domain ausgestellt wurde (Zertifikatswarnung)
Es gibt keine Zertifikate für IP Adressen. SSL Zertifikate sind an einen Hostnamen gebunden.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Florian
Keyweb AG
Posts: 1243
Joined: Wed 20. Jan 2016, 02:28

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Florian »

Hallo

Die Ausgabe von netstat -tulpen wäre schon hilfreich, um zu sehen welche Dienste hier auf welchen IPs und Ports lauschen.
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Andre86
Posts: 5
Joined: Thu 5. Apr 2018, 09:59

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Andre86 »

Tobi wrote: Tue 20. Apr 2021, 15:50 Es gibt keine Zertifikate für IP Adressen. SSL Zertifikate sind an einen Hostnamen gebunden.
Ist mir bekannt, ich glaube zukünftig werde ich versuchen es deutlicher "rüber" zu bringen.

Anbei die gewünschte Ausgabe:
root@kh ~ # netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 0 25530 2423/master
tcp 0 0 127.0.0.1:12345 0.0.0.0:* LISTEN 118 21624 694/opendkim
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 110 19842 447/named
tcp 0 0 192.168.0.101:443 0.0.0.0:* LISTEN 124 1008439 80153/dnsdist
tcp 0 0 192.168.0.100:443 0.0.0.0:* LISTEN 0 253789 18870/apache2
tcp 0 0 127.0.0.1:443 0.0.0.0:* LISTEN 0 253787 18870/apache2
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 19043 479/sshd: /usr/sbin
tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 0 17753 425/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 0 17787 425/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 0 17765 425/dovecot
tcp 0 0 127.0.0.1:10023 0.0.0.0:* LISTEN 0 22176 743/postgrey --pidf
tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 122 24260 1427/amavisd-new (m
tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 0 25631 2423/master
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 111 22267 658/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 0 25533 2423/master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 0 17763 425/dovecot
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 0 22686 988/perl
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 0 17785 425/dovecot
tcp 0 0 192.168.0.100:80 0.0.0.0:* LISTEN 0 253785 18870/apache2
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 0 253781 18870/apache2
tcp 0 0 192.168.0.101:853 0.0.0.0:* LISTEN 124 1008438 80153/dnsdist
tcp 0 0 127.0.0.1:853 0.0.0.0:* LISTEN 124 1008437 80153/dnsdist
tcp 0 0 192.168.0.101:53 0.0.0.0:* LISTEN 124 1008436 80153/dnsdist
tcp 0 0 192.168.0.100:53 0.0.0.0:* LISTEN 110 19468 447/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 110 19466 447/named
tcp 0 0 0.0.0.0:5353 0.0.0.0:* LISTEN 0 20539 571/unbound
tcp6 0 0 ::1:953 :::* LISTEN 110 19843 447/named
tcp6 0 0 :::22 :::* LISTEN 0 19054 479/sshd: /usr/sbin
tcp6 0 0 :::4190 :::* LISTEN 0 17756 425/dovecot
tcp6 0 0 :::993 :::* LISTEN 0 17788 425/dovecot
tcp6 0 0 :::995 :::* LISTEN 0 17766 425/dovecot
tcp6 0 0 ::1:10024 :::* LISTEN 122 24261 1427/amavisd-new (m
tcp6 0 0 :::110 :::* LISTEN 0 17764 425/dovecot
tcp6 0 0 ::1:783 :::* LISTEN 0 22656 988/perl
tcp6 0 0 :::143 :::* LISTEN 0 17786 425/dovecot
tcp6 0 0 :::21 :::* LISTEN 112 22155 747/proftpd: (accep
tcp6 0 0 PrimIPv6:53 :::* LISTEN 110 19512 447/named
tcp6 0 0 :::5353 :::* LISTEN 0 20541 571/unbound
udp 0 0 192.168.0.101:53 0.0.0.0:* 124 1008435 80153/dnsdist
udp 0 0 192.168.0.100:53 0.0.0.0:* 110 19467 447/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 110 19465 447/named
udp 0 0 192.168.0.100:68 0.0.0.0:* 100 900463 345/systemd-network
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 20290 527/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 0 20538 571/unbound
udp 0 0 0.0.0.0:21840 0.0.0.0:* 0 22532 -
udp 0 0 0.0.0.0:36531 0.0.0.0:* 122 75932 2158/amavisd-new (c
udp 0 0 0.0.0.0:42765 0.0.0.0:* 122 36024 2151/amavisd-new (c
udp6 0 0 PrimIPv6:53 :::* 110 19511 447/named
udp6 0 0 :::5353 :::* 0 20540 571/unbound
udp6 0 0 :::21840 :::* 0 22533 -
Wie gesagt, ich kann anhand dessen keinen Fehler erkennen. Sonst hätte ja mindestens auch die Log was anzeigen müssen, bzw. wäre der Dienst vermutlich nicht mal gestartet (so kenne ich es normalerweise)
User avatar
Florian
Keyweb AG
Posts: 1243
Joined: Wed 20. Jan 2016, 02:28

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Florian »

Hallo,

OK dnsdist läuft auf IP 192.168.0.101 unter Port 443. Wenn die Domain die genutzt werden soll auch auf diese IP auflöst, kann da kein Apache dazwischenfunken, der der Apache darüber nicht angesprochen wird
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Andre86
Posts: 5
Joined: Thu 5. Apr 2018, 09:59

Re: KeyHelp im Parallelbetrieb mit dnsdist

Post by Andre86 »

Hi,

was es auch immer war, seit ca. 16:30 Uhr eben funktioniert es jetzt...

Außer dem Server noch eine interne IP im gleichen VLAN (habe neben dem RPi auch noch mehrere VPS in der Hetzner Cloud, die untereinander ein VLAN haben und wo der KeyHelp Host zusätzlich noch eine VPN Verbindung per WireGuard direkt zu meinem RPi aufbaut) gegeben zu haben und in KeyHelp bei der Firewall diese IP für den Datenbankport freizugeben, habe ich nichts mehr geändert.

Danke euch trotzdem :D
Locked