Ich habe einen Ubuntu 22.04-Server, eine Liste mit IP-Adressen von Benutzern in meinem lokalen Netzwerk und möchte den HTTP/https-Verkehr von dieser Liste auf eine lokale informative HTML-Seite umleiten.Ähnlich wie ein Hotspot. Ich habe es mit Apache2, Squid, Wpad (252 DHCP) und Iptables versucht, aber es hat nicht geklappt. https leitet nicht um.
wie mache ich es?
Antwort1
iptables kann ip:443 nicht auf einen anderen ip:port umleiten (wo ich den virtuellen Apache2-Host mit der Infoblock-Seite veröffentlicht habe)
Sie könnten den TCP/IP-Stream umleiten, allerdings zeigt der Browser eine Sicherheitswarnung an, da Sie kein gültiges Zertifikat vorlegen können.
squid-cache zeigt im Browser nur dann Informationen an, wenn es sich um eine HTTP-Seite mit „Fehlerseite“ handelt (benutzerdefinierte Fehlerseiten werden für HTTPS nicht angezeigt) (weitere Informationen finden Sie hier)
Wie Sie bemerken, zeigen Browser keine Fehlerseite für TLS an. Wenn sie etwas anderes als den Code 200 empfangen, zeigen sie ihre eigene Fehlermeldung an.
FastalleDer heutige Datenverkehr ist TLS-verschlüsselt und Sie können ihn weder anzeigen noch ändern. Das heißt: Sie können weder behaupten, Sie seien example.com
, noch können Sie example.com
zu etwas anderem umleiten.
Sofern Sie nicht die vollständige Kontrolle über die Clients haben und ein neues Stammzertifikat installieren können, können Sie dies nicht behaupten example.com
.
PS: Falls es eine Methode zum Blockieren und Anzeigen einer Sperrseite gibt, die HTTPS-Verkehr (TCP 443) auf diese Seite zulässt, wäre ich für eine ausführliche Erklärung mit konkreten Beispielen dankbar.
Es gibt keine solche Methode, die mit modernen Browsern funktioniert, und das ist kein Fehler; es ist eineDesignFunktion von TLS. Es soll Man-In-The-Middle-Angriffe verhindern – und das ist im Wesentlichen das, was Sie versuchen.
Also nein, es gibt keine Methode, um das zu erreichen, was Sie erreichen möchten. Wenn es eine gäbe, wäre das ein großes Sicherheitsproblem.
Antwort2
Sie können Benutzer nicht gleichzeitig blockieren und ihnen Inhalte bereitstellen.
Wenn ich möchte, dass die Leute wissen, dass sie gesperrt wurden, würde ich wahrscheinlich eine Zugriffskontrollliste in meinem Reverse-Proxy/Load Balancer einrichten und Clients mit gesperrten IP-Adressen auf eine statische Seite umleiten, die entweder intern oder bei einem Content Delivery Network gehostet wird.