pfSense - Como configurar o Hotspot Social e Logs do Marco Civil
Como configurar o Hotspot Social em um servidor pfSense
IMPORTANTE:
Esse material é voltado para parceiros no modelo de Revenda autorizada.
- Antes de iniciar a configuração, leia este documento até o fim e analise se a configuração do seu pfSense não será afetada
- Backup nunca é demais! Antes de prosseguir com a configuração do Hotspot Social, faça um backup total do seu servidor pfSense. Segue o procedimento na documentação oficial do pfSense: Making Backups in the GUI
- Não há bloqueio de redes sociais antes do dispositivo finalizar a conexão com o Hotspot Social
- Não é possível desconectar o usuário pelo painel do Hotspot Social.
- A autenticação dos usuários do Hotspot Social é realizada externamente em nossos servidores Radius.
- Não é possível usar os Perfis de Conexão do painel do Hotspot Social.
- O pfSense utilizado é: pfSense Community Edition versão 2.7.2-RELEASE.
- Em caso de dúvidas entre em contato com nosso time de Suporte pelos canais de atendimento.
Obs.: Neste documento, o Hotspot Social utilizará a faixa de IP 172.20.0.0/16. Você pode usar faixa de IP que desejar.
Passos da configuração
- Criar e configurar uma VLAN para o Hotspot Social
- Configurar Firewall
- Configurar o DHCP Server para o Hotspot Social
- Criar autenticação com o nosso servidor Radius
- Configurar o Captive Portal (Hotspot)
- Liberar ou bloquear dispositivos no Hotspot Social
1. Criar e configurar uma VLAN para o Hotspot Social
Para este documento vamos considerar o seguinte cenário que é a realidade na grande maioria dos casos:
O cliente já tem um pfSense sendo utilizado como firewall de borda e, este pfSense, tem uma interface WAN e outra interface LAN. Para o Hotspot Social será criada uma VLAN que usará a interface LAN.
Se desejar, o Hotspot Social pode ser configurado direto em uma porta de rede física, sem o uso de VLAN, só adapte a configuração para o seu cenário.
1. Acesse a configuração de VLANs do pfSense: Interfaces => Assignments => aba VLANs e clique em + Add


2. Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
- Parent Interface: Escolha a interface onde será criada a VLAN. Geralmente a interface LAN.
- VLAN Tag: Insira a VLAN ID que você vai utilizar. Em nosso exemplo iremos utilizar a VLAN ID 100.
- Description: Digite uma descrição para a VLAN.

3. Atribua à interface VLAN recém-criada: Interfaces => Assignments => aba Interface Assignments e no item Available network ports, que indica a VLAN recém-criada, clique em + Add

4. Por padrão, o pfSense renomeia a nova interface com o nome OPT1. Vamos configurar esta interface: Interfaces => OPT1

Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção General Configuration
- Enable: Habilitar
- IPv4 Configuration Type: Static IPv4
- IPv6 Configuration Type: None
Seção Static IPv4 Configuration
- IPv4 Address: 172.20.0.1 / 16
- IPv6 Configuration Type: None
Após a configuração clique em Save e depois em Apply Changes
2. Configurar Firewall
Vamos configurar uma regra de Firewall para liberar o acesso do Hotspot Social à Internet.
1. Criar uma regra de Firewall na interface OPT1: Firewall => Rules => aba OPT1 => Add

