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

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

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

3 ответа

Решение

echo 1> / proc / sys / net / ipv4 / ip_forward iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT - к месту назначения 1.2.3.4:80 iptables -t nat -A POSTROUTING -j MASQUERADE

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

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

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

Я нашел другой путь.

  1. Дайте незарегистрированным машинам SERVER в качестве шлюза по умолчанию.
  2. перенаправить порт 80 на веб-сервер с помощью iptables

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

Другие вопросы по тегам