Die Frage nach der Notwendigkeit eines Virenscanners unter Linux ist komplex und verdient eine sorgfältige Betrachtung. Linux-Betriebssysteme gelten aufgrund ihrer Sicherheitsarchitektur, Open-Source-Natur und anderer Faktoren als robust und sicher. Das Sicherheitsmodell von Linux basiert auf minimalen Berechtigungen und Sicherheitsmechanismen wie SELinux und AppArmor, die den Zugriff von Anwendungen auf Systemressourcen kontrollieren. Das Paketmanagement und die...
Am 29. Februar 2024 hat The Document Foundation LibreOffice 24.2.1 veröffentlicht. Jetzt hat es die neueste Version auch in das Fresh-PPA von Ubuntu geschafft. Bisher bekam ich weiterhin Versionen aus der 7.6.x-Reihe angeboten, die ebenfalls als stabil gilt. Als ich meinen Rechner heute Morgen hochgefahren habe, wurde mir allerdings erstmals das LibreOffice mit der neuen Versionierung angeboten. Es gibt zwar andere Optionen, LibreOffice zu installieren oder zu benutzen, aber mir ist die Option über den Paketmanager am liebsten. Damit bekomme […]
Es gibt unzählige Möglichkeiten, die Web-Werbung zu minimieren. Die c’t hat kürzlich ausführlich zum Thema berichtet, aber die entsprechenden Artikel befinden sich auf heise.de hinter einer Paywall. Und heise.de ist ja mittlerweile auch eine Seite, die gefühlt mindestens so viel Werbung in ihre Texte einbaut wie spiegel.de. Das ist schon eine Leistung … Entsprechend lahm ist der Seitenaufbau im Webbrowser.
Egal, alles, was Sie wissen müssen, um zuhause einigermaßen werbefrei zu surfen, erfahren Sie auch hier — kostenlos und werbefrei :-)
Raspberry Pi 3B+ mit USB-WLAN-Adapter
Konzept
Die Idee ist simpel: Parallel zum lokalen Netzwerk zuhause richten Sie mit einem Raspberry Pi ein zweites WLAN ein. Das zweite Netz verwendet nicht nur einen anderen IP-Adressbereich, sondern hat auch einen eigenen Domain Name Server, der alle bekannten Ad-Ausliefer-Sites blockiert. Jeder Zugriff auf eine derartige Seite liefert sofort eine Null-Antwort. Sie glauben gar nicht, wie schnell die Startseite von heise.de, spiegel.de etc. dann lädt!
Alle Geräte im Haushalt haben jetzt die Wahl: sie können im vorhandenen WLAN des Internet-Routers bleiben, oder in das WLAN des Raspberry Pis wechseln. (Bei mir zuhause hat dieses WLAN den eindeutigen Namen/SSID wlan-without-ads.)
RaspAP auf dem Raspberry Pi spannt ein eigenes (beinahe) werbefreies WLAN auf
Zur Realisierung dieser Idee brauchen Sie einen Raspberry Pi — am besten nicht das neueste Modell: dessen Rechenleistung und Stromverbrauch sind zu höher als notwendig! Ich habe einen Raspberry Pi 3B+ aus dem Keller geholt. Auf dem Pi installieren Sie zuerst Raspbian OS Lite und dann RaspAP. Sie schließen den Pi mit einem Kabel an das lokale Netzwerk an. Der WLAN-Adapter des Raspberry Pis realisiert den Hotspot und spannt das werbefreie lokale Zweit-Netzwerk auf. Die Installation dauert ca. 15 Minuten.
Raspberry Pi OS Lite installieren
Zur Installation der Lite-Version von Raspberry Pi OS laden Sie sich das Programm Raspberry Pi Imager von https://www.raspberrypi.com/software/ herunter und führen es aus. Damit übertragen Sie Raspberry Pi OS Lite auf eine SD-Karte. (Eine SD-Karte mit 8 GiB reicht.) Am besten führen Sie gleich im Imager eine Vorweg-Konfiguration durch und stellen einen Login-Namen, das Passwort und einen Hostnamen ein. Sie können auch gleich den SSH-Server aktivieren — dann können Sie alle weiteren Arbeiten ohne Tastatur und Monitor durchführen. Führen Sie aber keine WLAN-Konfiguration durch!
Mit der SD-Karten nehmen Sie den Raspberry Pi in Betrieb. Der Pi muss per Netzwerkkabel mit dem lokalen Netzwerk verbunden sein. Melden Sie sich an (wahlweise mit Monitor + Tastatur oder per SSH) und führen Sie ein Update durch (sudo apt update und sudo apt full-upgrade).
RaspAP installieren
RaspAP steht für Raspberry Pi Access Point. Sein Setup-Programm installiert eine Weboberfläche, in der Sie unzählige Details und Funktionen Ihres WLAN-Routers einstellen können. Dazu zählen:
Verwendung als WLAN-Router oder -Repeater
freie Auswahl des WLAN-Adapters
frei konfigurierbarer DHCP-Server
Ad-Blocking-Funktion
VPN-Server (OpenVPN, WireGuard)
VPN-Client (ExpressVPN, Mullvad VPN, NordVPN)
An dieser Stelle geht es nur um die Ad-Blocking-Funktionen, die standardmäßig aktiv sind. Zur Installation laden Sie das Setup-Script herunter, kontrollieren kurz mit less, dass das Script wirklich so aussieht, als würde es wie versprochen RaspAP installieren, und führen es schließlich aus.
Die Rückfragen, welche Features installiert werden sollen, können Sie grundsätzlich alle mit [Return] beantworten. Das VPN-Client-Feature ist nur zweckmäßig, wenn Sie über Zugangsdaten zu einem kommerziellen VPN-Dienst verfügen und Ihr Raspberry Pi diesen VPN-Service im WLAN weitergeben soll. (Das ist ein großartiger Weg, z.B. ein TV-Gerät via VPN zu nutzen.)
Welche Funktionen Sie wirklich verwenden, können Sie immer noch später entscheiden. Das folgende Listing ist stark gekürzt. Die Ausführung des Setup-Scripts dauert mehrere Minuten, weil eine Menge Pakete installiert werden.
wget https://install.raspap.com -O raspap-setup.sh
less raspap-setup.sh
bash raspap-setup.sh
The Quick Installer will guide you through a few easy steps
Using GitHub repository: RaspAP/raspap-webgui 3.0.7 branch
Configuration directory: /etc/raspap
lighttpd root: /var/www/html? [Y/n]:
Installing lighttpd directory: /var/www/html
Complete installation with these values? [Y/n]:
Enable HttpOnly for session cookies? [Y/n]:
Enable RaspAP control service (Recommended)? [Y/n]:
Install ad blocking and enable list management? [Y/n]:
Install OpenVPN and enable client configuration? [Y/n]:
Install WireGuard and enable VPN tunnel configuration? [Y/n]:
Enable VPN provider client configuration? [Y/n]: n
The system needs to be rebooted as a final step. Reboot now? [Y/n]
Wenn alles gut geht, gibt es nach dem Neustart des Raspberry Pi ein neues WLAN mit dem Namen raspi-webgui. Das Passwort lautet ChangeMe.
Sobald Sie Ihr Notebook (oder ein anderes Gerät) mit diesem WLAN verbunden haben, öffnen Sie in einem Webbrowser die Seite http://10.3.141.1 (mit http, nicht https!) und melden sich mit den folgenden Daten an:
Username: admin
Passwort: secret
In der Weboberfläche sollten Sie als Erstes zwei Dinge ändern: das Admin-Passwort und das WLAN-Passwort:
Zur Veränderung des Admin-Passworts klicken Sie auf das User-Icon rechts oben in der Weboberfläche, geben einmal das voreingestellte Passwort secret und dann zweimal Ihr eigenes Passwort an.
Die Eckdaten des WLANs finden Sie im Dialogblatt Hotspot. Das Passwort können Sie im Dialogblatt Security verändern.
Die Weboberfläche von RaspAP mit den Hotspot-EinstellungenBei den Ad-Block-Einstellungen sind keine Änderungen erforderlich. Es schadet aber nicht, hin und wieder die Ad-Blocking-Liste zu erneuern.
RaspAP verwendet automatisch den WLAN-Namen (den Service Set Identifier) raspi-webgui. Auf der Einstellungsseite Hotspot können Sie einen anderen Namen einstellen. Ich habe wie gesagt wlan-without-ads verwendet. Danach müssen sich alle Clients neu anmelden. Fertig!
USB-WLAN-Adapter
Leider hat der lokale WLAN-Adapter des Raspberry Pis keine großartige Reichweite. Für’s Wohnzimmer oder eine kleine Wohnung reicht es, für größere Wohnungen oder gar ein Einfamilienhaus aber nicht. Abhilfe schafft ein USB-WLAN-Antenne. Das Problem: Es ist nicht einfach, ein Modell zu finden, das vom Linux-Kernel auf Anhieb unterstützt wird. Ich habe zuhause drei USB-WLAN-Adapter. Zwei haben sich als zu alt erwiesen (kein WPA, inkompatibel mit manchen Client-Geräten etc.); der dritte Adapter (BrosTrend AC650) wird auf Amazon als Raspberry-Pi-kompatibel beworben, womit ich auch schon in die Falle getappt bin. Ja, es gibt einen Treiber, der ist aber nicht im Linux-Kernel inkludiert, sondern muss manuell installiert werden:
Immerhin gelang die Installation unter Raspberry Pi OS Lite auf Anhieb mit dem folgenden, auf GitHub dokumentierten Kommando:
sh -c 'busybox wget deb.trendtechcn.com/install \
-O /tmp/install && sh /tmp/install'
Mit dem nächsten Neustart erkennt Linux den WLAN-Adapter und kann ihn nutzen. Das ändert aber nichts daran, dass mich die Installation von Treibern von dubiosen Seiten unglücklich macht, dass die Treiberinstallation nach jedem Kernel-Update wiederholt werden muss und dass die manuelle Treiberinstallationen bei manchen Linux-Distributionen gar nicht möglich ist (LibreELEC, Home Assistant etc.).
Wenn Sie gute Erfahrungen mit einem USB-WLAN-Adapter gemacht haben, hinterlassen Sie bitte einen kurzen Kommentar!
Sobald RaspAP den WLAN-Adapter kennt, bedarf es nur weniger Mausklicks in der RaspAP-Weboberfläche, um diesen Adapter für den Hotspot zu verwenden.
Alternativ können Sie den internen WLAN-Adapter auch ganz deaktivieren. Dazu bauen Sie in config.txt die folgende Zeile ein und starten den Raspberry Pi dann neu.
Danach kennt Raspberry Pi OS nur noch den USB-WLAN-Adapter, eine Verwechslung ist ausgeschlossen.
Vorteile
Der größte Vorteil von RaspAP als Ad-Blocker ist aus meiner Sicht seine Einfachheit: Der Werbeblocker kann mit minimalem Konfigurationsaufwand von jedem Gerät im Haushalt genutzt werden (Opt-In-Modell). Sollte RaspAP für eine Website zu restriktiv sein, dauert es nur wenige Sekunden, um zurück in das normale WLAN zu wechseln. Bei mir zuhause waren alle Familienmitglieder schnell überzeugt.
Nachteile
Der Raspberry Pi muss per Ethernet-Kabel mit dem lokalen Netzwerk verbunden werden.
Manche Seiten sind so schlau, dass sie das Fehlen der Werbung bemerken und dann nicht funktionieren. Es ist prinzipbedingt unmöglich, für solche Seiten eine Ausnahmeregel zu definieren. Sie müssen in das normale WLAN wechseln, damit die Seite funktioniert.
youtube-Werbung kann nicht geblockt werden, weil Google so schlau ist, die Werbefilme vom eigenen Server und nicht von einem anderen Server zuzuspielen. youtube.com selbst zu blocken würde natürlich helfen und außerdem eine Menge Zeit sparen, schießt aber vielleicht doch über das Ziel hinaus.
Mit RaspAP sind Sie in einem eigenen privaten Netz, NICHT im lokalen Netz Ihres Internet-Routers. Sie können daher mit Geräten, die sich im wlan-without-ads befinden, nicht auf andere Geräte zugreifen, die mit Ihrem lokalen Router (FritzBox etc.) verbunden sind. Das betrifft NAS-Geräte, Raspberry Pis mit Home Assistant oder anderen Anwendungen etc.
Keine Werbeeinnahmen mehr für Seitenbetreiber?
Mir ist klar, dass sich viele Seiten zumindest teilweise über Werbung finanzieren. Das wäre aus meiner Sicht voll OK. Aber das Ausmaß ist unerträglich geworden: Mittlerweile blinkt beinahe zwischen jedem Absatz irgendein sinnloses Inserat. Werbefilme vervielfachen das Download-Volumen der Seiten, der Lüfter heult, ich kann mich nicht mehr auf den Text konzentrieren, den ich lese. Es geht einfach nicht mehr.
Viele Seiten bieten mir Pur-Abos an (also Werbeverzicht gegen Bezahlung). Diesbezüglich war https://derstandard.at ein Pionier, und tatsächlich habe ich genau dort schon vor vielen Jahren mein einziges Pur-Abo abgeschlossen. In diesem Fall ist es auch ein Ausdruck meiner Dankbarkeit für gute Berichterstattung. Früher habe ich für die gedruckte Zeitung bezahlt, jetzt eben für die Online-Nutzung.
Mein Budget reicht aber nicht aus, dass ich solche Abos für alle Seiten abschließen kann, die ich gelegentlich besuche: heise.de, golem.de, phoronix, zeit.de, theguardian.com usw. Ganz abgesehen davon, dass das nicht nur teuer wäre, sondern auch administrativ mühsam. Ich verwende diverse Geräte, alle paar Wochen muss ich mich neu anmelden, damit die Seiten wissen, dass ich zahlender Kunde bin. Das ist bei derstandard.at schon mühsam genug. Wenn ich zehn derartige Abos hätte, würde ich alleine an dieser Stelle schon verzweifeln.
Wenn sich Zeitungs- und Online-News-Herausgeber aber zu einem Site-übergreifenden Abrechnungsmodell zusammenschließen könnten (Aufteilung der monatlichen Abo-Gebühr nach Seitenzugriffen), würde ich mir das vielleicht überlegen. Das ist aber sowieso nur ein Wunschtraum.
Aber so, wie es aktuell aussieht, funktioniert nur alles oder nichts. Mit RaspAP kann ich die Werbung nicht für manche Seiten freischalten. Eine Reduktion des Werbeaufkommens auf ein vernünftiges Maß funktioniert auch nicht. Gut, dann schalte ich die Werbung — soweit technisch möglich — eben ganz ab.
Laut eigenen Angaben ist The Dark Mod 2.12 ist ein großer Schritt nach vorn für Leute, die Missionen designen! Das Culling-System wurde umfassend überarbeitet, um sicherzustellen, dass Deine CPU und Deine GPU keine Ressourcen für das Rendern unsichtbarer Geometrie, Lichter und Schatten verschwenden. Einige der besten Kartenoptimierungsexperten haben ähnliche Leistungssteigerungen erreicht, wie es beim neuen Culling-System zu finden ist. Allerdings ist das laut eigenen Angaben eine seltene Fähigkeit. Das Team hat es sogar geschafft, die Leistung von Missionen zu verbessern, […]
Linux hat bis Ende Februar 2024 weltweit einen Marktanteil von über 4% im Bereich der Desktop-Betriebssysteme erreicht. Laut den neuesten Daten von StatCounter, einem führenden Tool zur Analyse des Web-Traffics, liegt der Marktanteil von Linux bei über 4%. Auf den ersten Blick mag diese Zahl bescheiden erscheinen, aber sie stellt einen bedeutenden Sprung dar. Schauen...
Die Document Foundation gab die Verfügbarkeit von LibreOffice 24.2.1 bekannt, dem ersten Update der neuen LibreOffice 24.2 Serie. LibreOffice 24.2.1 erscheint einen Monat nach der Hauptveröffentlichung von LibreOffice 24.2, welche bedeutende Änderungen wie ein neues Versionsnummernschema, Sicherheitsverbesserungen und bessere MS Office-Kompatibilität mit sich brachte. In dieser Version wurden insgesamt 102 Fehler behoben, um die Stabilität...
Nach einer langen Entwicklungsphase wurde openmediavault 7 mit Codenamen Sandworm veröffentlicht. Die größte Neuerung ist das Upgrade auf Debian 12 Bookworm. Wobei das Team in der offiziellen Ankündigung von einer Evolution und nicht einer Revolution spricht. Im Changelog findest Du neben dem Upgrade auf Debian 12 auch folgende Neuerungen und Änderungen: Du kannst das ISO-Image für AMD64-basierte Systeme hier herunterladen. Das Team rät, das System nach der Installation mit omv-upgrade zu aktualisieren. Zusätzlich zur ISO-Installation kannst Du OMV auf einem […]
In der breiten und stetig wachsenden Landschaft der Technologie ragt ein Betriebssystem als Eckpfeiler der Innovation, der Zusammenarbeit und als eine gewisse Form der Rebellion gegen Profitabilität heraus: Linux. Seit seiner Entstehung im Jahr 1991 durch Linus Torvalds hat sich Linux von einem passionierten Projekt zu einem globalen Phänomen entwickelt, das die Art und Weise revolutioniert, wie wir mit Computern, Servern und eingebetteten Systemen interagieren. In diesem Artikel werden wir die Bedeutung von Linux in der modernen Gesellschaft und die Gründe dafür untersuchen, warum es zu einer so bedeutenden Kraft in der technologischen Landschaft geworden ist.
Immer wieder erreichen mich Fragen, die sich auf einen Nenner runterbrechen lassen: „Warum Linux?“ oder „Warum nutzt Du nicht Windows?“, „Wieso nimmst Du nicht einfach nur macOS?“ oder „Warum tust Du das für Linux?“. Aus dem Grund gibts heute mal warum Linux in meinen Augen so wichtig ist, zumindest von meinem Standpunkt aus betrachtet. Bereit?...
Das KDE-Entwicklungsteam hat offiziell die finale stabile Version der neuen Plasma 6.0-Desktopumgebung angekündigt. Dies markiert einen bedeutenden Meilenstein in der Open-Source-Welt für das Jahr 2024, da Plasma zu den beiden führenden Desktop-Umgebungen gehört und eine große weltweite Nutzerbasis hat. Die neue Version bringt viele Verbesserungen und neue Funktionen mit sich, darunter die Nutzung von Qt...
Unix und Linux, als feste Größen im Bereich der Betriebssysteme, stehen seit langem im Fokus von Vergleichen und Kontrasten. Dieser Bericht wird sich vertieft mit ihren Ursprüngen, Lizenzmodellen, Kernel-Architekturen, Entwicklungsparadigmen, Befehlszeilenumgebungen, Dateisystemstrukturen, Systeminitialisierung und Benutzeroberflächen auseinandersetzen. Das Ziel ist es, den komplexen Unterschied zwischen Unix und Linux zu entwirren und dabei eine umfassende Perspektive zu...
Canonical hat im Zeitplan die Veröffentlichung von Ubuntu 22.04.4 LTS (Jammy Jellyfish) bekanntgegeben, die mit dem Linux-Kernel 6.5 und Mesa 23.2 ausgestattet ist. Diese Version markiert das vierte Punkt-Release der aktuellen Ubuntu 22.04 LTS (Jammy Jellyfish)-Serie und bringt eine Reihe von Aktualisierungen für die Kernkomponenten des Betriebssystems. Sechs Monate nach der Veröffentlichung von Ubuntu 22.04.3...
GNOME 45.4 markiert das vierte Wartungsupdate der aktuellen “Riga”-Serie und konzentriert sich auf die Behebung von Fehlern und Abstürzen um die Stabilität und Zuverlässigkeit der Desktop-Umgebung zu verbessern. Diese Version bringt eine Reihe von Verbesserungen und neuen Funktionen mit sich. Die offizielle Ankündigung gibt es hier. Folgende Verbesserungen werden angeboten: Darüber hinaus wurden auch Initial...
System76, das Unternehmen hinter der Linux Distribution Pop!_OS, entwickelt mit COSMIC eine Desktop-Umgebung, die derzeit im Alpha-Stadium ist. COSMIC entsteht als Alternative zu Gnome Shell, da man mit der Entwicklung von Gnome unzufrieden ist bzw. die Richtung der Entwicklung von Gnome nicht gefällt. Mit der in Rust neu geschriebenen COSMIC Lösung verspricht System76 eine Rückkehr...
Canonical hat sich für Ubuntu LTS Nutzer wieder etwas Neues einfallen lassen um auf Ubuntu Pro aufmerksam zu machen. Wer im Terminal das System aktualisiert, bekommt ständig eine Meldung, dass gewisse Pakete nur mit einem Ubuntu Pro Abo eingespielt werden können. Was Du dagegen tun kannst, zeige ich Dir in diesem Beitrag. Kurze Eckpunkte zu...
Die UBports Foundation hat angekündigt, dass sie für zukünftige OTA (Over-the-Air)-Updates ihres mobilen Betriebssystems Ubuntu Touch auf ein Fixed-Release-Modell umstellen möchte, um Herausforderungen zu bewältigen, die durch die bisherigen Ansätze entstanden sind. Vor etwa einem Jahr veröffentlichte die UBports Foundation das erste Ubuntu Touch OTA-Update auf Basis von Ubuntu 20.04 LTS. Zuvor arbeitete Ubuntu Touch...
Das Entwickler-Team von Ubuntu hat sich dafür entschieden, beim kommenden Ubuntu 24.04 LTS Noble Numbat per Standard keine Spiele mehr zu installieren. Bisher wurden bei Ubuntu vier Spiele vorinstalliert: Das Team ist auch der Meinung, dass selbst diese wenigen ausgewählten Spiele immer weniger repräsentativ für Ubuntu sind. Natürlich sind diese Games nicht aus den Repos verschwunden. Wer sie nach der Installation des Betriebssystems wieder haben möchte, kann sie selbstverständlich nachinstallieren. Werde ich die Games vermissen? Nein … ich habe sie […]
Das KDE-Entwicklungsteam hat offiziell die finale stabile Version der neuen Plasma 6.0-Desktopumgebung angekündigt. Dies markiert einen bedeutenden Meilenstein in der Open-Source-Welt für das Jahr 2024, da Plasma zu den beiden führenden Desktop-Umgebungen gehört und eine große weltweite Nutzerbasis hat. Die neue Version bringt viele Verbesserungen und neue Funktionen mit sich, darunter die Nutzung von Qt...
Mit Kali Linux 2024.1 hat das Team die erste Version dieses Jahres veröffentlicht. Es gibt einige Neuerungen und auch visuell wurde die Security-Distribution aufgefrischt. Neu ist auch, dass es neue Spiegel-Server gibt, auf denen das Image gehostet ist. 2024 Theme-Änderungen und Desktop-Verbesserungen Es ist schon ein bisschen Tradition geworden, dass die 20**.1-Versionen immer ein neues Theme mit sich bringen. Das Team hat sowohl das Boot-Menü als auch den Anmeldebildschirm sowie die Wallpaper geändert. Es gibt auch einige Verbesserungen beim Xfce-Desktop. […]
Ab sofort ist die finale Version von Tails 6.0 verfügbar. Es ist die erste Version, die auf Debian 12 Bookworm basiert und GNOME 43 als Desktop-Umgebung mit sich bringt. Bei Tails 6.0 wurde die meiste Software aktualisiert. Zudem gibt es diverse Verbesserungen bezüglich Sicherheit und Benutzerfreundlichkeit. Zu den neuen Funktionen gehört eine Fehlererkennung beim permanenten Speicher. Tails 6.0 warnt Dich, wenn beim Lesen von Daten oder Schreiben auf den USB-Stick Fehler auftrete. Damit kannst Du mögliche Hardware-Fehler auf dem USB-Stick […]
Der Raspberry Pi wird sicherlich oftmals headless eingesetzt, das bedeutet, es sind keine Tastatur, Bildschirm oder Maus angeschlossen. Nach der anfänglichen Installation läuft der Winzling, möglicherweise in einer dunklen Ecke und verrichtet einfach seinen Job. Gut bei der Installation von Raspberry Pi OS via Imager ist, dass Du zwischenzeitlich auch gleich SSH-Zugang konfigurieren kannst. Nett wäre auch, wenn Du eine fixe IP-Adresse vergeben könntest. Das musst Du aber weiterhin manuell konfigurieren oder Du kennst die MAC-Adresse des Computers und vergibst […]
Du kannst ab sofort die neueste Version des FCM herunterladen. Im Full Circle Magazine findest Du die Üblichen Verdächtigen, aber auch eine Geschichte, wie jemand von OSX auf Linux Mint umgestiegen ist. Die Geschichte kommt mir bekannt vor, da ich selbst einige Zeit Macs benutzt habe, nachdem sie Intel-Prozessoren eingebaut haben. Die Reise des Users begann vor circa 20 Jahren. Der User war mit Windows NT unzufrieden und bekam daher von einem Bekannten eine CD von Ubuntu 4.10 Warty Warthog. […]
Mit einem Dualstack-Proxy Internet-Protokolle verbinden beschrieb eine Möglichkeit, um von Hosts, welche ausschließlich über IPv6-Adressen verfügen, auf Ziele zugreifen zu können, die ausschließlich über IPv4-Adressen verfügen. In diesem Beitrag betrachte ich die andere Richtung.
Zu diesem Beitrag motiviert hat mich der Kommentar von Matthias. Er schreibt, dass er für den bei einem Cloud-Provider gehosteten Jenkins Build Server IPv4 deaktivieren wollte, um Kosten zu sparen. Dies war jedoch nicht möglich, da Kollegen aus einem Co-Workingspace nur mit IPv4 angebunden sind und den Zugriff verloren hätten.
Doch wie kann man nun ein IPv6-Netzwerk für ausschließlich IPv4-fähige Clients erreichbar machen, ohne für jeden Host eine IPv4-Adresse zu buchen? Dazu möchte ich euch anhand eines einfachen Beispiels eine mögliche Lösung präsentieren.
Vorkenntnisse
Um diesem Text folgen zu können, ist ein grundsätzliches Verständnis von DNS, dessen Resource Records (RR) und des HTTP-Host-Header-Felds erforderlich. Die Kenntnis der verlinkten Wikipedia-Artikel sollte hierfür ausreichend sein.
Umgebung
Zu diesem Proof of Concept gehören:
Ein Dualstack-Reverse-Proxy-Server (HAProxy) mit den DNS-RR:
haproxy.example.com. IN A 203.0.113.1
haproxy.example.com IN AAAA 2001:DB8::1
Zwei HTTP-Backend-Server mit den DNS-RR:
www1.example.com IN AAAA 2001:DB8::2
www2.example.com IN AAAA 2001:DB8::3
Zwei DNS-RR:
www1.example.com IN A 203.0.113.1
www2.example.com IN A 203.0.113.1
Ein Client mit einer IPv4-Adresse
Ich habe mich für HAProxy als Reverse-Proxy-Server entschieden, da dieser in allen Linux- und BSD-Distributionen verfügbar sein sollte und mir die HAProxy Maps gefallen, welche ich hier ebenfalls vorstellen möchte.
Der Versuchsaufbau kann wie folgt skizziert werden:
Ein Dualstack-Reverse-Proxy-Server (B) verbindet IPv4-Clients mit IPv6-Backend-Servern
HAProxy-Konfiguration
Für dieses Minimal-Beispiel besteht die HAProxy-Konfiguration aus zwei Dateien, der HAProxy Map hosts.map und der Konfigurationsdatei poc.cfg.
Eine HAProxy Map besteht aus zwei Spalten. In der ersten Spalte stehen die FQDNs, welche vom HTTP-Client aufgerufen werden können. In der zweiten Spalte steht der Name des Backends aus der HAProxy-Konfiguration, welcher bestimmt, an welche Backend-Server eine eingehende Anfrage weitergeleitet wird. In obigem Beispiel werden Anfragen nach www1.example.com an das Backend serversa und Anfragen nach www2.example.com an das Backend serversb weitergeleitet.
Die HAProxy Maps lassen sich unabhängig von der HAProxy-Konfigurations-Datei pflegen und bereitstellen. Map-Dateien werden in ein Elastic Binary Tree-Format geladen, so dass ein Wert aus einer Map-Datei mit Millionen von Elementen ohne spürbare Leistungseinbußen nachgeschlagen werden kann.
Die HAProxy-Konfigurations-Datei poc.cfg für dieses Minimal-Beispiel ist ähnlich simpel:
~]$ cat /etc/haproxy/conf.d/poc.cfg
frontend fe_main
bind :80
use_backend %[req.hdr(host),lower,map(/etc/haproxy/conf.d/hosts.map)]
backend serversa
server server1 2001:DB8::1:80
backend serversb
server server1 2001:DB8::2:80
In der ersten Zeile wird ein Frontend mit Namen fe_main definiert. Zeile 2 bindet Port 80 für den entsprechenden Prozess und Zeile 3 bestimmt, welches Backend für eingehende HTTP-Anfragen zu nutzen ist. Dazu wird der HTTP-Host-Header ausgewertet, falls notwendig, in Kleinbuchstaben umgewandelt. Mithilfe der Datei hosts.map wird nun ermittelt, welches Backend zu verwenden ist.
Die weiteren Zeilen definieren zwei Backends bestehend aus jeweils einem Server, welcher auf Port 80 Anfragen entgegennimmt. In diesem Beispiel sind nur Server mit IPv6-Adressen eingetragen. IPv4-Adressen sind selbstverständlich auch zulässig und beide Versionen können in einem Backend auch gemischt auftreten.
Kann eine HTTP-Anfrage nicht über die hosts.map aufgelöst werden, läuft die Anfrage in diesem Beispiel in einen Fehler. Für diesen Fall kann ein Standard-Backend definiert werden. Siehe hierzu den englischsprachigen Artikel Introduction to HAProxy Maps von Chad Lavoie.
Der Kommunikationsablauf im Überblick und im Detail
Der Kommunikationsablauf im Überblick
Von einem IPv4-Client aus benutze ich curl, um die Seite www1.example.com abzurufen:
~]$ curl -4 -v http://www1.example.com
* processing: http://www1.example.com
* Trying 203.0.113.1:80...
* Connected to www1.example.com (203.0.113.1) port 80
> GET / HTTP/1.1
> Host: www1.example.com
> User-Agent: curl/8.2.1
> Accept: */*
>
< HTTP/1.1 200 OK
< server: nginx/1.20.1
< date: Sat, 06 Jan 2024 18:44:22 GMT
< content-type: text/html
< content-length: 5909
< last-modified: Mon, 09 Aug 2021 11:43:42 GMT
< etag: "611114ee-1715"
< accept-ranges: bytes
<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test Page for the HTTP Server on Red Hat Enterprise Linux</title>
Der FQDN www1.example.com wird mit der IPv4-Adresse 203.0.113.1 aufgelöst, welche dem Host haproxy.example.com gehört. Bei der Zeile Host: www1.example.com handelt es sich um den HTTP-Host-Header, welchen der HAProxy benötigt, um das richtige Backend auszuwählen.
Es ist zu sehen, dass wir eine Antwort von einem NGINX-HTTP-Server erhalten. Der HTML-Quelltext wurde gekürzt.
Damit ist es gelungen, von einem IPv4-Client eine Ressource abzurufen, die von einem IPv6-Server bereitgestellt wird.
Im Access-Log des Backend-Servers mit der IPv6-Adresse 2001:DB8::2 sieht man:
Die Anfrage erreicht den Backend-Server von der IPv6-Adresse des haproxy.example.com (2001:DB8::1). Die am Ende der Zeile zu sehende IPv4-Adresse (192.0.2.1) gehört dem IPv4-Client, von dem ich die Anfrage gesendet habe.
Gedanken zur Skalierung
In diesem Beispiel sind die Server www1.example.com und www2.example.com über ihre IPv6-Adressen direkt erreichbar. Nur die Client-Anfragen von IPv4-Clients laufen über den Reverse-Proxy. Wenn man es wünscht, kann man selbstverständlich sämtliche Anfragen (von IPv4- und IPv6-Clients) über den Reverse-Proxy laufen lassen.
In kleinen Umgebungen kann man einen Reverse-Proxy wie HAProxy zusammen mit Squid (vgl. Artikel Mit einem Dualstack-Proxy Internet-Protokolle verbinden) auf einem Host laufen lassen. Selbstverständlich kann man sie auch auf separate Hosts verteilen.
Hochverfügbarkeit lässt sich auch hier mit keepalived nachrüsten:
Die Internet-Protokolle IPv4 und IPv6 werden wohl noch eine ganze Zeit gemeinsam das Internet bestimmen und parallel existieren. Ich bin mir sogar sicher, dass ich das Ende von IPv4 nicht mehr miterleben werde. Dualstack-(Reverse)-Proxy-Server stellen eine solide und robuste Lösung dar, um beide Welten miteinander zu verbinden.
Sicher bleiben noch ausreichend Herausforderungen übrig. Ich denke da nur an Firewalls, Loadbalancer, NAT und Routing. Und es werden sich auch Fälle finden lassen, in denen Proxyserver nicht infrage kommen. Doch mit diesen Herausforderungen beschäftige ich mich dann in anderen Artikeln.