Und zwar ohne Konfiguration der eigenen Firewall (kein Portforwarding). Kann mittels eigener Domain betrieben werden.
Die Domäne muss in der Cloudflare Platform registriert werden (DNS Server von Cloudflare müssen beim Registrar eingetragen sein).
Danach kann via Web oder CLI (empfohlen) der Tunnel konfiguriert und aufgebaut werden. Erfolgreich getestet unter Linux (Ubuntu und Raspberry Pi OS).
Domäne verbinden:
https://developers.cloudflare.com/fundamentals/get-started/setup/add-site/
Tunnel konfigurieren:
DNS Einstellungen:
Nach der Konfiguration findet man seinen Tunnel im Dash Team Zero Trust Dashboard:
https://dash.teams.cloudflare.com
Account Limits (mit dem Gratis Account sind aktuell Stand 18.09.2022 -> 1000 Tunnel möglich):
https://developers.cloudflare.com/cloudflare-one/account-limits/
Bedingungen:
https://www.cloudflare.com/terms/
Beispiel Datei für die Konfiguration:
Beispiel der config.y m l
diese liegt unter: home/%username%/.cloudflared/config.y m l
Beachte: Leerzeichen und Abstände sind strikt einzuhalten, sonst gibt es beim Punkt Einrichtung des Routings /DNS weiter unten dann Probleme (Error parsing YAML).
tunnel: %UUID%
credentials-file: /home/%username%/.cloudflared/UUID.j s o n
ingress:
– hostname: %hostname%.%domain%.com
service: http://localhost:8080
– service: http_status:404
UPDATE 08.12.2022:
Nach Problemen mit der config Datei habe ich diese gemäss Anleitung von Cloudflare neu so strukturiert:
url: http://localhost:8080
tunnel: UUID
credentials-file: xxxxx
Das reicht schon für eine Applikation (wie z.B. einen Webservice).
Genaueres in der Anleitung von cloudflare.com (siehe Link oben).
Vorgehen:
Nach der Installation des Cloudflare Clients (mit Root Rechten) sind folgende Befehle elementar (Reihenfolge einhalten).
WICHTIG!!! ohne ROOT-Rechte:
cloudflared tunnel login
Web-Browser öffnet sich, Cloudflare Login nötig. Nun wird eine Zertifikatsdatei im oben erwähnten Pfad abgelegt. Diese dient der zukünftigen Authentifizierung. Die Domäne muss noch authorisiert werden (Fenster erscheint automatisch).
cloudflared tunnel create “Tunnelname”
Der Tunnel wird erstellt und die UUID wird bekannt (nötig für die Config Datei -> siehe Beispiel oben).
Nach der Ablage der Konfigurationsdatei kann das Tunnel Routing angelegt werden. Die DNS Einträge werden im gleichen Schritt automatisch von Cloudflared angelegt:
cloudflared tunnel route dns %Tunnelname% %Domänenname%
Die Änderungen können im Zero Trust Dashboard nachvollzogen werden. Der Tunnel ist nun eingetragen aber noch “rot” also inaktiv. Der DNS Eintrag ist im Cloudflare Dashboard ersichtlich (Sektion DNS). Ein ständiges Wechseln zwischen diesen beiden Dashboards ist nötig. Am Anfang verwirrend 🙂
Der Tunnel wird nun gestartet mittels:
cloudflared tunnel run %Tunnelname%
Nun sollte der Tunnel im Zero Trust Dashboard “grün” sein.
In der SSL/TLS Sektion im Cloudflare Dashboard können die SSL Einstellungen gesetzt werden. Z.b. Always use HTTPS (siehe Edge Certificates).
Weitere Einstellungen
Ok, der Tunnel soll nun noch als Service bei jedem System-Start aufgemacht werden?
Nun MIT ROOT Rechten:
cloudflared –config /home/%username%/.cloudflared/config.y m l service install
Service starten:
systemctl start cloudflared
Service neu starten:
systemctl restart cloudflared
Viel Spass damit!
PS: die Y M L Config Datei Endung muss natürlich aneinander geschrieben werden. WordPress hat aber ein Problem damit. Deshalb hier bei Copy-Paste anpassen.