Как настроить точку доступа Wi-Fi только для пользователей, если они согласятся с EULA?

Мне нужно настроить точку доступа, чтобы разрешить пользователям только в том случае, если они сначала принимают лицензионное соглашение. Чтобы сделать вещи немного проще, я изучаю это с помощью unix-машины, которая разделяет соединение из ethernet с людьми на Wi-Fi. Какой был бы лучший способ приблизиться к этому?

Я думал

  • перенаправлять все новые http-соединения на страницу EULA и как только пользователь нажимает ACCEPT, добавляет ip + mac в таблицу и фильтрует все остальное
  • Перенаправление с помощью dnsmasq (хотя я понятия не имею, как заставить его прекратить перенаправление после того, как пользователь нажимает кнопку)

Какие-нибудь советы?

Я согласен с вашим подходом. Пока MAC-адрес пользователя не будет включен в белый список, каждый пакет, исходящий от него, должен быть отброшен, за исключением HTTP-запросов. Они должны быть перенаправлены на ваш IP-порт apache (вот пример ). Как только пользователь нажимает «принять» в своем лицензионном соглашении, вы должны вызвать процедуру, которая передает белый список его MAC-адресов, добавляя исключение из iptables и останавливая сброс его пакетов. Я не говорю, что это будет легко, но, по крайней мере, это возможно.