Como o redirecionamento do portal cativo funciona nos bastidores?

1

Como um projeto, estou criando minhas próprias páginas da Web de portal cativo para usuários "não autenticados". Aqueles são usuários que não acessaram um botão na minha página do portal cativo. Eu quero que isso seja fora de banda (como uma opção de implantação do packetfence), para que minha máquina Linux não esteja agindo como um roteador / proxy.

Para isso, preciso saber COMO o dispositivo, no meu caso, um iPhone com iOS 8, é redirecionado para a página do portal cativo.

Isso é o que eu acho que deveria acontecer:

  1. o iPhone conecta-se ao Wi-Fi
  2. pontos de DNS na minha máquina Linux, que resolve todos os pedidos com o IP de si mesmo
  3. A máquina Linux tem um servidor da Web que responde a tudo na porta 80 e redireciona tudo usando o cabeçalho HTTP Location: para uma página com o conteúdo e um botão
  4. O botão é pressionado e o endereço MAC do usuário é adicionado a "algo" e, a partir de então, o DNS faz a devida resolução (??) ou talvez o iptables redirecione as solicitações DNS para outro host DNS público (??)

Já passei por esse site e o Google por alguns dias até tentou ver o código do Packetfence (não sou um desenvolvedor de perl), preciso confirmar se meu processo acima está correto ou um ponto de bala lista de etapas corretas. Eu dei uma olhada no post this serverfault , é o detalhes sobre como o redirecionamento acontece e, mais importante, como NÃO ter o redirecionamento acontecer quando o usuário for "autenticado".

Eu aprecio se alguém tiver esse conhecimento para preencher as lacunas ou me apontar em um site que tem o "como / o que faz o redirect - dns / dhcp / http / iptables).

O problema que estou tentando resolver é articular o processo técnico de como isso funciona, expandindo em outros posts neste site que dizem coisas como "o primeiro pedido deve ser redirecionado". Minha pergunta é ... como / quais ferramentas eu preciso fazer isso.

Obrigado!

    
por Dominik 11.02.2016 / 00:38

1 resposta

1

A primeira coisa que você precisa para conseguir o redirecionamento é algum autenticador em linha (controlador de acesso), já que no contexto do tópico você precisará de um controlador lan sem fio se optar pelo gerenciamento central do AP. você também pode colocar em um tipo de portal cativo de controlador de acesso de rede com recursos de parede de jardinagem

O NAS monitora o tráfego que entra no downlink (cliente) por meio do soquete bruto do modo promíscuo e, quando o navegador inicia o tráfego para um cliente não autenticado, é detectado um redirecionamento HTTP para ele como resposta. Assim, o navegador em recebimento é redirecionado para a página inicial do portal CAPTIVE, que pode ser hospedado in-line no autenticador ou pronto para uso em algum servidor web externo.

O único trabalho desta página é fornecer ao usuário uma interface do usuário para inserir credenciais. As credenciais inseridas são encaminhadas de volta para o daemon do autenticador como chilli no caso de coova chilli. Além disso, essas credenciais são passadas como solicitação de raio para o servidor RADIUS ou podem ser verificadas localmente. Após a autenticação bem-sucedida, o estado do cliente no autenticador é marcado como autorizado e o cliente recebe acesso.

Como o redirecionamento é alcançado

A abordagem mais usada é interceptar a solicitação HTTP solicitada pelo usuário e o código 302 como resposta ao cliente. em chilli é pomba via abaixo funtion

link

Redirecionamento HTTP / 1.1 302

Localização: $ 1

Set-Cookie: PORTAL_SESSIONID = $ PORTAL_SESSIONID

Set-Cookie: COOVA_USERURL = $ COOVA_USERURL

Conexão: fechar

EOF

exit

}

Esse redirecionamento pode ser facilmente alcançado através da interface tuntap controlada por programação para a interface do lado do cliente, que intercepta o tráfego do cliente. Além disso, o redirecionamento também pode ser obtido via envenenamento de DNS. mas às vezes pode causar problema se as respostas forem armazenadas em cache no navegador do cliente Outras coisas podem ser feitas mais especificamente de acordo com o domínio do problema.

Eu posso te ajudar com isso se você quiser

    
por 17.10.2016 / 12:54