- 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.
- Proporcione el SERVIDOR a las máquinas no registradas como puerta de enlace predeterminada.
- redirigirpuerto 80al servidor web usandoiptables
Pero no sé exactamente cómo hacerlo :)