Hallo,
ich betreibe auf einem Ubuntu 20.04 einen PiHole mit Letsencrypt und unbound wo eine Dyndns Domain die auf die IP Zeigt. Das läuft schon paar Tage so.
Nun will ich auf selben Server den Nginx Proxy Manager mit drauf haben, der Zwangsläufig Port 80 und 443 braucht.
Ich habe in der lighttpd.conf den Port geändert auf 8085, die SSL Einstellungen aus der external.conf gelöscht. Den systemctl restart lighttpd durchgeführt (keine Fehler) und über die IP:8085 versucht aufzurufen, ich komme nicht drauf. Egal was ich schon versucht habe, ich kann das Web Interface nicht auf einen anderen Port öffnen. Was habe ich übersehen zu ändern ? Firewall Freigabe ist gemacht für Port 8085.
###############################################################################
# FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE INSTALL/UPDATE PROCEDURE. #
# ANY CHANGES MADE TO THIS FILE AFTER INSTALL WILL BE LOST ON THE NEXT UPDATE #
# #
# CHANGES SHOULD BE MADE IN A SEPARATE CONFIG FILE: #
# /etc/lighttpd/external.conf #
###############################################################################
A permanent method of changing the lighttpd port (for lighttpd version 1.4.46 or later):
Check your lighttpd version with this command.
lighttpd -v
If that returns 1.4.46 or above, you can overwrite the port from Pi-hole's lighttpd.conf in your external.conf like this:
server.port := 8888
Note that the := operator isn't supported in older versions of lighttpd .
Wenn ich http://ip:8085/admin eingebe kommt "Fehler: Netzwerk-Zeitüberschreitung". Es ist ein Oracle Cloud gehosteter Server aber es läuft ein normal installiertes Pihole / Wireguard / Unbound. Docker läuft auch aber für andere Sachen und nichts auf dem Port 8085.
Verwendest Du eine private oder eine öffentliche IP-Adresse?
Bist Du dabei über VPN mit Deiner Pi-hole-Instanz verbunden, oder greifst Du übers öffentliche Internet auf Pi-holes Oberfläche zu?
Und bitte stell nochmals ein Debug Log zur Verfügung.
(Debug Logs werden nach 48 Stunden automatisch gelöscht, daher ist Dein vorheriges nicht mehr verfügbar.)
@Bucking_Horn Ich verwende eine öffentliche IP Adresse über die ich auch andere Dienste auf dem Server erreiche, es ist eine Feste IP, kein dyndns.
Ich greife über die öffentliche IP auf PiHole zu. Ich kann auch auf andere Dienste über :anderenport auf diese zugreifen, nur bei PiHole geht es nicht. @rdwebdesign Ich benutzte kein VPN (nicht für die Weboberfläche) es ist eine öffentliche feste IP über die ich PiHole Weboberfläche aufrufe.
Ändere ich jedoch den Port und starte neu, erreiche ich die Öberfläche nicht mehr. Firewall Freigabe ist gemacht TCP 8085.
Ich würde ja auch Docker Nutzen für Pihole, da wären die Probleme ja erledigt, aber leider brauche ich Wireguard und da werden keine Clients im PiHole angezeigt weil der Wireguard Docker das NATet.
Ich bin mir nicht sicher, ob Sie dies versuchen möchten, aber Sie können Pi-Hole in Docker mit einer vollständig separaten IP ausführen (als wäre es ein anderer Server im Netzwerk), wenn Sie das macvlan Netzwerk verwenden.
Der Zugriff auf einen cloud-basierten Pi-hole sollte möglichst gesichert und authentifiert über eine VPN-Verbindung erfolgen.
Ich gehe mal davon aus, dass der öffentliche Zugriff nur für die Web-Oberfläche möglich ist, Port 53 in der VCN-Instanz aber gesperrt ist?
Nur falls das nicht so sein sollte:
Das Pi-hole-Team stellt sich ausdrücklich gegen die Verwendung von Pi-hole als Open Resolver.
Dies würde sowohl Deinen Host als auch potentiell jeden Internet-Nutzer gefährden, da ein solcher DNS-Server z.B. in einer DNS Amplification attack verwendet werden kann.
PiHole läuft super über Docker aber da ich ja das PiHole über Wireguard benutzen will/muss, gibt es das Problem das der Wireguard Docker es image seitig NATet zum PiHole und somit sehe ich als Client immer nur die Wireguard IP bzw das Netzwerk und wenn 10 Clients verbunden sind, sehe ich diese im PiHole nicht. Also Es läuft super aber ohne Client Management.
@Bucking_Horn natürlich ist der Port 53 nicht offen, ich habe doch geschrieben das ich VPN verwende nur die Weboberfläche ist erreichbar Weltweit. Login per Passwort alles gut, ich erreiche sie aber nur über Port 80, und nicht über den geänderten Port das ist das Problem.
Dein Problem liegt höchstwahrscheinlich in der SSL-Konfiguration.
Dein Debug Log zeigt, dass lighttpd im Hinblick auf Port 8085 korrekt konfiguriert ist:
*** [ DIAGNOSING ]: Ports in use
tcp:0.0.0.0:8085 is in use by lighttpd
tcp:0.0.0.0:443 is in use by lighttpd
tcp:[::]:8085 is in use by lighttpd
Allerdings kann Dein lighttpd in Bezug auf das von Dir hinzugefügte/gewünschte HTTPS aktuell Anfragen nur über IPv4 entgegennehmen - IPv6 (tcp:[::]:443) fehlt.
Deine external.conf zwingt den aufrufenden Browser-Client aber zur Verwendung von HTTPS (443) statt HTTP (8085):
Dafür muss also auch Port 433 für lighttpd in Deiner Firewall offen sein.
Aktuell zeigt Dein Debug Log zusätzlich, dass lighttpd noch einen Haufen Probleme beim Aushandeln der HTTPS/SSL-Verschlüsselung hat:
-rw-r--r-- 1 www-data www-data 46K Nov 8 14:10 /var/log/lighttpd/error-pihole.log
-----head of error-pihole.log------
2022-11-06 00:00:00: (server.c.1785) logfiles cycled UID = 0 PID = 181131
2022-11-06 02:06:31: (mod_openssl.c.1796) SSL: 1 error:1408F09C:SSL routines:ssl3_get_record:http request
2022-11-06 03:16:58: (mod_openssl.c.362) SSL: no certificate/private key for TLS server name test<redacted>.de
2022-11-06 03:16:58: (mod_openssl.c.1796) SSL: 1 error:142090EA:SSL routines:tls_early_post_process_client_hello:callback failed
2022-11-06 03:47:35: (mod_openssl.c.1796) SSL: 1 error:1408F10B:SSL routines:ssl3_get_record:wrong version number
2022-11-06 03:48:36: (mod_openssl.c.1762) SSL: -1 5 104 Connection reset by peer
2022-11-06 04:22:45: (mod_openssl.c.1796) SSL: 1 error:14201044:SSL routines:tls_choose_sigalg:internal error
2022-11-06 04:32:35: (mod_openssl.c.1796) SSL: 1 error:1408F09C:SSL routines:ssl3_get_record:http request
2022-11-06 05:45:52: (mod_openssl.c.1796) SSL: 1 error:14209102:SSL routines:tls_early_post_process_client_hello:unsupported protocol
2022-11-06 05:50:24: (mod_openssl.c.1762) SSL: -1 5 104 Connection reset by peer
2022-11-06 06:16:37: (mod_openssl.c.362) SSL: no certificate/private key for TLS server name 13<r.eda.cte.d>11
2022-11-06 06:16:37: (mod_openssl.c.1796) SSL: 1 error:142090EA:SSL routines:tls_early_post_process_client_hello:callback failed
2022-11-06 06:16:37: (mod_openssl.c.362) SSL: no certificate/private key for TLS server name 13<r.eda.cte.d>11
-----tail of error-pihole.log------
2022-11-08 12:58:56: (mod_openssl.c.1796) SSL: 1 error:14209102:SSL routines:tls_early_post_process_client_hello:unsupported protocol
2022-11-08 12:58:56: (mod_openssl.c.1796) SSL: 1 error:1420918C:SSL routines:tls_early_post_process_client_hello:version too low
2022-11-08 12:58:56: (mod_openssl.c.1796) SSL: 1 error:142090C1:SSL routines:tls_early_post_process_client_hello:no shared cipher
Ergänzend zur vorgeschlagenen Verwendung von Pi-hole im Container:
Wireguard kann normal installiert bleiben und würde dann nur NATen, wenn es dazu explizit konfiguriert wurde (dann würde es das aber vermutlich auch jetzt schon tun). Und Docker würde ebenfalls nicht NATen, sofern denn der Container im Netzwerkmodus host (kommt für Dich nicht in Frage) oder eben macvlan liefe.
Das habe ich schon versucht, nur Pihole und Unbound im Docker laufen zu lassen und Wireguard lokal installiert. Aber irgendwie funkt das nicht, der Ping untereinander funktioniert aber ich habe keinen Internetzugriff nach herstellen der vpn Verbindung. Wie wäre denn der Demo Aufbau IP Technisch, und braucht der VPN Tunnel den PiHole als DNS Server ?