Nicht registrierte Benutzer auf die Site auf dem lokalen Computer umleiten

Nicht registrierte Benutzer auf die Site auf dem lokalen Computer umleiten
  • Ich habe einen Server 192.168.0.3 (SERVER). Auf ihm laufen Ubuntu Server + DHCP-Server + Apache;
  • Der Router 192.168.0.1 (ROUTER) (ich habe keinen Zugriff darauf);
  • Ich habe eine Webanwendung auf dem SERVER zur Registrierung von Benutzern im Netzwerk, indem ich eine spezifische Konfiguration (auf dem DHCP-Server) für sie anwende;
  • Benutzer befinden sich im Subnetz 192.168.0.0/16;

Ich kann den DHCP-Server so konfigurieren, dass er nicht registrierten Maschinen meinen SERVER als Standard-Gateway gibt.
Wie kann ich alsoumleitenalle eingehenden HTTP-Anfragen von nicht registrierten Maschinen an meinenlokale Web-App192.168.0.3 ?

Antwort1

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT –zum Ziel 1.2.3.4:80 iptables -t nat -A POSTROUTING -j MASQUERADE

Antwort2

Sie müssen einen speziellen DNS-Server einrichten, der alle DNS-Anfragen mit der IP Ihres Servers beantwortet, und den virtuellen Server von Apache so einrichten, dass er Anfragen für jeden Host akzeptiert (z. B. *:80 + *:443).

Der Trick besteht darin, dass der DNS-Server nach der Anmeldung korrekte DNS-Ergebnisse liefern muss und keine falschen. Sie können die Einstellungen nicht einfach erneut in DHCP ändern, da die Standard-Lease-Zeit zu lang ist und/oder Benutzer die Verbindung trennen müssen, um die neuen Einstellungen zu übernehmen.

Viele Wi-Fi-Anmeldesysteme verwenden diese Architektur, daher finden Sie möglicherweise eine Open-Source-Lösung.

Antwort3

Ich habe einen anderen Weg gefunden.

  1. Geben Sie nicht registrierten Maschinen den SERVER als Standard-Gateway.
  2. umleitenHafen 80zum Webserver mitiptables

Aber ich weiß nicht genau, wie ich das machen soll :)

verwandte Informationen