Это возможно, но не без особых затруднений.
Вам нужен ipset и веб-сервер с поддержкой сценариев.
Сначала вы создаете "IPset" для записи IP-адресов компьютеров, которые уже видели портал авторизации.
ipset create AlreadySaw hash:ip timeout $timeout
Далее вы создаете набор правил.
Первое правило захватывает трафик с хостов, не входящих в IPset "AlreadySaw":
-t nat -A PREROUTING -m set ! --match-set AlreadySaw src -j REDIRECT
Второй набор правил сбрасывает время ожидания пакетов, проходящих через шлюз:
-A FORWARD -m state --state ESTABLISHED -j Estab
-A Estab -j SET --add-set AlreadySaw src --exist
-A Estab -j ACCEPT
Наконец, создайте веб-сервер, который прослушивает порты:80 и:443, который предоставит пользователю «портал авторизации», а после того, как пользователь успешно выполнит запрос, запрошенный «порталом портала», затем выполнит следующую команду:
ipset add AlreadySaw %IP%
... где% IP% - это IP-адрес источника, который должен быть обнаружен скриптом 'портала портала'.
,
Сложная часть, конечно, заключается в создании сценария «портала для пленников». Это я оставляю тебе как домашнее задание :)