2. Configurar a regra de Firewall
Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção Edit Firewall Rule
- Action: Pass
- Disable: NÃO habilitar
- Interface: OPT1
- Address Family: IPv4
- Protocol: Any
Seção Source
- Source: Any
Seção Destination
- Destination: Any
Seção Extra Options
- Log: Habilite caso deseje coletar os logs para o Marco Civil. Veja mais em: pfSense - Logs do Marco Civil
- Description: Faça uma descrição para a regra.
Após a configuração clique em Save e depois em Apply Changes
3. Configurar o DHCP Server para o Hotspot Social
Agora será configurado um servidor DHCP para entregar endereços IPs para os dispositivos conectados na rede do Hotspot Social.
1. Configurar o DHCP Server na interface OPT1: Services => DHCP Server => aba OPT1


Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Neste documento o DHCP Server entregará IPs entre 172.20.0.11 e 172.20.255.254. Defina se Address Range Pool de forma que não conflite com algum dispositivo que tiver configurado com IP estático.
Os endereços DNS Server e o Gateway devem ser o mesmo da interface do Hotspot Social.
Seção General DHCP Options
- Enable: Habilitar
Seção Primary Address Pool
- Address Pool Range: From: 172.20.0.11 To: 172.20.255.254
Seção Server Options
- DNS Servers: 172.20.0.1
Seção Other DHCP Options
- Gateway: 172.20.0.1
Após a configuração clique em Save e depois em Apply Changes
4. Criar autenticação com o nosso servidor Radius
Os dispositivos conectados no Hotspot Social precisam ser autenticados em nosso servidor Radius.
1. Configurar o DHCP Server na interface OPT1: System => User Manager => aba Authentication Servers => + Add


Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção Server Settings
- Descriptive name: Digite uma descrição para o Radius
- Type: RADIUS
Seção RADIUS Server Settings
- Protocol: MS-CHAPv2
- Hostname or IP address: 40.70.60.221
- Shared Secret: wmngr2761a3301
- Services offered: Authentication and Accounting
- Authentication port: 1812
- Accounting port: 1813
- Accounting Timeout: 5
- RADIUS NAS IP Attribute: OPT1 - 172.20.0.1
Após a configuração clique em Save.
5. Configurar o Hotspot Social (Captive Portal)
Agora vamos iniciar a configuração do Hotspot Social.
1. Criar um Captive Portal Zone: Services => Captive Portal => + Add

Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção Add Captive Portal Zone
- Zone name: Insira um nome para o Hotspot Social
- Zone description: Insira uma descrição
Após a configuração clique em Save & Continue.
Seção Captive Portal Configuration
- Enable: Habilitar
- Description: Insira uma descrição
- Interfaces: OPT1
- Idle timeout (Minutes): 360
Os clientes serão desconectados após esse período de inatividade. O dispositivo pode fazer login novamente após a desconexão.
Deixe este campo em branco para nenhum tempo limite ocioso.
Configuração padrão 06 horas.
Semelhante ao Tempo de Retorno do Hotspot Social.
- Hard timeout (Minutes): 120
Um tempo limite, especificado em minutos, após o qual o portal forçará o logoff dos usuários. O dispositivo pode fazer login novamente após a desconexão.
Evite deixar em branco.
Configuração padrão 02 horas.
Semelhante ao Tempo de Sessão do Hotspot Social.
- Traffic quota (Megabytes):
Os clientes serão desconectados após exceder essa quantidade de tráfego, incluindo downloads e uploads. O dispositivo pode fazer login novamente após a desconexão.
Configuração padrão em branco para não ter cota de tráfego.
- Preserve users database: Habilitar
- Concurrent user logins: Multiple
- Use custom captive portal page: Habilitar
Seção HTML Page Contents
Para esta seção precisamos dos arquivos da licença do Hotspot Social. Acesse o Painel do Hotspot Social, em Revendas => Licenças Hotspot. Na licença que será utilizada, clique em Ações => Gerar Script

Depois faça o download do arquivo .zip

No arquivo .zip terá 03 arquivos: error.php, index.php e logout.php.
Estes arquivos serão usados nos passos seguintes:
- Portal page contents: Clique em Escolher Arquivo e selecione o arquivo "index.php"
- Auth error page contents: Clique em Escolher Arquivo e selecione o arquivo "error.php"
- Logout page contents: Clique em Escolher Arquivo e selecione o arquivo "logout.php"
Seção Authentication
- Authentication Method: Use an Authentication backend
- Authentication Server: Escolha o Radius criado anteriormente
- Secondary authentication Server: Não selecione nenhuma opção
Seção Accounting
- RADIUS: Habilitar
- Accounting Server: Escolha o Radius Criado anteriormente
- Send accounting updates: Interim
Após a configuração clique em Save.
2. Clique em editar para continuar configurando o Hotspot Social
Acesse a aba Allowed IP Addresses e clique em + Add
Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção Captive Portal Hostname Settings
- IP Address: Insira um dos IPs da lista abaixo
- Description: Insira uma descrição
- Description: To
Clique em Save
Exemplo:

