Concordo com sua abordagem. Até que o endereço MAC do usuário esteja na lista de desbloqueio, todos os pacotes provenientes dele devem ser descartados, exceto para solicitações HTTP. Aqueles devem ser redirecionados para o seu apache IP: port (aqui está um exemplo ). Assim que o usuário clicar em "aceitar" no seu EULA, você terá que acionar um procedimento que coloque na lista de permissões seu endereço MAC, adicionando uma exceção dentro do iptables e parando o descarte de seus pacotes. Eu não digo que vai ser fácil, mas pelo menos é viável.