Redirigir a los usuarios no registrados al sitio en la máquina local

Redirigir a los usuarios no registrados al sitio en la máquina local
  • Tengo un servidor 192.168.0.3 (SERVIDOR). Ejecutando Ubuntu Server + servidor DHCP + Apache;
  • El enrutador 192.168.0.1 (ROUTER) (no tengo acceso a él);
  • Tengo una aplicación web en el SERVIDOR para registrar usuarios en la red aplicando una configuración específica (en el servidor DHCP) para ellos;
  • Los usuarios están en la subred 192.168.0.0/16;

Puedo configurar el servidor DHCP para que las máquinas no registradas tengan mi SERVIDOR como puerta de enlace predeterminada.
Entonces, ¿cómo puedoredirigirtodas las solicitudes http entrantes de máquinas no registradas a miaplicación web local192.168.0.3?

Respuesta1

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

Respuesta2

Tendrá que configurar un servidor DNS especial que responda todas las consultas DNS con la IP de su servidor y configurar el servidor virtual de Apache para aceptar solicitudes de cualquier host (es decir, *:80 + *:443).

El truco es que, después de iniciar sesión, el servidor DNS debe comenzar a proporcionar resultados DNS correctos en lugar de resultados falsos. No puede simplemente cambiar la configuración nuevamente en DHCP porque el tiempo de concesión predeterminado será demasiado largo y/o los usuarios tendrán que desconectarse para recuperar la nueva configuración.

Muchos sistemas de inicio de sesión Wi-Fi utilizan esta arquitectura, por lo que es posible que puedas encontrar una solución de código abierto.

Respuesta3

He encontrado otro camino.

  1. Proporcione el SERVIDOR a las máquinas no registradas como puerta de enlace predeterminada.
  2. redirigirpuerto 80al servidor web usandoiptables

Pero no sé exactamente cómo hacerlo :)

información relacionada