Abaixo tem uma lista com os endereços IPs que devem ser liberados.
Lista de IPs:
- Obrigatório
20.49.97.15/32
170.82.173.10/32
170.82.173.30/32
170.82.174.10/32
170.82.174.30/32
3. Acesse a aba Allowed Hostnames e clique em + Add

Configure conforme está abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção Captive Portal Hostname Settings
- Direction: To
- Hostname: Insira um dos Hostnames da lista abaixo
- Description: Insira uma descrição
Clique em Save
Exemplo:

Abaixo tem uma lista com os Hostname que devem ser liberados de acordo com a rede social que será feita a autenticação.
Obs.: Crie um item para o seu domínio personalizado se sua revenda tiver um
Lista de Hostnames:
- Obrigatório
loginwifi.live
akadns.net
alphacdn.net
trafficmanager.net
viacep.com.br
doubleclick.net
edgekey.net
akamaitechnologies.com
akamaiedge.net
akamai.com
wifimanager.online
apple.com.edgekey.net
Crie um item para a sua revenda se estiver usando um domínio personalizado
akamaihd.net
connect.facebook.net
facebook.com
facebook.net
fbcdn.net
graph.facebook.com
static.xx.fbcdn.net
web.facebook.com
lm.facebook.com
www.linkedin.com
linkedin.com
static.licdn.com
ponf.linkedin.com
media.linkedin.com
media.licdn.com
dpm.demdex.net
lnkd.demdex.net
- X (Antigo Twitter)
abs-0.twimg.com
abs.twitter.com
api.twitter.com
pbs.twimg.com
twimg.com
twitter.com
api.twitter.com
x.com
x.twitter.com
accounts.google.com
accounts.google.com.br
www.gstatic.com
fonts.gstatic.com
accounts.youtube.com
ssl.gstatic.com
googleapis.com
- Microsoft 365
login.microsoftonline.com
microsoftonline.com
aadcdn.msauth.net
login.live.com
6. Liberar ou bloquear dispositivos no Hotspot Social
Como fazer para liberar (máquina de cartão de crédito, smart TVs, etc.) ou bloquear (não conseguirá fazer o login no Hotspot Social).
1. Acesse a configuração do Hotspot Social (Captive Portal): Services => Captive Portal => Clique em Edit Zone (ícone do lápis)


2. Acesse a aba MACs e clique em + Add
2.1 Liberar dispositivo
- Action: Pass
- MAC Address: Insira endereço MAC do dispositivo
- Description: Insira uma descrição para identificar o dispositivo liberado
2.2 Bloquear dispositivo
- Action: Block
- MAC Address: Insira endereço MAC do dispositivo
- Description: Insira uma descrição para identificar o dispositivo bloqueado
Aplicando a configuração para Logs do Marco Civil
- Neste documento, onde estiver escrito Hotspot Social se refere a sua configuração em Captive Portal.
- O Hotspot Social já deve estar configurado e funcionando. Segue as instruções de configuração.
- O pfSense deve estar liberado no Firewall para enviar os logs para o endereço log01.wifimanager.online e porta 5140 (UDP).
- Foi utilizado o pfSense Community Edition versão 2.7.2-RELEASE.
- Para análise dos logs gerados, segue a documentação oficial do pfSense: Raw Filter Log Format
Passos da configuração
- Instalação do pacote Syslog-ng
- Configurar Firewall
- Configuração de log padrão (System Logs) do pfSense
- Configuração do Syslog-NG
1. Instalação do Syslog-ng
O pacote Syslog-ng é utilizado porque o log padrão do pfSense não oferece muitas opções de personalização
Para fazer a instalação, siga os passos abaixo no pfSense:
1. Acesse o Gerenciador de Pacotes do pfSense: System => Package Manager
2. Clique em Available Packages e procure pelo pacote syslog-ng, clique em + Install e aguarde a instalação terminar.

2. Configurar Firewall
O pfSense precisa saber qual regra de Firewall irá gerar os logs.
1. Na interface do Hotspot Social já tem uma regra de Firewall que libera o acesso à Internet aos dispositivos conectados no Hotspot Social. Se não tiver esta regra, veja como criar neste tópico da Academia Wi-Fi.
Na imagem, a interface do Hotspot Social é a OPT1, configure a regra que o seu Hotspot Social esteja usando.
2. Habilite a opção Log

