iptables portal cativo remover usuário

4

Eu segui este guia: link

Estou implementando o portal cativo usando o iptables. Eu configurei o servidor web e iptables no roteador linux, e tudo está funcionando como deveria.

Eu posso permitir que o usuário acesse a internet com

sudo iptables -I internet -t mangle -m mac --mac-source USER_MAC_ADDRESS -j RETURN

e posso remover o acesso com

sudo iptables -D internet -t mangle -m mac --mac-source USER_MAC_ADDRESS -j RETURN

No entanto, na remoção, o usuário ainda pode abrir a última página visualizada quantas vezes quiser (se ele reiniciar seu adaptador Ethernet, as conexões futuras serão fechadas). Na página do blog eu encontrei um script

/usr/sbin/conntrack -L \
    |grep $1 \
    |grep ESTAB \
    |grep 'dport=80' \
    |awk \
        "{ system(\"conntrack -D --orig-src $1 --orig-dst \" \
            substr(\,5) \" -p tcp --orig-port-src \" substr(\,7) \" \
            --orig-port-dst 80\"); }"

O qual deve remover sua trilha de conexão de "redirecionamento", como está escrito, mas quando eu executo esse script, nada acontece - o usuário ainda tem acesso a essa página.

Quando executo /usr/sbin/conntrack -L | grep USER_IP depois de executar o script, não estou tendo nada retornado, então, minhas perguntas: Há mais alguma coisa que possa me ajudar a limpar essas faixas? Obviamente - eu não posso redefinir nem meu, nem adaptador de rede de usuários.

Atualização:

Para evitar possíveis mal-entendidos - os comandos acima são comandos brutos que eu executei na minha máquina, então exec () e similares do PHP não são causa deste comportamento. Todos os comandos estão executando bem - porque no usuário de remoção não pode acessar qualquer outro site que o último site que ele estava navegando.

    
por Nemanja Boric 07.07.2012 / 23:14

1 resposta

3

Para responder à sua pergunta, eu verificaria o shell_exec e as chamadas executadas estão sendo executadas conforme o esperado e que elas não estão desativadas para segurança, o que geralmente é o caso.

Para avisar você.

$_POST['ip'] e $_POST['mac'] entradas não são sanitizadas e são passadas diretamente para uma função exec () em process.php;

um invasor pode iniciar o curl para baixar um shell php e fazer backdoor do site; execute qualquer comando dentro da permissão dos usuários em execução para fazer isso; Lixeira diretórios inteiros e webroots etc; por favor, assegure-se de auditar completamente qualquer código que tenha colocado no seu sistema; antes de ativar as funções exec / shell_exec.

    
por 10.07.2012 / 18:18