Was ist ein Webserver?
Ein Webserver ist eine Software- [Program/Software: the instructions that control what a computer does; computer programs] - und Hardware, die HTTP (Hypertext Transfer Protocol) oder HTTPS und andere Protokolle verwendet, um auf Anfragen von Clients über das World Wide Web zu antworten. Die Hauptaufgabe eines Webservers besteht darin, Website-Inhalte anzuzeigen, indem Webseiten für Benutzer gespeichert, verarbeitet und geliefert werden. Neben HTTP oder HTTPS unterstützen Webserver auch andere Protokolle, die als "Webservices" bezeichnet werden und über verschiedene Ports zugänglich sind. Diese Protokolle können von dem HTTP-Standard abweichen, wie z. B. FTP oder SSH, oder andere.
Die Hardware eines Webservers ist mit dem Internet verbunden und ermöglicht den Datenaustausch mit anderen verbundenen Geräten, während die Software eines Webservers steuert, wie ein Benutzer auf gehostete Dateien zugreift. Der Webserver-Prozess ist ein Beispiel für das Client/Server-Modell. Alle Computer, die Websites hosten, müssen Webserver-Software installiert haben.
Webserver werden in Webhosting-Diensten oder der Bereitstellung von Daten für Websites und webbasierte Anwendungen – oder Webanwendungen – verwendet.

