O PacketFence. é uma solução de controle de acesso à rede (NAC) totalmente suportada, confiável, gratuita e de código aberto. Ele possui uma série de recursos que permitem centralizar e organizar o acesso à rede, incluindo captive portal para registro ou isolamento, gerenciamento das redes cabeadas, sem fio e VPN, recursos de BYOD, suporte a 802.1X, entre outros. Um único servidor PacketFence pode ser usado para proteger centenas de switches e muitos milhares de nós conectados a eles.
Usando componentes de código aberto principais como o Apache, FreeRADIUS, MariaDB, Redis e Netfilter, o Packetfence fornece autenticação, conformidade, gerenciamento de dispositivos, firewall, IDS e fingerprint de dispositivos.
As configurações e usos são vastos, mas nessa série de artigos vou mostrar como disponibilizar um captive portal para visitantes de uma rede sem fio, usando um servidor packetfence, access points Aruba e switches gerenciáveis.
Para realizar testes e validar as configurações, montei um laboratório com um servidor, um AP303 da Aruba e um switch Cisco 2950, mas toda essa montagem será explicada na parte 2. Por hora, vamos começar com a instalação do packetfence em um servidor Linux, que pode ser Ubuntu ou CentOS. Eu utilizei um CentOS7.
Atualize o Sistema operacional:
yum update
Desabilite o NetworkManager:
Para verificar se o NetworkManager está em execução, utilize o seguinte comando.
systemctl status NetworkManager
Pare e desabilite o NetworkManager com o comando abaixo:
systemctl stop NetworkManager
systemctl disable NetworkManager
Desabilite o SELINUX:
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Desabilite o firewall:
firewall-cmd --state
O firewall vai retornar apenas “running” se estiver em execução.
systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld
Reinicie o servidor.
Instale o kernel-devel caso não esteja instalado:
yum install kernel-devel-$(uname -r)
Instale o repositório do packetfence:
yum localinstall http://packetfence.org/downloads/PacketFence/RHEL7/packetfence-release-7.stable.noarch.rpm
Instale o packetfence:
yum install --enablerepo=packetfence packetfence
Se o erro a seguir ocorrer por causa do repositório EPEL:
--> Resolução de dependências finalizada
Error: Pacote: python2-impacket-0.9.21-5.el7.noarch (epel)
Requer: python2-flask
Error: Pacote: python2-impacket-0.9.21-5.el7.noarch (epel)
Requer: python2-pyOpenSSL
Você pode tentar usar o parâmetro --skip-broken para contornar o problema
Você pode tentar executar: rpm -Va --nofiles --nodigest
Use o seguinte comando:
yum install --disablerepo=epel --enablerepo=packetfence packetfence
E se precisar fazer update, utilize sempre da seguinte forma:
yum update --disablerepo=epel --enablerepo=packetfence
Após a instalação, acesse o console web em https://ip_do_seu_servidor:1443 para realizar a configuração inicial.
Obs: vai aparecer uma tela com potencial risco de segurança, pois ainda não há um certificado instalado. Vá no modo avançado, aceite o risco e continue.
Clique em Detect Management Interface
Após detectar a interface de gerenciamento, insira o portal como aditional listening daemon(s). Feche a edição da interface e clique em Next Step.
No passo 2, você pode deixar que o PF escolha as senhas de BD automaticamente, ou pode fazer as suas. Em General, defina o domínio e o Timezone. Aqui também você pode configurar os envios de alerta, clicando no botão de basic mode. Vão aparecer opções para que você preencha os dados da conta de e-mail que será usada para os envios.
Coloque uma senha para o admin e clique em Next Step. Pode demorar um pouco devido à criação de tabelas.
Como um passo opcional, você pode inserir a API Key da sua conta no Fingerbank. Se não tiver uma, basta criar no link mostrado. Clique em Next Step.
No passo 4 o sistema vai lhe mostrar as senhas que foram configuradas. É muito importante registrar essas senhas (senha de root do MariaDB, senha do usuário pf no banco de dados e a senha de admin que você escolheu). Clique em Start Packetfence.
Pode demorar um pouco, pois o PF vai iniciar uma série de serviços.
Após iniciar os serviços o PF vai apresentar a tela de login.
Dashboard do Packetfence
Saia do sistema e volte ao prompt do CentOS7.
Aplicar patches de correção se existirem:
/usr/local/pf/addons/pf-maint.pl
O sistema fará 3 perguntas ao executar o script de manutenção:
Aceite as ações de manutenção e, após os patches, reinicie seu servidor. Acesse a interface de administração. O packetfence está instalado e pronto para a configuração básica.