3. Configurar de log padrão (System Logs) do pfSense
Agora será configurado o System Logs do pfSense
1. Acesse Status => System Logs
2. Clique na opção Settings
3. Edite as seguintes opções:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção General Logging Options:
- Log Message Format: BSD (RFC 3164, Default)
- Log packets matched from the default pass rules put in the ruleset: Habilitar
Seção Log Rotation Options:
Para o Marco Civil não utilizamos Log Rotation, porém, se o pFsense armazenar os logs gerados pode preencher todo o espaço em disco. Abaixo, está uma configuração padrão desta seção, altere conforme sua realidade:
- Log Rotation Size (Bytes): 512000
- Log Compression: gzip
- Log Retention Count: 7
Seção Remote Logging Options:
Os logs serão enviados para o Syslog-ng do próprio pfSense e o Syslog-ng que enviará os logs aos nossos servidores.
- Enable Remote Logging: Habilitar
- Source Address: Default (Any)
- IP Protocol: IPv4
- Remote log servers: 127.0.0.1:5140
- Remote Syslog Contents: Selecione a opção "Firewall Events".
4. Configuração do Syslog-ng
O Syslog-ng é o serviço que irá adequar e enviar os logs aos nossos servidores de log do Marco Civil.
1. Acesse a página de configurações: Services => Syslog-ng
2. Na aba General, faça as configurações abaixo:
As opções que não estiverem informadas abaixo devem ser mantidas com o valor padrão
Seção General Options:
- Enable: Habilitar
- Interface Selection: Loopback
- Default Protocol: UDP
- Default Port: 5140
- Include SCL: Habilitar
3. Vamos criar os Object Type do Syslog-ng. Mas, antes de iniciar esta configuração, vamos precisar dos seguintes dados:
- Licença do Hotspot Social que está configurada neste pfSense. Pode ser encontrada no Painel do Hotspot Social, como no exemplo da imagem:

- A Interface de rede do pfSense que o Hotspot Social está utilizando. Se for interface física será no formato "re1", "hn0" ou algo semelhante. Se for interface virtual (VLAN), o nome será o mesmo da interface física onde a VLAN está configurada seguido de um ponto e do ID da VLAN. Essa interface pode ser encontrada da seguinte forma:
Lembrando que a interface selecionada na imagem é só um exemplo, escolha a que está configurada em seu servidor.
O nome da interface de rede precisamos é o que está na imagem abaixo, neste exemplo é "hn1.101".
Voltando a configuração do Syslog-ng, em Services => Syslog-ng, na aba Advanced crie os Object Type conforme as instruções abaixo:
Clique no botão + Add e configure igual está abaixo
- Object Name: hs_destination
- Object Type: Destination
- Object Parameters: { udp("log01.wifimanager.online" port(5140)); };
- Description: Hotspot Destination
Clique no botão + Add e configure igual está abaixo
- Object Name: hs_filter
- Object Type: Filter
- Object Parameters: { match("pass" value("MESSAGE")); match("Interface do Hotspot" value("MESSAGE")); };
- Description: Hotspot Filter
IMPORTANTE: Em Object Parameters, substituir "Interface do Hotspot" pela interface utilizada pelo Hotspot Social que mostramos no início deste tópico. Exemplo, { match("pass" value("MESSAGE")); match("hn1.101" value("MESSAGE")); };
Clique no botão + Add e configure igual está abaixo
- Object Name: hs_rewrite
- Object Type: Rewrite
- Object Parameters: { subst( "filterlog", "licença do Hotspot Social", value("PROGRAM")); };
- Description: Hotspot Rewrite
IMPORTANTE: Em Object Parameters, substituir "licença do Hotspot Social" pela licença do Hotspot Social configurado neste pfSense, como mostramos no início deste tópico. Por exemplo: { subst( "filterlog", "AABBCCDDFF", value("PROGRAM")); };
Clique no botão + Add e configure igual está abaixo
- Object Name: hs_log
- Object Type: Log
- Object Parameters: { source(_DEFAULT); rewrite (hs_rewrite); filter(hs_filter); destination(hs_destination); };
- Description: Hotspot Log
Ufa 😌, agora sim, seu Hotspot está configurado e gerando os logs do Marco Civil, já pode seguir com sua validação 😁💪🏻
Se necessário, entre em contato com nossa equipe de suporte nos canais de atendimento.