Artigos

Packetfence - Parte 1 - Instalação

Packetfence - Parte 1 - Instalação

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.

NetworkManager ativo

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

NetworkManager ativo

Pare e desabilite o NetworkManager com o comando abaixo:

systemctl stop NetworkManager
systemctl disable NetworkManager

Desabilite o SELINUX:

  1. Edite o arquivo config do selinux
vi /etc/selinux/config
  1. Altereo tem SELINUX para disabled, como abaixo e salve o arquivo
# 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:

  1. Verifique se o firewall está habilitado
firewall-cmd --state

O firewall vai retornar apenas “running” se estiver em execução.

  1. Desligue o firewall caso esteja em funcionamento
systemctl stop firewalld
  1. Desabilite o firewall para não ligar na reinicialização
systemctl disable firewalld
  1. Impeça que o firewall seja ativado por outros serviços
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

Pacotes do packetfence

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

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.

Portal daemon

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.

Tela de config básica

Coloque uma senha para o admin e clique em Next Step. Pode demorar um pouco devido à criação de tabelas.

senha de admin

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.

Fingerbank

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.

Login

Dashboard do Packetfence

Dashboard

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:

  1. Para continuar com os patches de texto;
  2. Para continuar com os patches dos binários em Golang;
  3. Para fazer patch da interface de administraçã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.