Agora que já temos o nosso servidor Packetfence funcionando, como fizemos na parte 1, vamos abordar um caso de uso muito requisitado: prover um Captive Portal para uma rede sem fio empresarial, com registro de visitantes e ativação por e-mail.
As soluções de rede sem fio empresariais como Cisco, Ruckus, Aruba e outras já integram um captive portal simples. Mas em geral não há muita possibilidade de personalização e adequação dessa versão mais simples às necessidades da empresa. Normalmente o que é oferecido é um sistema mais completo que possa ser utilizado mediante um licenciamento. Esse licenciamento costuma ter um valor proibitivo, dependendo do cenário e do número de licenças necessárias.
O Packetfence oferece uma estrutura muito robusta e altamente customizável para a montagem de uma solução de Captive Portal empresarial.
No caso das redes sem fio empresariais, existem duas abordagens básicas em termos de equipamentos: controladora de rede + access points, ou access points inteligentes que formam um grid único e uma controladora virtual. No exemplo, vamos montar um laboratório de prova de conceito usando o Aruba Instant AP303. A solução da Aruba permite compor uma malha de access points que atende ao mesmo SSID e implementa uma controladora virtual (um access point é eleito o master e controla o restante dos equipamentos).
Conforme a documentação do packetfence, é recomendado possuir pelo menos quatro VLANs distintas para administração, registro, isolamento e produção. A VLAN de isolamento é opcional, pois serve para isolar dispositivos que não passarem em testes de antivírus ou pelo scan de vulnerabilidades.
Foram definidas as VLANs a seguir:
O resumo é o seguinte: o visitante se conecta a um SSID aberto (camada 2). O access point registra o MAC e verifica com o packetfence se o dispositivo já está registrado. Ele faz isso usando comunicação com protocolo RADIUS. Como o dispositivo não está registrado, o packetfence atribui uma função ou role a ele, cujo mapeamento para o Aruba é para a role pre-registro. Ao receber essa informação, o Aruba levará o dispositivo até a rede de registro, na VLAN 200. Nessa VLAN, o Packetfence terá um dhcp, fornecendo IP ao dispositivo e apresentando a ele o captive portal. O visitante concorda com os termos de uso e insere o e-mail para registrar-se. Nesse momento o Packetfence altera a role do dispositivo para uma role que esteja apta a navegar, no nosso exemplo Visit-OSPimenta. Através do mapeamento de roles que vamos configurar, o Packetfence informa ao Aruba que o dispositivo agora deve receber a role registrado. O Aruba pega essa informação, desconecta o dispositivo da rede de registro (via CoA) e o conecta na rede de produção. Uma nova requisição DHCP é realizada pelo dispositivo, mas desta vez já para o servidor DHCP da rede de produção e ele recebe um novo IP. Nesse momento o dispositivo já pode navegar por 10 minutos, ou pelo tempo que for determinado na configuração. Usando o acesso, o visitante poderá consultar seu e-mail e clicar no link de ativação, concluindo o processo de registro. A partir daí, o tempo de registro é aumentado para o tempo que está configurado, 1 hora em nosso exemplo. Fim do processo.
É importante observar que o Aruba não troca a VLAN do dispositivo diretamente, como seria possível fazer em um switch Cisco, por exemplo. Em vez disso, o access point altera a role do dispositivo e na role é que configuramos a VLAN. Portanto, no Aruba atribui-se a VLAN através da role (Role Based Access).
1-Clique em Configuration → Policies e Access Control → Roles e faça um clone da role guest. Informe um nome e coloque uma descrição para a role:
Crie um fonte de autenticação baseada em e-mail.
Vá em Configuration → Policies and Access Control → Authentication Sources e clique em New external source. Faça um clone da fonte Email. Informe um nome e uma descrição para esta fonte de autenticação. No campo Host in activation link coloque um host válido para o seu domínio, pois o visitante vai precisar clicar neste link para ativar o acesso. Na zona DNS do seu domínio, você deve configurar um CNAME que aponta para o IP do seu servidor packtfence:
Desça na página e em Authentication Rules, crie a rule ou regra Visitante e adicione uma condição conforme abaixo. Essa regra vai atribuir a role Visit-OSPimenta ao dispositivo e definir 1 hora de acesso em caso de ativação do link:
4-Clique em Configuration → Standard Connection Profiles → New Connection Profile e crie um perfil de conexão para visitante:
Desça na página e em Filter, escolha all e configure o perfil para apontar para o SSID de Visitantes que estará configurado no Aruba. Em Sources, escolha a fonte registro-via-email que criamos anteriormente:
Clique na aba Captive Portal e coloque uma página que será aberta logo após o visitante conseguir se registrar. No exemplo, usaremos https://ospimenta.com em Redirection URL.
Aqui você também pode escolher um logotipo que vai aparecer na hora do registro do usuário. O caminho /common é equivalente a /usr/local/pf/html/common no servidor. Copie aqui a imagem que deseja apresentar.
Após salvar você verá a aba Files, onde são mostrados todos os arquivos do portal. Você pode querer personalizar alguns deles, como por exemplo o termo de uso em /usr/local/pf/html/captive-portal/templates/aup_text.html. Também é possível clicar em Preview para ver como ficará a tela de registro.
Preview da tela de registro. O Zepelin é um cara bonitinho né? rsrs
Voltando à aba do captive portal, você pode escolher ao final da página, a linguagem:
O packtefence precisa se comunicar com os switches para que possa haver a troca de acesso, roles, cancelamento de registro e outras autorizações. Dessa forma, cada switch gerenciável que fizer parte da rede controlada deve ser registrado.
No caso dos APs Aruba, cada AP é considerado como um switch. Então todos os APs que fizerem parte da rede sem fio devem ser cadastrados com seus IPs no Packetfence para que possam se comunicar. Como faremos as mesmas configurações para cada AP é mais prático criar um grupo de switches e inserir cada AP nesse grupo. Assim, se precisarmos alterar uma configuração no grupo de switches, essa configuração valerá para todos os APs registrados no grupo.
1-Clique em Configuration → Switch Groups → New Switch Group e defina o grupo (usar CoA e Radius. Mode Production):
2-Na aba roles faça o mapeamento da roles do packetfence para as roles do Aruba (desligue Role by VLAN ID e Role by Web-Auth URL, deixando ligado apenas Role by Switch Role). Observe que a única role que será mapeada para registrado é a role Visit-OSPimenta:
3-Na aba RADIUS, defina uma senha para comunicação entre todos os APs Aruba e o Radius do Packetfence:
Um vez criado o grupo de switches, vamos adicionar um AP nesse grupo, clicando em Configuration → Switches → New switch → to group Switches-Aruba:
Cadastre o endereço IP que você colocou no AP, no nosso caso, 192.168.0.200:
Nosso servidor possui apenas uma única interface de rede. Precisamos fazer com que o servidor tenha mais duas interfaces, portanto, criaremos sub-interfaces.
Para criar as interfaces, clique em Configuration → Network Configuration → Interfaces. Clique em New VLAN:
A interface que estará na VLAN 200, de registro, foi configurada da seguinte forma (observe que ativamos o DHCP):
A VLAN 300, de isolamento, foi configurada da seguinte forma (também com DHCP):
A visão geral com as três interfaces do servidor ficou da seguinte forma:
Aqui finalizamos a parte de configuração básica do packetfence. Vamos reiniciar o servidor e conferir se tudo ficou ok.
No próximo artigo, vamos configurar o switch para criar as VLANs, configurar o AP Aruba e juntar as partes para que tudo funcione.