Captive Potal - pagina de logout manual



  • Boa tarde galera,
    Venho aqui compartilhar uma solução que foi muito útil pra mim, que é uma pagina de logout manual para captive portal.
    Achei um link no youtube.com que foi da onde tirar a minha soloção. Neste link a versão do o pfsense era a 2.1.5 eu uso a 2.2.2, oque mudou foi o uso das funções php sqlite3 e o uso de varias zonas do captive portal.

    link créditos: https://www.youtube.com/watch?v=xk60lg-9o3A&list=WL&index=2

    Com os problemas relacionados com o “pop up” de logout do captive portal, como: bloqueado pelo navegador e não pode ser fechado por que não dá para abrir posteriormente. A ideia foi criar uma página de “logout manual”, um link que pode ser aberto a qualquer momento no navegar para efetuar o logout da rede.

    1 – Nome das zonas do captive portal

    Para começar com a criação da página de logout iremos precisar saber as zonas de captive portal criadas no servidor.

    No exemplo do gwadm acima, temos 2 zonas configuradas. Com isso podemos ter usuários conectados na zona “gweb” e “dmsa”. O captive portal gera um arquivo .db para cada zona, onde é populado com as informações de usuário e ip, esses arquivos ficam dentro da pasta /var/db/ com os nomes referenciando a zona, por isso a importância de saber qual o nome das zonas.
    Obs: devemos descobrir em qual porta o captive roda em cada zona, exemplo:
    gweb abre na porta 8003 e o dmsa abre na porta 8005

    Esses arquivos deveram ser usados no arquivo de script de logout, onde deve ser consultado em qual zona o usuário está logado para o mesmo efetuar o logout.

    2 – Script logout

    Para que o usuário seja efetue o logout é preciso criar uma pasta onde esse script ou pagina estará hospedado para ser aberto no navegador.  Foi criado a pasta “logout” em /usr/local/www como podemos ver na imagem abaixo.

    Agora precisamos colocar o script dentro desta pasta, esse script será um arquivo chamado index.php com o seguinte conteúdo:

    arquivo index.php https://drive.google.com/file/d/0B1iHmPqlFy0YUG4tSlU2ODZIWHc/view?usp=sharing

    3 – Firewall

    A regra abaixo deve ser criada no firewall de cada vlan do servidor para que o cliente tenha acesso a página de logout.

    4 - Pagina de logout

    5 - Problema em redirecionar logout para https
    Pelo fato do gerenciador do pfsense estar configurado para redirecionar a porta 80 para 443, a página de logout também só abre em https, o problema é que a ideia é que está pagina abra assim que o usuário fizer e com isso ele terá que aceitar o certificado para abrir a página e é óbvio que o mesmo não irá fazer isso.
    Para corrigir isso fiz umas alterações.

    5.1 - Desabilitar o WebGUI redirect

    6 – Criando um serviço http
    Agora podemos criar um virtualhost para /logout na porta 80, o arquivo será salvo em /root (não sei se é o melhor lugar, mas em /var/etc, após o reboot ele é apagado).
    Criar por ssh: vi /root/lighty-logout.conf
    Ou acesso via winscp e crie o arquivo.

    arquivo lighty-logout.conf https://drive.google.com/file/d/0B1iHmPqlFy0YRHBxSlNoWV9YUnc/view?usp=sharing

    6.1 - Start do serviço http
    Para subir o serviço na porta :80 basta executar o comando baixo, além disso criei um executável para iniciar durante o boot
    /usr/local/sbin/lighttpd -f /root/lighty-logout.conf

    vi /usr/local/etc/rc.d/logout.sh
    #!/bin/sh
    /usr/local/sbin/lighttpd -f /root/lighty-logout.conf
    chmod +x /usr/local/etc/rc.d/logout.sh



  • Ótima contribuição, irei fazer os testes aqui.



  • as imagens estão quebradas. tente colocar no proprio post.



  • Marcelloc,

    Ontem as imagem realmente estavam com problemas, mas hj esta abrindo de boa.

    Obs: acrescentei alguns passos para não ter problema com o certificado na hora de abrir a tela de lgout.

    Att,

    Everton de Freitas Cordeiro



  • Aqui não vejo as imagens....



  • Por favor, não estão aparecendo as imagens, se possível corrigir, agradecemos


Log in to reply