Перенаправить незарегистрированных пользователей на сайт на локальном компьютере

Перенаправить незарегистрированных пользователей на сайт на локальном компьютере
  • У меня есть сервер 192.168.0.3 (СЕРВЕР). Работает Ubuntu Server + DHCP server + Apache;
  • Маршрутизатор 192.168.0.1 (ROUTER) (у меня нет к нему доступа);
  • У меня есть веб-приложение на СЕРВЕРЕ для регистрации пользователей в сети путем применения к ним определенной конфигурации (на DHCP-сервере);
  • Пользователи находятся в подсети 192.168.0.0/16;

Я могу настроить DHCP-сервер так, чтобы он давал незарегистрированным машинам мой СЕРВЕР в качестве шлюза по умолчанию.
Так как я могуперенаправитьвсе входящие http-запросы от незарегистрированных машин на мойлокальное веб-приложение192.168.0.3 ?

решение1

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -p tcp -dport 80 -j DNAT –to-destination 1.2.3.4:80 iptables -t nat -A ПОСЛЕДУЮЩАЯ МАРШРУТИЗАЦИЯ -j МАСКАРАД

решение2

Вам придется настроить специальный DNS-сервер, который будет отвечать на все DNS-запросы IP-адресом вашего сервера, и настроить виртуальный сервер Apache на прием запросов для любого хоста (например, *:80 + *:443).

Хитрость в том, что после входа в систему DNS-сервер должен начать предоставлять правильные результаты DNS, а не поддельные. Вы не можете просто снова изменить настройки в DHCP, потому что время аренды по умолчанию будет слишком долгим и/или пользователям придется отключаться, чтобы получить новые настройки.

Многие системы входа в систему Wi-Fi используют эту архитектуру, поэтому вы можете найти решение с открытым исходным кодом.

решение3

Я нашел еще один способ.

  1. Назначить незарегистрированным машинам СЕРВЕР в качестве шлюза по умолчанию.
  2. перенаправитьпорт 80к веб-серверу с помощьюiptables

Но я не знаю точно, как это сделать :)

Связанный контент