Перенаправить незарегистрированных пользователей на сайт на локальном компьютере
- У меня есть сервер 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 используют эту архитектуру, поэтому вы можете найти решение с открытым исходным кодом.
Я нашел другой путь.
- Дайте незарегистрированным машинам SERVER в качестве шлюза по умолчанию.
- перенаправить порт 80 на веб-сервер с помощью iptables
Но я не знаю точно, как это сделать:)