Warum Cloudflare verwenden und was ist die cloudflared-Software?
Cloudflare ist ein amerikanisches Unternehmen, das Dienste wie DNS, ein Content- [Contents: every content intended as text, images, audio or video] - Delivery Network- [Network of Contents: is the channel in which owners can post their content and the audience can see the contents posted by the owners] - (CDN) und viele weitere zusätzliche Dienste anbietet, um Websites schneller und sicherer zu machen. Um zu verstehen, wie Cloudflare funktioniert, muss man die häufigen Fehler ansehen, die Websites in der Vergangenheit gemacht haben. Wenn ein Website-Besucher eine Website ohne Cloudflare besucht, sendet der Besucher eine Anfrage an einen Server. Wenn jedoch zu viele Besucher gleichzeitig auf den Server zugreifen, wird der Server überlastet, was zu einer langsamen oder nicht funktionierenden Website führen kann. Für den Website-Besitzer ist dies jedoch nicht wünschenswert. Deshalb hat Cloudflare eine Lösung für dieses Problem entwickelt. Cloudflare hat ihren eigenen Server, in Form eines riesigen weltweiten Netzwerks, zwischen die Website und den Webserver platziert. Website-Besucher kommunizieren nicht mehr direkt mit dem Server, sondern mit dem Cloudflare-Netzwerk, das bereits den Website-Inhalt gespeichert hat und diesen über einen Server liefert, der auf den Standort des Besuchers zugeschnitten ist. Beispielsweise hat eine Website, die in Deutschland gehostet wird, und jemand aus den USA versucht, diese Website aufzurufen. Die Anfrage muss eine große Entfernung zwischen Website und Webserver überwinden. Cloudflare löst dies durch das Angebot eines großen Netzwerks von Servern auf der ganzen Welt. Der Amerikaner muss nicht mehr eine Verbindung zum deutschen Server herstellen, sondern er wird mit dem nächstgelegenen Cloudflare-Server in den Vereinigten Staaten verbunden. Cloudflare Tunnels (oder die cloudflared-Software) sind ähnlich wie eine VPN-Verbindung, da es sich um eine sichere Möglichkeit handelt, auf Ressourcen in Ihrem internen privaten Netzwerk von außerhalb zuzugreifen. Der Unterschied zwischen Cloudflare Tunnels und Ihrem traditionellen VPN besteht darin, dass Sie keine Ports in Ihrer Firewall öffnen müssen. Bei einem VPN verbinden Sie sich mit Ihrem VPN-Server (oder manchmal direkt mit Ihrem Router) über ein Loch, das Sie in Ihrer Firewall erstellt haben. Bei Cloudflare Tunnels installieren Sie einen Client in Ihrem Netzwerk, der eine sichere Verbindung zu Cloudflare aufrechterhält. Sie erstellen dann verschiedene FQDNs (Fully Qualified Domain Names, also DNS-Namen oder CNAME-Einträge), die mit Ihren internen Diensten verknüpft sind.
Wie man Cloudflared zum Hosten einer Anwendung oder eines gesamten Webservers verwendet
Mit Cloudflare können Sie eine kleine Software namens "cloudflared" verwenden, die einen Tunnel von Ihrer Hardware zu der Cloudflare-Quelle erstellt und diesen Tunnel mit Ihrem Port 80 oder 443 Ihres Webserver-Software-Systems verknüpft. Auf diese Weise können Sie diese Ports auch nicht direkt ins Internet öffnen und die Firewall blockieren. Dies erhöht auch die Sicherheit und ermöglicht es Ihnen, Ihre IP-Adresse nicht von außen zu exponieren. Um diese Art von Verbindung herzustellen, benötigen Sie ein Cloudflare-Konto und ein Top-Level-Domain, das entweder erworben oder mit Ihrem Konto verknüpft ist. Um Ihren ersten Tunnel zu öffnen, müssen Sie über das Cloudflare-Dashboard im "Zero Trust"-Konsolenbereich auf die Cloudflare zugreifen.
Die Cloudflared Anwendung, die Sie für jedes Betriebssystem herunterladen können, finden Sie hier: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
Richten Sie Ihren sicheren Tunnel ein
Sobald Cloudflared heruntergeladen wurde, können Sie den ersten Tunnel einfach über das Terminal oder die WebUI erstellen.
TERMINAL
Geben Sie diesen Befehl ein, um sich zu authentifizieren:
$ cloudflared tunnel login
Erstellen Sie einen Tunnel und geben Sie ihm einen Namen:
$ cloudflared tunnel create <NAME>
Notieren Sie sich anhand der Ausgabe des Befehls die UUID des Tunnels und den Pfad zu Ihrer Tunnel-Anmeldeinformationen-Datei.
Überprüfen Sie, ob der Tunnel erfolgreich erstellt wurde, indem Sie Folgendes ausführen:
$ cloudflared tunnel list
Lesen Sie die offiziellen Dokumente, um einen Tunnel über das Terminal zu erstellen: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/
WEBUI
- Melden Sie sich bei Zero Trust an und gehen Sie zu Zugang > Tunneln.
- Wählen Sie Tunnel erstellen aus.
- Geben Sie Ihrem Tunnel einen Namen. Wir empfehlen, einen Namen zu wählen, der den Typ der Ressourcen widerspiegelt, die Sie über diesen Tunnel verbinden möchten (z. B.
enterprise-VPC-01). - Wählen Sie Tunnel speichern aus.
- Gehen Sie dann zum Installieren von
cloudflaredund zum Ausführen des Befehls über. - Sobald der Befehl abgeschlossen ist, wird Ihr Connector in Zero Trust angezeigt.
- Wählen Sie Weiter aus.
Lesen Sie die offiziellen Dokumente, um einen Tunnel über die WebUI zu erstellen: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/
Richten Sie eine HTTP- oder HTTPS-Verbindung zu Ihrem Webserver ein
Sob der Tunnel erstellt wird, ist es einfach, einer Tunnel-Hostname über das „Zero-Trust“-Dashboard zugeordnet, in dem Tab „Netzwerke“ finden Sie bereits Ihren Tunnel mit dem Status „gesund“. Klicken Sie nun auf den Tunnelnamen und klicken Sie auf die Schaltfläche „bearbeiten“ im Tab „öffentlicher Hostname“ klicken Sie auf die Schaltfläche „ein öffentlicher Hostname hinzufügen“, geben Sie eine Subdomain zum Erstellen ein (falls Sie eine Subdomain einrichten möchten) und wählen Sie eine Ihrer primären Domains aus, im Feld „Typ“ können Sie HTTP oder HTTPS auswählen (der Unterschied zwischen den beiden liegt im verwendeten Port und dem Kommunikationsprotokoll, wir empfehlen HTTPS, wenn der Server bereits mit einem Zertifikat konfiguriert ist); wenn Sie „http“ im Feld „URL“ auswählen, müssen Sie localhost:80 (oder den Port Ihres Webservers oder Ihrer Anwendung) eingeben, wenn Sie „https“ im Feld „URL“ auswählen, müssen Sie localhost:443 eingeben und anschließend den Abschnitt „zusätzliche Anwendungs-Einstellungen“ erweitern, dann „TLS“ und den Eintrag „Keine TLS-Überprüfung“ auswählen, falls Ihr Zertifikat, das im Webserver verwendet wird, selbst generiert und daher selbstsigniert ist (dies ist wichtig). Um einen gesamten Webserver zu hosten, wenn Ihr Webserver bereits mit Domains konfiguriert ist, die bereits in Cloudflare vorhanden sind, müssen Sie nichts weiter tun. Um eine einzelne Anwendung zu hosten, können Sie auch benutzerdefinierte Ports verwenden, z. B. 5000 oder 8080, je nachdem, welcher Port von der auf Ihrem Server befindlichen Anwendung verwendet wird.
Auf diese Weise ist Ihre Anwendung jetzt über das Internet über das von Ihnen ausgewählte Domain zugänglich.
Konfigurationsempfehlungen
Wenn Cloudflared eine Anfrage von einem WARP-Gerät empfängt, verwendet es die Ports auf der Host-Maschine, um die Anfrage zu bewerten und an Ihren Ursprungsdienst weiterzuleiten. Jede Maschine durch Systemdesign ist auf maximal 65.535 Ports hardwarebeschränkt. Zusätzlich kann jeder Dienst auf der Maschine eine begrenzte Anzahl von Ports verbrauchen. Aus diesem Grund empfehlen wir das folgende Bereitstellungsmodell:
- cloudflared sollte auf einer dedizierten Host-Maschine bereitgestellt werden. Dieses Modell ist typischerweise geeignet, aber es gibt Serverless- oder Cluster-Workflows, in denen eine dedizierte Host-Maschine nicht möglich ist.
- Die Host-Maschine sollte 50.000 Ports für die Verwendung durch den cloudflared-Dienst bereitstellen. Die restlichen Ports sind für Systemverwaltungs-Prozesse reserviert.
Um die Anzahl der für cloudflared verfügbaren Ports auf Linux zu erhöhen:
Wenn Ihre Maschine ein Verzeichnis /etc/sysctl.d/ hat:
Terminalfenster
echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.d/99-cloudflared.conf
sudo sysctl -p /etc/sysctl.d/99-cloudflared.conf
Andernfalls:
Terminalfenster
echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
Auf Linux und macOS bestimmen Ulimit-Einstellungen die verfügbaren Systemressourcen für einen angemeldeten Benutzer. Wir empfehlen die folgenden Ulimit-Einstellungen für den cloudflared-Server: ≥ 70.000
Um Ihre aktuellen Ulimits anzuzeigen, öffnen Sie ein Terminal und führen Sie:
Terminalfenster
ulimit -a
Um die Ulimit für die Anzahl der offenen Dateien festzulegen:
Terminalfenster
ulimit -n 70000
Konfigurationsdokumente von: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/deploy-tunnels/system-requirements/
Allgemeine Konfigurationsdokumente zum Bereitstellen eines Tunnels: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/deploy-tunnels/
Warum cloudflared empfohlen wird?
Die Software hat vielfältige Verwendungszwecke; wir können einige davon auflisten, nehmen wir beispielsweise an, dass man sich in einem Gebiet der Welt befindet, in dem kein Kabelinternet verfügbar ist, und man einen Webserver betreiben möchte. Dann muss man für sehr teure Satellitenverbindungen oder 4G LTE bezahlen… Viele dieser Verbindungen haben keine öffentliche IP-Adresse, weil sie napped oder geschützt sind; mit Cloudflared ist es möglich, diese Einschränkungen zu umgehen und trotzdem im Web zu übertragen, ohne die IP-Adresse öffentlich preiszugeben. Angesichts der Besonderheit einer 4G- oder 5G-Mobilverbindung und der Möglichkeit, diese überall zu nutzen (auch wenn eine Kabelverbindung verfügbar ist), empfehlen wir dennoch, diese Verbindungen als „Backup“ und nicht als Hauptverbindung zu verwenden; der Grund dafür ist, dass die Anbieter ungewöhnlichen Datenverkehr auf dem Mobilfunknetz erkennen und ihn möglicherweise auch beschränken könnten. Die Verwendung von Cloudflared ist jedoch nicht auf dies beschränkt; nehmen wir beispielsweise an, dass man ein Netzwerk von Servern mit verschiedenen Funktionen erstellen muss, man könnte beispielsweise einen Webserver mit einer dedizierten Leitung und einen (oder mehrere) Heim-Streaming-Server, die über Cloudflared möglicherweise auch mit einer Verbindung zu Datenbanken verbunden sind, verwenden. Möglicherweise benötigt man auch, dass Benutzer auf seine Anwendung zugreifen, die man normalerweise unter einer Adresse wie http://localhost:8080 verwendet, mit Cloudflared kann dies einfach durch Eingabe dieser Portnummer im Feld „host“ erfolgen. Es ist auch möglich, mehrere Server mit einer einzigen Domain über Subdomains zu verbinden oder „access“-Schutzmaßnahmen zu aktivieren, um den Zugriff mit Zwei-Faktor-Authentifizierung oder Benutzer-Posture-Authentifizierung (verwendetes Gerät, IP-Adresse usw.) zu schützen. Kurz gesagt, die Verwendungszwecke können vielfältig sein. Seien Sie jedoch vorsichtig, es richtig zu verwenden, da Cloudflare periodische Überprüfungen durchführt und Konten jederzeit deaktivieren kann.
Lesen Sie immer die offiziellen Dokumente
Wie ich schon vor einiger Zeit schrieb, empfehle ich Ihnen, immer die offiziellen cloudflare-Dokumente zu lesen und daraus zu lernen, da diese Software auch im Laufe der Zeit Änderungen unterliegen kann. Dieses Dokument wurde ohne jegeneine offizielle Unterstützung von cloudflare verfasst und dient als Beispiel für diejenigen, die in unserer Organisation arbeiten.

